分享方式:


設定 Delta Lake 目錄

重要

此功能目前為預覽功能。 Microsoft Azure 預覽版增補使用規定包含適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的更多法律條款。 若需此特定預覽版的相關資訊,請參閱 Azure HDInsight on AKS 預覽版資訊。 如有問題或功能建議,請在 AskHDInsight 上提交要求並附上詳細資料,並且在 Azure HDInsight 社群上追蹤我們以獲得更多更新資訊。

本文提供如何在 Trino 叢集中使用 HDInsight on AKS 來設定 Delta Lake 目錄的概觀。 您可以藉由更新叢集 ARM 範本來新增新目錄,但 hive 目錄除外 (您可以在 Azure 入口網站中 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"
                }                        ]
        },
    

    注意

    referenceName 應符合 hive.metastore.hdi.metastoreDbConnectionPasswordSecret 中提供的值

  2. 更新叢集 ARM 範本以新增 Delta Lake 目錄組態檔。 此組態必須定義於 ARM 範本的 clusterProfile 屬性之下的 serviceConfigsProfiles 中。

    屬性 數值 Description
    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. 在包含差異資料表的儲存體帳戶中,將 Storage Blob Data Owner 角色指派給叢集使用者指派的 MSI。 了解如何指派角色

    • 使用者指派的 MSI 名稱會列在叢集資源 JSON 的 msiResourceId 屬性中。

部署更新的 ARM 範本以反映叢集中的變更。 了解如何部署 ARM 範本
成功部署後,您可以在 Trino 叢集中看到「差異」目錄。

下一步

讀取 Delta Lake 資料表 (Synapse 或外部位置)