Delta Live Tables パイプラインをレガシーのHive metastore で使用する

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

注:

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

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

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

発行されると、Delta Live Tables テーブルは、ターゲット スキーマにアクセスできる任意の環境からクエリを実行できます。 これには、Databricks SQL、ノートブック、その他の Delta Live Tables パイプラインが含まれます。

重要

target設定を作成すると、テーブルと関連するメタデータのみが公開されます。ビューはメタストアに公開されません。

Hive metastore に発行するようにパイプラインを構成する

新しいパイプラインを作成するときは、 StorageHive metastore オプションで を指定して、従来のHive metastore に公開できます。Hive metastoreにパブリッシュする場合は、デフォルトのターゲット スキーマを指定する必要があります。「Delta Live Tables パイプラインの構成」を参照してください。

ストレージロケーションを指定する

Hive metastoreにパブリッシュするパイプラインの保管場所を指定できます。場所を指定する主な動機は、パイプラインによって書き込まれたデータのオブジェクトストレージの場所を制御することです。 Databricks では、 DBFSルートへの書き込みを避けるために、常にストレージの場所を指定することをお勧めします。

Delta Live Tables パイプラインのすべてのテーブル、データ、チェックポイント、およびメタデータは BY Delta Live Tablesによってフルマネージされるため、Delta Live Tables データセットとのほとんどの操作は、Hive metastore または Unity Catalogに登録されたテーブルを介して行われます。

クラウドストレージの構成

AWS インスタンスプロファイルを使用して、 AWS の S3 ストレージへのアクセスを設定します。 パイプラインを作成または編集するときに Delta Live Tables UI にインスタンスプロファイルを追加するには:

  1. パイプラインの パイプライン詳細 ページで、 設定 ボタンをクリックします。

  2. インスタンスプロファイルドロップダウンメニューで、パイプライン設定のコンピュートセクションで、インスタンスプロファイルを選択します。

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

{
  "clusters": [
    {
      "aws_attributes": {
        "instance_profile_arn": "arn:aws:..."
      }
    }
  ]
}

また、Delta Live Tables パイプラインのクラスターポリシーを作成するときに、インスタンスプロファイルを設定することもできます。 例については、 ナレッジ ベースを参照してください。

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 ワークスペースに次のノートブックをインポートし、それらを使用して Delta Live Tables パイプラインをデプロイできます。 選択した言語のノートブックをインポートし、 ストレージオプションを使用してパイプラインを構成するときにHive metastore 、ソースコード フィールドにパスを指定します。Delta Live Tables パイプラインの構成を参照してください。

Delta Live Tablesを使い始めるノートブック(Python版)

ノートブックを新しいタブで開く

Delta Live Tablesを使い始めるノートブック(SQL版)

ノートブックを新しいタブで開く