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

Lakeflow 宣言型パイプラインを従来の Hive metastore と共に使用する

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

注記

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

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

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

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

important

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 にインスタンスプロファイルを追加するには:

  1. LakeFlow Pipelines Editorでパイプラインを編集するときに、 [設定] ボタンをクリックします。
  2. パイプライン設定の コンピュート セクションに ある インスタンスにあるドロップダウン メニューで、インスタンスを選択します。

パイプライン クラスターの JSON AWS設定を編集してJSON インスタンスプロファイルを設定するには、[]aws_attributes.instance_profile_arn ボタンをクリックし、クラスター設定の [] フィールドにインスタンスプロファイル設定を入力します。

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

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 のないワークスペース用のパイプライン ソースコード ノートブックの例

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

Lakeflow 宣言型パイプライン Python ノートブックの使用を開始する

Open notebook in new tab

Lakeflow 宣言型パイプライン SQL ノートブックの使用を開始する

Open notebook in new tab