DLT パイプラインを従来のHive metastoreで使用する
この記事では、レガシー Hive metastoreにデータを発行するように設定された DLT パイプラインに固有の設定と注意事項について詳しく説明します。 Databricks では、すべての新しいパイプラインに Unity Catalog を使用することをお勧めします。 「DLT パイプラインで Unity Catalog を使用する」を参照してください。
この記事では、パイプラインの現在のデフォルト発行モードの機能について説明します。 2025 年 2 月 5 日より前に作成されたパイプラインでは、従来の発行モードと LIVE
仮想スキーマが使用される場合があります。 LIVE スキーマ (レガシー)を参照してください。
レガシーHive metastoreでストリーミングテーブルとマテリアライズドビューをクエリする方法
更新が完了したら、スキーマとテーブルを表示したり、データをクエリしたり、ダウンストリームアプリケーションでデータを使用したりできます。
公開されると、DLT テーブルは、ターゲット スキーマにアクセスできる任意の環境からクエリを実行できます。これには、Databricks SQL、ノートブック、その他の DLT パイプラインが含まれます。
target
設定を作成すると、テーブルと関連するメタデータのみが公開されます。ビューはメタストアに公開されません。
Hive metastoreに発行するようにパイプラインを構成する
新しいパイプラインを作成するときは、 Storage Hive metastore オプションで を指定して、従来のHive metastore に公開できます。Hive metastoreにパブリッシュする場合は、デフォルトのターゲット スキーマを指定する必要があります。DLT パイプラインの設定を参照してください。
保存場所の指定
Hive metastoreにパブリッシュするパイプラインの保管場所を指定できます。場所を指定する主な動機は、パイプラインによって書き込まれたデータのオブジェクトストレージの場所を制御することです。 Databricks では、 DBFSルートへの書き込みを避けるために、常にストレージの場所を指定することをお勧めします。
DLT パイプラインのすべてのテーブル、データ、チェックポイント、およびメタデータは DLT によってフルマネードされるため、DLT データセットとのほとんどの対話は、 Hive metastore または Unity Catalogに登録されたテーブルを介して行われます。
クラウドストレージの構成
AWS インスタンスプロファイルを使用して、 AWS の S3 ストレージへのアクセスを設定します。 パイプラインを作成または編集するときに DLT UI でインスタンスプロファイルを追加するには:
- パイプラインの パイプライン詳細 ページで、 設定 ボタンをクリックします。
- インスタンスプロファイル ドロップダウンメニューで、パイプライン設定の コンピュート セクションで、インスタンスプロファイルを選択します。
パイプライン クラスターの JSON AWS設定を編集してJSON インスタンスプロファイルを設定するには、[]aws_attributes.instance_profile_arn
ボタンをクリックし、クラスター設定の [] フィールドにインスタンスプロファイル設定を入力します。
{
"clusters": [
{
"aws_attributes": {
"instance_profile_arn": "arn:aws:..."
}
}
]
}
DLT パイプラインのクラスターポリシーを作成するときに、インスタンスプロファイルを設定することもできます。例については、 ナレッジ ベースを参照してください。
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 ワークスペースに次のノートブックをインポートし、それらを使用して DLT パイプラインをデプロイできます。選択した言語のノートブックをインポートし、 ストレージオプションを使用してパイプラインを構成するときに Hive metastore 、ソースコード フィールドにパスを指定します。DLT パイプラインの設定を参照してください。