Delta Live Tables パイプラインをレガシーのHive metastore で使用する
この記事では、従来のHive metastoreにデータを発行するように設定された Delta Live Tables パイプラインに固有の構成と注意事項について詳しく説明します。Databricks では、すべての新しいパイプラインに Unity Catalog を使用することをお勧めします。 Delta Live Tables パイプラインで Unity Catalog を使用するを参照してください。
注:
この記事では、パイプラインの現在のデフォルト発行モードの機能について説明します。 2025 年 2 月 5 日より前に作成されたパイプラインでは、従来の発行モードと LIVE
仮想スキーマが使用される場合があります。 LIVE スキーマ (レガシー)を参照してください。
レガシーのHive metastoreでストリーミングテーブルとマテリアライズドビューをクエリする方法
更新が完了したら、スキーマとテーブルを表示したり、データをクエリしたり、ダウンストリームアプリケーションでデータを使用したりできます。
発行されると、Delta Live Tables テーブルは、ターゲット スキーマにアクセスできる任意の環境からクエリを実行できます。 これには、Databricks SQL、ノートブック、その他の Delta Live Tables パイプラインが含まれます。
重要
target
設定を作成すると、テーブルと関連するメタデータのみが公開されます。ビューはメタストアに公開されません。
Hive metastore に発行するようにパイプラインを構成する
新しいパイプラインを作成するときは、 StorageHive metastore オプションで を指定して、従来のHive metastore に公開できます。Hive metastoreにパブリッシュする場合は、デフォルトのターゲット スキーマを指定する必要があります。「Delta Live Tables パイプラインの構成」を参照してください。
ストレージロケーションを指定する
Hive metastoreにパブリッシュするパイプラインの保管場所を指定できます。場所を指定する主な動機は、パイプラインによって書き込まれたデータのオブジェクトストレージの場所を制御することです。 Databricks では、 DBFSルートへの書き込みを避けるために、常にストレージの場所を指定することをお勧めします。
Delta Live Tables パイプラインのすべてのテーブル、データ、チェックポイント、およびメタデータは BY Delta Live Tablesによってフルマネージされるため、Delta Live Tables データセットとのほとんどの操作は、Hive metastore または Unity Catalogに登録されたテーブルを介して行われます。
クラウドストレージの構成
AWS インスタンスプロファイルを使用して、 AWS の S3 ストレージへのアクセスを設定します。 パイプラインを作成または編集するときに Delta Live Tables UI にインスタンスプロファイルを追加するには:
パイプラインの パイプライン詳細 ページで、 設定 ボタンをクリックします。
インスタンスプロファイルドロップダウンメニューで、パイプライン設定のコンピュートセクションで、インスタンスプロファイルを選択します。
AWSJSONパイプライン クラスターの 設定を編集してJSON インスタンスプロファイルを構成するには、[]aws_attributes.instance_profile_arn
ボタンをクリックし、クラスター構成の [] フィールドにインスタンスプロファイル構成を入力します。
{
"clusters": [
{
"aws_attributes": {
"instance_profile_arn": "arn:aws:..."
}
}
]
}
また、Delta Live Tables パイプラインのクラスターポリシーを作成するときに、インスタンスプロファイルを設定することもできます。 例については、 ナレッジ ベースを参照してください。
Hive metastore パイプラインのイベント ログの操作
パイプラインが テーブルを Hive metastoreに発行する場合、イベント ログは storage
の場所の下の /system/events
に格納されます。たとえば、パイプライン storage
設定を /Users/username/data
として構成した場合、イベント ログは DBFS の /Users/username/data/system/events
パスに格納されます。
storage
設定を構成していない場合、デフォルトのイベント ログの場所は DBFS で/pipelines/<pipeline-id>/system/events
されます。たとえば、パイプラインの ID が 91de5e48-35ed-11ec-8d3d-0242ac130003
の場合、ストレージの場所は /pipelines/91de5e48-35ed-11ec-8d3d-0242ac130003/system/events
です。
ビューを作成して、イベント ログのクエリを簡単に行うことができます。 次の例では、 event_log_raw
という一時ビューを作成します。 このビューは、この記事に含まれるイベント ログ クエリの例で使用されます。
CREATE OR REPLACE TEMP VIEW event_log_raw
AS SELECT * FROM delta.`<event-log-path>`;
<event-log-path>
をイベント ログの場所に置き換えます。
パイプライン実行の各インスタンスは 、更新と呼ばれます。 多くの場合、最新の更新プログラムの情報を抽出したい場合があります。 次のクエリを実行して、最新の更新プログラムの識別子を検索し、 latest_update_id
一時ビューに保存します。 このビューは、この記事に含まれるイベント ログ クエリの例で使用されます。
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;
イベント ログのクエリは、Databricks ノートブックまたは SQL エディターで行うことができます。 ノートブックまたは SQL エディタを使用して、サンプルのイベントログクエリを実行します。
Unity Catalogを使用しないワークスペースのパイプライン ソース コード ノートブックの例
Unity Catalog が有効になっていない Databricks ワークスペースに次のノートブックをインポートし、それらを使用して Delta Live Tables パイプラインをデプロイできます。 選択した言語のノートブックをインポートし、 ストレージオプションを使用してパイプラインを構成するときにHive metastore 、ソースコード フィールドにパスを指定します。Delta Live Tables パイプラインの構成を参照してください。