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