メインコンテンツまでスキップ

LIVEスキーマ(レガシー)

この記事では、 LIVE 仮想スキーマの従来の構文と動作の概要について説明します。

LIVE仮想スキーマは DLT パイプラインのレガシ機能であり、非推奨と見なされます。従来の発行モードと、このモードで作成されたパイプラインの LIVE 仮想スキーマを引き続き使用できます。

従来の LIVE 仮想スキーマと従来の公開モードのサポートは、Databricks の将来のバージョンで削除される予定です。

注記

従来の公開モード パイプラインは、DLT パイプライン設定 UI の [概要 ] フィールドに示されます。 また、パイプラインの JSON 仕様で target フィールドが設定されている場合は、パイプラインが従来の公開モードを使用していることを確認することもできます。

パイプライン設定 UI を使用して、従来の公開モードで新しいパイプラインを作成することはできません。 従来の LIVE 構文を使用して新しいパイプラインをデプロイする必要がある場合は、Databricks のアカウント担当者にお問い合わせください。

LIVE 仮想スキーマとは

注記

DLT のデフォルトの公開モードでデータセットの依存関係を分析するために、 LIVE 仮想スキーマは不要になりました。

LIVE スキーマは、パイプラインで作成または更新されるすべてのデータセットの仮想境界を定義する DLT のプログラミング概念です。設計上、 LIVE スキーマは公開されたスキーマのデータセットに直接関連付けられていません。 代わりに、 LIVE スキーマを使用すると、ユーザーがデータセットをスキーマに発行したくない場合でも、パイプライン内のロジックを計画して実行できます。

従来のパブリッシング モード パイプラインでは、 LIVE キーワードを使用して、現在のパイプライン内の他のデータセット ( SELECT * FROM LIVE.bronze_tableなど) を読み取りで参照できます。 新しい DLT パイプラインのデフォルト パブリッシング モードでは、この構文はサイレントに無視され、修飾されていない識別子は現在のスキーマを使用します。 ターゲット・カタログとスキーマの設定を参照してください。

パイプラインのレガシ発行モード

LIVE仮想スキーマは、DLT パイプラインの従来の公開モードで使用されます。2025 年 2 月 5 日より前に作成されたすべてのテーブルは、デフォルトで従来の公開モードを使用します。

次の表では、従来のパブリッシング モードのパイプラインで作成または更新されたすべてのマテリアライズドビュー とストリーミング テーブルの動作について説明します。

ストレージオプション

保存場所またはカタログ

ターゲットスキーマ

挙動

Hive metastore

指定なし

指定なし

データセットのメタデータとデータは、 DBFSルートに格納されます。 データベース・オブジェクトは Hive metastoreに登録されていません。

Hive metastore

クラウド・オブジェクト・ストレージへの URI またはファイル・パス。

指定なし

データセットのメタデータとデータは、指定した保存場所に保存されます。 データベース・オブジェクトは Hive metastoreに登録されていません。

Hive metastore

指定なし

Hive metastore内の既存または新しいスキーマ。

データセットのメタデータとデータは、 DBFSルートに格納されます。 パイプライン内のすべてのマテリアライズドビュー とストリーミングテーブルは、 Hive metastoreで指定されたスキーマにパブリッシュされます。

Hive metastore

クラウド・オブジェクト・ストレージへの URI またはファイル・パス。

Hive metastore内の既存または新しいスキーマ。

データセットのメタデータとデータは、指定した保存場所に保存されます。 パイプライン内のすべてのマテリアライズドビュー とストリーミングテーブルは、 Hive metastoreで指定されたスキーマにパブリッシュされます。

Unity Catalog

既存の Unity Catalog カタログ。

指定なし

データセットのメタデータとデータは、ターゲット カタログに関連付けられたデフォルトのストレージ場所に格納されます。 データベース・オブジェクトは Unity Catalogに登録されていません。

Unity Catalog

既存の Unity Catalog カタログ。

Unity Catalog の既存または新しいスキーマ。

データセットのメタデータとデータは、ターゲットスキーマまたはカタログに関連付けられたデフォルトのストレージ場所に保存されます。 パイプライン内のすべてのマテリアライズドビュー とストリーミングテーブルは、 Unity Catalogで指定されたスキーマにパブリッシュされます。

LIVEスキーマからのソースコードの更新

