Databricks SQLにおけるマテリアライズドビューの監視
プレビュー
この機能は パブリック プレビュー段階です。
この記事ではDatabricks SQLでマテリアライズドビューに関する更新データを監視およびクエリする方法について説明します。
カタログエクスプローラーで詳細を表示
マテリアライズドビューに関する情報を表示する最も簡単な方法は、 カタログエクスプローラで表示することです。カタログエクスプローラ では、ログを含む更新履歴を表示したり、現在の更新のステータスを表示したりすることもできます。
マテリアライズドビューには、カタログ エクスプローラーでは使用できないプロパティがいくつかあります。 これらのプロパティについては、またはプログラムで情報を取得するには、 DESCRIBE EXTENDED
コマンドを使用できます。
マテリアライズドビューの詳細を表示するには DESCRIBE EXTENDED
DESCRIBE EXTENDED
コマンドを使用すると、マテリアライズドビューの詳細をプログラムで表示できます。 これには以下が含まれます:
- 最後に完了した更新のステータス。
- 更新スケジュール。
- マテリアライズドビューの列。
- マテリアライズドビューのデータ サイズ (合計バイト数) (カタログ エクスプローラーでは使用できません)。
- マテリアライズドビューの保存場所 (カタログ エクスプローラーでは使用できません)。
-- As table:
DESCRIBE TABLE EXTENDED sales;
-- As a single JSON object:
DESCRIBE TABLE EXTENDED sales AS JSON;
マテリアライズドビューの更新履歴を表示する
マテリアライズドビューに対する REFRESH
操作のステータス (現在および過去の更新を含む) を表示するには、 Lakeflow 宣言型パイプライン イベント ログをクエリします。
SELECT
*
FROM
event_log(TABLE(my_catalog.my_schema.sales))
WHERE
event_type = "update_progress"
ORDER BY
timestamp desc;
<fully-qualified-table-name>
を、カタログやスキーマなど、マテリアライズドビューの完全修飾名に置き換えます。
LakeFlow宣言型パイプライン イベント ログを参照してください。
マテリアライズドビューに対して発生した更新のタイプを表示します。
一部のクエリは増分的に更新できます。増分更新を実行できない場合は、代わりに完全更新が実行されます。
マテリアライズドビューの更新タイプを確認するには、イベント ログをクエリします。
SELECT
timestamp,
message
FROM
event_log(TABLE(my_catalog.my_schema.sales))
WHERE
event_type = 'planning_information'
ORDER BY
timestamp desc;
このコマンドのサンプル出力:
-
- timestamp
- message
-
2025-03-21T22:23:16.497+00:00
Flow 'sales' has been planned in :re[LDP] to be executed as ROW_BASED.
更新タイプの詳細と更新を最適化する方法については、 「マテリアライズドビューの増分更新」を参照してください。
クエリ履歴を使用して実行を監視する
クエリ履歴ページを使用して、クエリの詳細とクエリ プロファイルにアクセスできるため、ストリーミングテーブルの更新を実行するために使用される Lakeflow 宣言型パイプラインでパフォーマンスの低いクエリやボトルネックを特定するのに役立ちます。 クエリ履歴とクエリ プロファイルで使用できる情報の種類の概要については、クエリ履歴および クエリ プロファイルを参照してください。
プレビュー
この機能はパブリック プレビュー段階です。ワークスペース管理者は、 プレビュー ページからこの機能へのアクセスを制御できます。「Databricks プレビューの管理」を参照してください。
マテリアライズドビューに関連するすべてのステートメントがクエリ履歴に表示されます。 ステートメント ドロップダウン フィルターを使用して、任意のコマンドを選択し、関連するクエリを検査できます。すべてのCREATE
ステートメントの後には、パイプラインで非同期に実行されるREFRESH
ステートメントが続きます。REFRESH
ステートメントには通常、パフォーマンスの最適化に関する情報を提供する詳細なクエリ プランが含まれます。
クエリ履歴 UI でREFRESH
ステートメントにアクセスするには、次のステップを使用します。
- クリック
左側のサイドバーにある をクリックして、 書き込みー履歴 UIを開きます。
- ステートメント ドロップダウン・フィルターから REFRESH チェック・ボックスを選択します。
- クエリ ステートメントの名前をクリックすると、クエリの実行時間や集計されたメトリックなどの概要の詳細が表示されます。
- クエリ プロファイルを開くには、[クエリ プロファイルを表示 ] をクリックします。クエリ プロファイルのナビゲートの詳細については、 「クエリ プロファイル」を参照してください。
- 必要に応じて、 [クエリ ソース] セクションのリンクを使用して、関連するクエリまたはパイプラインを開きます。
CREATE MATERIALIZED VIEWを参照してください。
失敗した更新のトラブルシューティング
増分である必要があると思われる更新がいっぱいになった場合のトラブルシューティングを行うには、まず、ソース Delta テーブルで 行追跡が有効になっている ことを確認します。増分更新の詳細については、「 マテリアライズドビュー のインクリメンタル 更新のサポート」を参照してください。
更新操作はさまざまな理由で失敗する可能性があります。例えば:
- マテリアライズドビューの所有者は、ソース テーブルへの
SELECT
アクセス権を失う可能性があります。 - ソース テーブルには、マテリアライズドビュー クエリ定義と互換性のないスキーマ変更が含まれている可能性があります。
失敗したマテリアライズドビュー更新のトラブルシューティングを行うには:
- クリック
サイドバーの カタログ 。
- 左側のカタログ エクスプローラー ツリーでカタログを開き、マテリアライズドビューが配置されているスキーマを選択します。
- 概要 タブの 更新の詳細を表示 リンクをクリックします。
- パイプラインの詳細ページで、下部にある イベント ログ タブで エラー をクリックし、処理中のエラーのみに絞り込みます。
- エラーをクリックすると、正確なエラー メッセージを含む詳細が表示されます。
これはサンプルのエラー メッセージです。
org.apache.spark.sql.AnalysisException: [AMBIGUOUS_REFERENCE] Reference `customer_name` is ambiguous, could be: ['p'.'customer_name', 'u'.'customer_name']. SQLSTATE: 42704