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

DLT パイプラインを従来のHive metastoreで使用する

この記事では、レガシー Hive metastoreにデータを発行するように設定された DLT パイプラインに固有の設定と注意事項について詳しく説明します。 Databricks では、すべての新しいパイプラインに Unity Catalog を使用することをお勧めします。 「DLT パイプラインで Unity Catalog を使用する」を参照してください。

注記

この記事では、パイプラインの現在のデフォルト発行モードの機能について説明します。 2025 年 2 月 5 日より前に作成されたパイプラインでは、従来の発行モードと LIVE 仮想スキーマが使用される場合があります。 LIVE スキーマ (レガシー)を参照してください。

レガシーHive metastoreでストリーミングテーブルとマテリアライズドビューをクエリする方法

更新が完了したら、スキーマとテーブルを表示したり、データをクエリしたり、ダウンストリームアプリケーションでデータを使用したりできます。

公開されると、DLT テーブルは、ターゲット スキーマにアクセスできる任意の環境からクエリを実行できます。これには、Databricks SQL、ノートブック、その他の DLT パイプラインが含まれます。

important

target設定を作成すると、テーブルと関連するメタデータのみが公開されます。ビューはメタストアに公開されません。

Hive metastoreに発行するようにパイプラインを構成する

新しいパイプラインを作成するときは、 Storage Hive metastore オプションで を指定して、従来のHive metastore に公開できます。Hive metastoreにパブリッシュする場合は、デフォルトのターゲット スキーマを指定する必要があります。DLT パイプラインの設定を参照してください。

保存場所の指定

Hive metastoreにパブリッシュするパイプラインの保管場所を指定できます。場所を指定する主な動機は、パイプラインによって書き込まれたデータのオブジェクトストレージの場所を制御することです。 Databricks では、 DBFSルートへの書き込みを避けるために、常にストレージの場所を指定することをお勧めします。

DLT パイプラインのすべてのテーブル、データ、チェックポイント、およびメタデータは DLT によってフルマネードされるため、DLT データセットとのほとんどの対話は、 Hive metastore または Unity Catalogに登録されたテーブルを介して行われます。

クラウドストレージの構成

Google Cloud Storage (GCS) でバケットにアクセスするには、そのGCSバケットにアクセスできるサービス アカウントを作成し、そのサービス アカウントをクラスタリング設定に追加する必要があります。Google Cloud サービス アカウントの作成について詳しくは、Google Cloud Storageに接続するをご覧ください。DLT API または DLT UI でパイプラインを作成または編集するときに、サービス アカウント構成を追加できます。

  1. パイプラインの パイプライン詳細 ページで、 設定 ボタンをクリックします。 パイプライン設定 ページが表示されます。
  2. JSON ボタンをクリックします。
  3. クラスター設定の gcp_attributes.google_service_account フィールドにサービスアカウント設定を入力します。
JSON
{
"clusters": [
{
"gcp_attributes": {
"google_service_account": "test-gcs-doc@databricks-dev.iam.gserviceaccount.com"
}
}
]
}

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という一時ビューを作成します。 このビューは、この記事に含まれるイベント ログ クエリの例で使用されます。

SQL
CREATE OR REPLACE TEMP VIEW event_log_raw
AS SELECT * FROM delta.`<event-log-path>`;

<event-log-path> をイベント ログの場所に置き換えます。

パイプライン実行の各インスタンスは 、更新 と呼ばれます。 多くの場合、最新の更新プログラムの情報を抽出したい場合があります。 次のクエリを実行して、最新の更新プログラムの識別子を検索し、 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;

イベント ログのクエリは、Databricks ノートブックまたは SQL エディターで行うことができます。 ノートブックまたは SQL エディタを使用して、サンプルのイベントログクエリを実行します。

Unity Catalog を使用しないワークスペースのパイプライン ソース コード ノートブックの例

Unity Catalog が有効になっていない Databricks ワークスペースに次のノートブックをインポートし、それらを使用して DLT パイプラインをデプロイできます。選択した言語のノートブックをインポートし、 ストレージオプションを使用してパイプラインを構成するときに Hive metastore 、ソースコード フィールドにパスを指定します。DLT パイプラインの設定を参照してください。

DLT Python ノートブックを使ってみる

Open notebook in new tab

DLT SQL ノートブックの使用を開始する

Open notebook in new tab