新しいデフォルト パブリッシング モードで実行するように構成されたパイプラインは、 LIVE スキーマ構文をサイレントに無視します。 デフォルトでは、すべてのテーブル読み取りは、パイプライン設定で指定されたカタログとスキーマを使用します。

既存のほとんどのパイプラインでは、従来のスキーマ LIVE 仮想スキーマの動作もパイプライン構成で指定されたカタログとスキーマに読み取りを送信するため、この動作の変更は影響しません。

important

ワークスペースのデフォルト カタログとスキーマを利用する読み取りを含むレガシ コードには、コードの更新が必要です。 次のマテリアライズドビューの定義について考えてみます。

SQL
CREATE MATERIALIZED VIEW silver_table
AS SELECT * FROM raw_data

従来のパブリッシング モードでは、 raw_data テーブルからの非修飾読み取りでは、ワークスペースのデフォルトのカタログとスキーマ ( main.default.raw_dataなど) が使用されます。 新しいデフォルトのパイプラインモードでは、デフォルトで使用されるカタログとスキーマは、パイプライン設定で設定されたカタログとスキーマです。 このコードが引き続き期待どおりに動作するようにするには、次の例のように、テーブルの完全修飾識別子を使用するように参照を更新します。

SQL
CREATE MATERIALIZED VIEW silver_table
AS SELECT * FROM main.default.raw_data

Unity Catalog の従来の発行モード パイプラインのイベント ログを操作する

important

event_log TVF は、テーブルを Unity Catalog に発行する従来の発行モード パイプラインで使用できます。新しいパイプラインのデフォルト動作は、パイプライン用に構成されたターゲット カタログとスキーマにイベント ログを発行します。 「イベント ログのクエリ」を参照してください。

Hive metastore で設定されたテーブルには、異なるイベントログのサポートと動作もあります。「Hive metastore パイプラインのイベント ログの操作」を参照してください。

パイプラインが従来の公開モードで Unity Catalog にテーブルを発行する場合は、 event_log テーブル値関数 (TVF) を使用してパイプラインのイベント ログをフェッチする必要があります。 パイプラインのイベント ログを取得するには、パイプライン ID またはテーブル名を TVF に渡します。 たとえば、ID が ID 04c78631-3dd7-4856-b2a6-7d84e9b2638bのパイプラインのイベント ログ レコードを取得するには、次のようにします。

SQL
SELECT * FROM event_log("04c78631-3dd7-4856-b2a6-7d84e9b2638b")

テーブルを作成または所有するパイプラインのイベント ログ レコードを取得するには、次のようにしますmy_catalog.my_schema.table1

SQL
SELECT * FROM event_log(TABLE(my_catalog.my_schema.table1))

TVF を呼び出すには、共有クラスターまたは SQLウェアハウスを使用する必要があります。 たとえば、共有クラスターにアタッチされたノートブックを使用したり、SQLSQLウェアハウスに接続された エディター を使用したりできます。

パイプラインのイベントのクエリを簡略化するために、パイプラインの所有者は event_log TVF に対してビューを作成できます。 次の例では、パイプラインのイベント ログに対するビューを作成します。 このビューは、この記事に含まれるイベント ログ クエリの例で使用されます。

注記
  • event_log TVF は、パイプラインの所有者のみが呼び出すことができます。
  • パイプラインまたはクエリで event_log table valued 関数を使用して、複数のパイプラインのイベント・ログにアクセスすることはできません。
  • event_log テーブル値関数で作成したビューを他のユーザーと共有することはできません。
SQL
CREATE VIEW event_log_raw AS SELECT * FROM event_log("<pipeline-ID>");

<pipeline-ID> を DLT パイプラインの一意の識別子に置き換えます。ID は、DLT UI の [パイプラインの詳細 ] パネルで確認できます。

パイプライン実行の各インスタンスは 、更新 と呼ばれます。 多くの場合、最新の更新プログラムの情報を抽出したい場合があります。 次のクエリを実行して、最新の更新プログラムの識別子を検索し、 latest_update_id 一時ビューに保存します。 このビューは、この記事に含まれるイベント ログ クエリの例で使用されます。

SQL
CREATE OR REPLACE TEMP VIEW latest_update AS SELECT origin.update_id AS id FROM event_log_raw WHERE event_type = 'create_update' ORDER BY timestamp DESC LIMIT 1;