次の方法で共有


Delta Lake カタログを構成する

Note

Azure HDInsight on AKS は 2025 年 1 月 31 日に廃止されます。 2025 年 1 月 31 日より前に、ワークロードを Microsoft Fabric または同等の Azure 製品に移行することで、ワークロードの突然の終了を回避する必要があります。 サブスクリプション上に残っているクラスターは停止され、ホストから削除されることになります。

提供終了日までは基本サポートのみが利用できます。

重要

現在、この機能はプレビュー段階にあります。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用されるその他の法律条項については、「Microsoft Azure プレビューの追加の使用条件」に記載されています。 この特定のプレビューについては、「Microsoft HDInsight on AKS のプレビュー情報」を参照してください。 質問や機能の提案については、詳細を記載した要求を AskHDInsight で送信してください。また、その他の更新については、Azure HDInsight コミュニティのフォローをお願いいたします。

この記事では、HDInsight on AKS を使った Trino クラスターで Delta Lake カタログを構成する方法の概要について説明します。 新しいカタログは、クラスター ARM テンプレートを更新して追加できます。ただし、Hive カタログは、Azure portal で Trino クラスターの作成中に追加できます。

前提条件

Delta Lake カタログを構成する手順

  1. メタストアがまだ構成されていない場合は、テーブルの定義と場所用に Hive メタストアを構成します

    以下のように config.properties ファイル内で外部 Hive メタストア データベースと既定のストレージ ディレクトリを構成します (詳細は Trino 構成で)。

    "serviceConfigsProfiles": [
        {
            "serviceName": "trino",
            "configs": [
                {
                    "component": "common",
                    "files": [
                        {
                            "fileName": "config.properties",
                            "values": {
                                "hive.metastore.hdi.metastoreDbConnectionURL": "jdbc:sqlserver://{{DATABASE_SERVER}}.database.windows.net;database={{DATABASE_NAME}};encrypt=true;trustServerCertificate=true;create=false;loginTimeout=30",
                                "hive.metastore.hdi.metastoreDbConnectionUserName": "{{DATABASE_USER_NAME}}",
                                "hive.metastore.hdi.metastoreDbConnectionPasswordSecret": "{{SECRET_REFERENCE_NAME}}",
                                "hive.metastore.hdi.metastoreWarehouseDir": "abfs://{{AZURE_STORAGE_CONTAINER}}@{{AZURE_STORAGE_ACCOUNT_NAME}}.dfs.core.windows.net/hive/warehouse"
                            }
                        }
                    ]
                }
            ]
        }
    ]
    "secretsProfile": {
            "keyVaultResourceId": "/subscriptions/{USER_SUBSCRIPTION_ID}/resourceGroups/{USER_RESOURCE_GROUP}/providers/Microsoft.KeyVault/vaults/{USER_KEYVAULT_NAME}",
            "secrets": [
                {
                    "referenceName": "{{SECRET_REFERENCE_NAME}}",
                    "type": "Secret",
                    "keyVaultObjectName": "myCredSecret"
                }                        ]
        },
    

    Note

    referenceName は、hive.metastore.hdi.metastoreDbConnectionPasswordSecret で指定された値と一致する必要があります

  2. クラスター ARM テンプレートを更新して、新しい Delta Lake カタログ構成ファイルを追加します。 この構成は、ARM テンプレートの clusterProfile プロパティの下の serviceConfigsProfiles で定義する必要があります。

    プロパティ 説明
    fileName delta.properties カタログ ファイルの名前。 ファイルが delta.properties と呼ばれる場合、delta がカタログ名になります。
    connector.name delta_lake カタログの種類。 Delta Lake の場合、カタログの種類は delta_lake でなければなりません
    hive.metastore hdi このカタログで使用する Hive メタストアの種類。 「hdi」と入力することで、上で構成したクラスター内 Hive メタストア サービスを使用するようにクラスターに指示できます。
    delta.register-table-procedure.enabled true 外部テーブルの登録を可能にするために必要です。

    その他の Delta Lake 構成オプションについては、Trino のドキュメントを参照してください。

    "serviceConfigsProfiles": [
    {
        "serviceName": "trino",
        "configs": [
            {
                "component": "catalogs",
                "files": [
                            {
                                "fileName": "delta.properties",
                                "values": {
                                    "connector.name": "delta_lake",
                                    "hive.metastore": "hdi",
                                    "delta.register-table-procedure.enabled": "true"
                                }
                            }
       ]
    
    ...
    
  3. Delta テーブルを含むストレージ アカウントのクラスター ユーザー割り当て MSI に Storage Blob Data Owner ロールを割り当てます。 ロールを割り当てる方法を確認してください。

    • ユーザー割り当て MSI 名は、クラスターのリソース JSON の msiResourceId プロパティにリストされています。

更新した ARM テンプレートをデプロイして、クラスターに変更を反映させます。 ARM テンプレートをデプロイする方法を確認してください。
正常にデプロイされると、Trino クラスターに "delta" カタログが表示されます。

次のステップ

Synapse または外部の場所の Delta Lake テーブルを読み込む