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