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

LIVEスキーマ(レガシー)

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

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

Databricks では、すべてのパイプラインを新しい公開モードに移行することをお勧めします。移行には 2 つの選択肢があります。

どちらの方法も一方向の移行です。テーブルをレガシー モードに戻すことはできません。

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

注記

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

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

LIVE 仮想スキーマとは何ですか?

注記

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

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

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

パイプラインの従来の公開モード

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

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

ストレージオプション

保管場所またはカタログ

ターゲットスキーマ

挙動

Hiveメタストア

指定なし

指定なし

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

Hiveメタストア

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

指定なし

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

Hiveメタストア

指定なし

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

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

Hiveメタストア

クラウド オブジェクト ストレージへの 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 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ウェアハウスを使用する必要があります。 たとえば、 SQLウェアハウスに接続されたSQLエディターを使用できます。

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

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

<pipeline-ID> をパイプラインの一意の識別子に置き換えます。IDは、Lakeflow 宣言型パイプライン 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;