次の方法で共有


Delta Lake テーブルの読み取り (Synapse または外部の場所)

大事な

AKS 上の Azure HDInsight は、2025 年 1 月 31 日に廃止されました。 このお知らせ により、についてさらに学んでください。

ワークロードの突然の終了を回避するには、ワークロードを Microsoft Fabric または同等の Azure 製品 に移行する必要があります。

大事な

この機能は現在プレビュー段階です。 Microsoft Azure プレビューの 追加使用条件 には、ベータ版、プレビュー版、または一般公開されていない Azure 機能に適用される、より多くの法的条件が含まれています。 この特定のプレビューの詳細については、AKS プレビュー情報 Azure HDInsightを参照してください。 ご質問や機能の提案については、詳細を記載して AskHDInsight にリクエストを送信してください。また、最新情報を受け取るには Azure HDInsight Communityをフォローしてください。

この記事では、メタストア (Synapse またはパブリック アクセスのない他のメタストア) にアクセスせずに Delta Lake テーブルを読み取る方法の概要について説明します。

AKS 上の HDInsight で Trino を使用して、テーブルに対して次の操作を実行できます。

  • 削除
  • 更新
  • 挿入する
  • マージ

前提 条件

Delta Lake スキーマとテーブルを作成する

このセクションでは、Delta Lake カタログが既に構成されている場合に、既存の場所に対して Delta テーブルを作成する方法について説明します。

  1. Azure portal の Storage browser を使用して、テーブルのベース ディレクトリがあるストレージ アカウントを参照します。 このテーブルが Synapse で生成される場合は、synapse/workspaces/.../warehouse/ パスの下にある可能性が高く、テーブルの名前が付けられ、_delta_log ディレクトリが含まれます。 フォルダーの横にある 3 つのドットから Copy URL を選択します。

    この http パスを ABFS (Azure BLOB ファイル システム) パスに変換する必要があります。

    ストレージの http パスは次のように構成されます:https://{{AZURE_STORAGE_ACCOUNT}}.blob.core.windows.net/{{AZURE_STORAGE_CONTAINER}}/synapse/workspaces/my_workspace/warehouse/{{TABLE_NAME}}/

    ABFS パスは次のようになります。abfss://{{AZURE_STORAGE_CONTAINER}}@{{AZURE_STORAGE_ACCOUNT}}.dfs.core.windows.net/synapse/workspaces/my_workspace/warehouse/{{TABLE_NAME}}/

    例: abfss://container@storageaccount.dfs.core.windows.net/synapse/workspaces/workspace_name/warehouse/table_name/

  2. Trino で Delta Lake スキーマを作成します。

    CREATE SCHEMA delta.default;
    

    または、特定のストレージ アカウントにスキーマを作成することもできます。

    CREATE SCHEMA delta.default WITH (location = 'abfss://container@storageaccount.dfs.core.windows.net/trino/');
    
  3. register_table プロシージャを使用して、テーブルを作成します。

    CALL delta.system.register_table(schema_name => 'default', table_name => 'table_name', table_location => 'abfss://container@storageaccount.dfs.core.windows.net/synapse/workspaces/workspace_name/warehouse/table_name/');
    
  4. テーブルにクエリを実行して確認します。

    SELECT * FROM delta.default.table_name
    

Synapse Spark で Delta Lake テーブルを書き込む

format("delta") を使用してデータフレームを Delta テーブルとして保存します。その後、データフレームをデルタ形式として保存したパスを使用して、テーブルを Trino に登録できます。

my_dataframe.write.format("delta").save("abfss://container@storageaccount.dfs.core.windows.net/synapse/workspaces/workspace_name/warehouse/table_name")

次の手順

Trino でキャッシュを構成する方法