この記事では、従来の Hive メタストアにデータを発行するように構成された Lakeflow Spark 宣言パイプラインに固有の構成と注意事項について詳しく説明します。 Databricks では、すべての新しいパイプラインに Unity カタログを使用することをお勧めします。 「パイプラインで Unity カタログを使用する」を参照してください。
注
この記事では、パイプラインの現在の既定の発行モードの機能について説明します。 2025 年 2 月 5 日より前に作成されたパイプラインでは、従来の発行モードと LIVE 仮想スキーマが使用される場合があります。
LIVE スキーマ (レガシー)を参照してください。
従来の Hive メタストアでストリーミング テーブルと具体化されたビューにクエリを実行する方法
更新が完了したら、スキーマとテーブルの表示、データのクエリ、またはダウンストリーム アプリケーションでのデータの使用を行うことができます。
発行されると、Lakeflow Spark 宣言パイプライン テーブルは、ターゲット スキーマにアクセスできる任意の環境からクエリを実行できます。 これには、Databricks SQL、ノートブック、およびその他の Lakeflow Spark 宣言パイプラインが含まれます。
Important
target 構成を作成すると、テーブルと関連付けられたメタデータのみがパブリッシュされます。 ビューはメタストアにはパブリッシュされません。
Hive メタストアに発行するようにパイプラインを構成する
従来の Hive メタストアに発行するには、新しいパイプラインを作成するときに [高度なオプション] で [Hive Metastore を使用する] を選択します (オプションを表示するには、[詳細を表示] を選択する必要がある場合があります)。 Hive メタストアに発行するときは、既定のターゲット スキーマを指定する必要があります。 「 パイプラインの構成」を参照してください。
ストレージの場所を指定する
Hive メタストアに発行するパイプラインのストレージの場所を指定できます。 場所を指定する主な動機は、パイプラインによって書き込まれるデータのオブジェクトストレージの場所を制御することです。 Databricks では、DBFS ルートへの書き込みを回避するために、常にストレージの場所を特定することをお勧めします。
Lakeflow Spark 宣言パイプラインのすべてのテーブル、データ、チェックポイント、およびメタデータは、Lakeflow Spark 宣言パイプラインによって完全に管理されるため、Lakeflow Spark 宣言パイプライン データセットとのほとんどの対話は、Hive メタストアまたは Unity カタログに登録されているテーブルを介して行われます。
クラウド ストレージの構成
Azure ストレージにアクセスするには、クラスター構成の spark.conf 設定を使用して、アクセス トークンなどの必要なパラメーターを構成する必要があります。 Azure Data Lake Storage (ADLS) ストレージ アカウントへのアクセスを構成する例については、「 パイプライン内のシークレットを使用してストレージ資格情報に安全にアクセスする」を参照してください。
Hive メタストア パイプラインのイベント ログを操作する
パイプラインが Hive メタストアにテーブルを発行する場合、イベント ログは/system/eventsの場所のstorageに格納されます。 たとえば、パイプライン 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;
Azure Databricks ノートブックまたは SQL エディターでイベント ログにクエリを実行できます。 ノートブックまたは SQL エディターを使用して、イベント ログ クエリの例を実行します。
Unity カタログのないワークスペースのパイプライン ソース コード ノートブックの例
Unity カタログが有効になっていない Azure Databricks ワークスペースに次のノートブックをインポートし、それらを使用して Lakeflow Spark 宣言パイプラインをデプロイできます。 選択した言語のノートブックをインポートし、Hive メタストアストレージ オプションを使用してパイプラインを構成するときに、Source コード フィールドにパスを指定します。 「 パイプラインの構成」を参照してください。