web-dev-qa-db-ja.com

Power Queryの最大実行時間/タイムアウトを設定するにはどうすればよいですか?

Power Queryで最大実行時間またはタイムアウト係数を設定して、指定された期間が経過すると、クエリが正常に実行されたかどうかに関係なく、クエリが自動的に終了するようにする方法はありますか?

これは私にとって重要です。職場でさまざまなクエリを作成しましたが、通常は正常に実行されますが(何ヶ月も何年も問題なく毎日実行しているように)、ときどきハングします(おそらく、上の別のプロセスとの衝突が原因です)。サーバーに大きな負荷がかかっていたその瞬間のサーバー)そしてサーバー上で読み取り要求を出し続ける無期限に-ある時ITは、私のマシンからのデータベースに700万回以上の読み取りを記録したと言った数時間。場合によっては、これらによりサーバーがクラッシュし、大幅なダウンタイムが発生します。

そのため、設定があるかどうか、またはクエリ自体に組み込んで一定期間後に確実に終了できるものがあるかどうかを知りたいと思います。

私はMPowerQuery言語に堪能です。

ありがとう。

[Update 1]接続をコーディングするときにCommandTimeout値を設定することに関して、以下の提案をしてくれたAlexisに感謝します。それは素晴らしい指針です。

試してみて、いくつかのテストを行い、問題が最終的に修正されたかどうかを報告します。

しかし、その間に、MicrosoftのPower Queryドキュメントを少し掘り下げてみたところ、CommandTimeout引数自体にはすでにデフォルト値の10分が組み込まれていることがわかりました。したがって、理論的には、その引数を指定しなくても、クエリはそれ自体で終了しているはずです。しかし、そうではありませんでした。それは何時間も走った。

Excel版のPowerQueryのバグなのかしら?私はPowerBI内でもPowerQueryを使用しているので、そこではまだクラッシュしてハングしているのを見ていません(確かに、Power BIよりもExcelバージョンを頻繁に使用しています)。

ただし、この問題の潜在的な修正について他に提案がある場合は、それをいただければ幸いです。ありがとう。

2
J Henkinson

私はこれに対するかなりまともな答えを見つけました ここ 。そのフォーラムに投稿された手順は次のとおりです。

  1. Power BIDesktopファイルを開いてレポートビューで表示します
  2. [クエリの編集]([外部データ]セクション)の矢印をクリックします。
  3. ドロップダウンが表示されます-次に[データソース設定]をクリックします
  4. データソース設定のポップアップウィンドウが表示されます
  5. 「ソースの変更...」をクリックします
  6. 別のポップアップが表示されます
  7. [詳細オプション]をクリックします(ポップアップ内に種類のドロップダウンが表示されます)
  8. 「分単位のコマンドタイムアウト(オプション)」が最初のオプションになります
  9. 値を入力してください-60分を入力することを選択しましたが、任意の値を自由に入力してください
  10. 次に、クエリの変更を適用し、更新が完了するまで待ちます

これはPowerBI用に作成されていますが、Excelクエリエディターでも機能します。要約すれば、

  1. クエリエディタを開く
  2. [ファイル]> [オプションと設定]> [データソース設定]を選択します
  3. ソースを選択し、[ソースの変更...]をクリックします。
  4. [詳細オプション]を展開し、コマンドタイムアウト値を入力します

SQLサーバーへの接続でこれを試したところ、ソースステップにCommandTimeout引数が追加されました。代わりにこのコードを使用して、すべてのクリックをスキップできます。

= Sql.Database("server", "DB", [CommandTimeout=#duration(0, 0, 15, 0)])

SQLサーバーに接続していない場合は、パラメーターが異なる可能性があるため、データソース設定を介して実行することをお勧めします。例えば。

= Web.Page(Web.Contents("URL", [Timeout=#duration(0,0,15,0)]))

または

= OData.Feed("http://some.url/service.svc/", null, [Timeout=#duration(0, 0, 15, 0)])
3
Alexis Olson