従来の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に登録されたテーブルを通じて行われます。
クラウドストレージの構成
AWS インスタンスプロファイルを使用して、 AWS 内の S3 ストレージへのアクセスを構成します。パイプラインを作成または編集するときに、 Lakeflow Spark宣言型パイプライン UI にインスタンスを追加するには:
- Lakeflow Pipelines Editorでパイプラインを編集するときに、 [設定] ボタンをクリックします。
- パイプライン設定の コンピュート セクションに ある インスタンスにあるドロップダウン メニューで、インスタンスを選択します。
パイプライン クラスターの JSON AWS設定を編集してJSON インスタンスプロファイルを設定するには、[]aws_attributes.instance_profile_arn ボタンをクリックし、クラスター設定の [] フィールドにインスタンスプロファイル設定を入力します。
{
"clusters": [
{
"aws_attributes": {
"instance_profile_arn": "arn:aws:..."
}
}
]
}
Lakeflow Spark宣言型パイプラインのクラスターポリシーを作成するときにインスタンスを構成することもできます。 例については、ナレッジ ベースを参照してください。
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 ストレージ オプションを使用してパイプラインを構成するときに、選択した言語のノートブックをインポートし、 ソース コード フィールドにパスを指定します。 「パイプラインの構成」を参照してください。