Microsoft FabricパイプラインのSQL分析エンドポイントのリフレッシュ活動は、オーケストレーションされたワークフローの一部としてLakehouse SQL分析エンドポイントをプログラム的にリフレッシュできます。 これはパイプライン用の Lakehouse Utility Suite の一部であり、通常、 Lakehouse メンテナンス アクティビティ の後 (OPTIMIZE 操作や VACUUM 操作の後など) に使用されます。 ダウンストリーム コンシューマー (Power BI レポート、ノートブック、外部 SQL クライアントなど) は、データの準備またはメンテナンスの手順が完了した後に最新のデータを確認します。
この活動を活用することで、手動の更新やアドホックなプロセスに頼らず、SQL分析エンドポイントが最新のアップデートを即座に反映できるようにしましょう。 パイプラインの場合は、次のアクティビティを使用します。
- Lakehouse のデータを更新または管理します(例えば、コピー ジョブ、ノートブックの実行、Lakehouse メンテナンス作業の後など)。
- Lakehouse SQL分析エンドポイントが最新のメタデータとデータ変更を反映する必要があります。
- レポート、分析、エクスポートなど、ダウンストリームの手順の前に決定論的な更新タイミングが必要です。
前提条件
このアクティビティを使用する前に、次の点を確認してください。
- アクティブなサブスクリプションを持つテナント アカウント。 無料でアカウントを作成できます。
- Lakehouse を備えたワークスペース
- Lakehouseには SQL分析エンドポイント が存在します。
- パイプラインのアイデンティティ(ユーザーまたはサービスプリンシパル)は SQL分析エンドポイントを更新する権限を持っています。
UI で、パイプラインに SQL 分析エンドポイントを更新するアクティビティを追加してください
ワークスペースに新しいパイプラインを作成します。
パイプラインのアクティビティペインで「Refresh SQL analytics endpoint」を検索し、パイプラインキャンバスに追加するために選択してください。
まだ選択していない場合は、キャンバスで新しい SQL 分析エンドポイントの更新 アクティビティを選択してください。
ヒント
このアクティビティは、他の Lakehouse Utility Suite アクティビティ ( Lakehouse Maintenance アクティビティなど) と同じパイプラインで調整できるため、メンテナンスと更新が順番に実行されます。
[全般設定] タブを構成するには、全般設定のガイダンスを参照してください。
SQL分析エンドポイントのアクティビティ設定を更新する
[ 設定] タブを選択してアクティビティを構成します。
[接続 ] ドロップダウンから 既存の接続を選択するか、新しい接続を作成し、その構成の詳細を指定して、接続を構成します。
Lakehouse を含む ワークスペース を指定します。
SQL分析エンドポイントを、更新したいLakehouseの SQL分析エンドポイント IDとして指定してください。 このリフレッシュはLakehouse SQL分析エンドポイントのメタデータを更新し、最近のデータやスキーマの変更を反映させます。
アクティビティ動作
アクティビティの実行が完了したら、次の操作を行います。
[出力] ポップアップに [成功 ] 状態が表示された場合、要求は同期されていないデータを正常に同期します。
出力ポップアップに NotRun ステータスが表示されている場合、SQL分析エンドポイントのリフレッシュが実行されなかったことを意味します。 通常、この条件は、前回の同期以降に新しいデータを追加しなかったため、実行する必要がなかったことを意味します。
[出力] ポップアップにエラー状態が表示 された 場合は、問題が発生しました。
注
アクティビティの実行では、出力ポップアップでこれらの状態が設定されます。 これらの状態をアクティビティの状態自体と混同しないでください。
一般的なシナリオ
- ノートブックで変換されたデータをレイクハウスに書き込んだ後にSQL分析エンドポイントをリフレッシュします。
- Lakehouseメンテナンス活動(OPTIMIZEまたはVACUUM)が完了した後、SQL分析エンドポイントの更新をトリガーします。
- レポートやダッシュボードが、パイプライン内の明確に定義された時点で Lakehouse の最新状態をクエリすることを保証します。
なぜ基盤となるデータがロックされているときにSQLアナリティクスエンドポイントのリフレッシュが失敗するのでしょうか?
SQL分析エンドポイントのリフレッシュは、他のプロセスが基盤となるLakehouseデータを積極的に更新していると断続的に失敗することがあります。 これらのプロセスには、インジェスト パイプライン、ノートブック、または同時書き込み操作が含まれます。
この失敗は、SQL分析エンドポイントがリフレッシュを完了するために内部ロックを取得する必要があるために発生します。 別の操作でデータがロックされている場合、要求はタイムアウトするか、エラーを返します。
この動作は、SQL分析エンドポイントがメタデータ更新操作をどのように管理するかに基づいて予想されます。
Symptoms
- アクティビティは断続的に失敗し、一貫していません。
- エラー メッセージは、更新の競合またはロックの競合を示します。
- 複数の逐次更新SQL分析エンドポイント活動を行うパイプラインは、より高い失敗率を示します。
根本原因
SQL分析エンドポイントはリフレッシュ時に特定のメタデータ構造への独占的アクセスを必要とします。 別のコンピューティング プロセスが Lakehouse に同時に書き込まれると、ロックの競合が発生します。
この動作は、SQL 分析エンドポイント アクティビティの更新における不具合ではありません。 これは、基になるデータに対する同時読み取りと書き込み操作の自然な結果です。
対処方法
この問題は、次の 2 つの実用的な方法で軽減できます。
処理終了時にRefresh SQL分析エンドポイントのアクティビティは1つだけ使用してください
ロック競合の可能性を減らすために、パイプラインを統合してください。
- すべてのインジェスト、変換、更新アクティビティが最初に実行されます。
- その後、最後に実行されるのは1つのリフレッシュSQL分析エンドポイント活動だけです。
- この方法では、エラーが完全に排除されるわけではありませんが、発生頻度が大幅に減少します。
定期的なリフレッシュスケジュールを導入しましょう
シナリオで特定の時点で厳密なトランザクション整合性が必要ない場合は、定期的な更新パターンを採用します。
- 更新を 15 分ごとに継続的にスケジュールします。 一部のリフレッシュ試みはロックで失敗することもありますが、十分な数は成功してSQL分析エンドポイントを比較的最新の状態に保つことができます。
このアプローチは、多くの分析ワークロードに対して実用的で堅牢です。
パイプラインを保存して実行またはスケジュールする
パイプライン エディターの上部にある [ ホーム ] タブに切り替え、[保存] ボタンを選択してパイプラインを保存します。 [ 実行 ] を選択して直接実行するか、特定の時間または間隔で実行をスケジュールする スケジュール を設定します。 パイプラインの実行の詳細については、「パイプラインの実行 をスケジュールする」を参照してください。
実行後、パイプラインの実行を監視し、キャンバスの下にある [出力 ] タブから実行履歴を表示できます。
既知の問題
- SQL分析エンドポイントのリフレッシュは、他のプロセスが基盤となるLakehouseデータを積極的に更新すると断続的に失敗することがあります。 回避策については、「 なぜ私のSQL分析エンドポイントのリフレッシュは基礎データがロックされると失敗するのか?」をご覧ください。