Configurar o catálogo do Delta Lake

Observação

Desativaremos o Microsoft Azure HDInsight no AKS em 31 de janeiro de 2025. Para evitar o encerramento abrupto das suas cargas de trabalho, você precisará migrá-las para o Microsoft Fabric ou para um produto equivalente do Azure antes de 31 de janeiro de 2025. Os clusters restantes em sua assinatura serão interrompidos e removidos do host.

Somente o suporte Básico do Azure estará disponível até a data de desativação.

Importante

Esse recurso está atualmente na visualização. Os Termos de uso complementares para versões prévias do Microsoft Azure incluem mais termos legais que se aplicam aos recursos do Azure que estão em versão beta, em versão prévia ou ainda não lançados em disponibilidade geral. Para obter informações sobre essa versão prévia específica, confira Informações sobre a versão prévia do Azure HDInsight no AKS. Caso tenha perguntas ou sugestões de recursos, envie uma solicitação no AskHDInsight com os detalhes e siga-nos para ver mais atualizações sobre a Comunidade do Azure HDInsight.

Este artigo fornece uma visão geral de como configurar o catálogo do Delta Lake em seu cluster de Trino com HDInsight no AKS. É possível adicionar um catálogo atualizando o modelo do ARM do cluster, exceto no caso do catálogo do Hive, que pode ser adicionado durante a criação do cluster Trino no portal do Azure.

Pré-requisitos

Etapas para configurar o catálogo do Delta Lake

  1. Configurar o metastore do Hive para definições de tabela e locais se você ainda não tiver um metastore configurado.

    Configure o banco de dados metastore externo do Hive e o diretório de armazenamento padrão no arquivo config.properties (mais informações sobre a configuração do 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"
                }                        ]
        },
    

    Observação

    referenceName deve corresponder ao valor fornecido em hive.metastore.hdi.metastoreDbConnectionPasswordSecret

  2. Atualize o modelo do ARM do cluster para adicionar um arquivo de configuração do catálogo do Delta Lake. Esta configuração precisa ser definida em serviceConfigsProfiles na propriedade clusterProfile do modelo do ARM.

    Propriedade Valor Descrição
    fileName delta.properties Nome do arquivo do catálogo. Se o arquivo for delta.properties, delta se tornará o nome do catálogo.
    connector.name delta_lake O tipo do catálogo. Para Delta Lake, o tipo do catálogo deve ser delta_lake
    hive.metastore hdi Tipo de metastore do Hive a ser usado para esse catálogo. Digite hdi, isso instruirá o cluster a usar o serviço de Metastore do Hive dentro do cluster, configurado acima.
    delta.register-table-procedure.enabled true Necessário para permitir o registro de tabelas externas.

    Confira a documentação do Trino para conhecer outras opções de configuração do Delta Lake.

    "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. Designe a função Storage Blob Data Owner ao MSI atribuído pelo usuário do cluster na conta de armazenamento que contém as tabelas do Delta. Saiba como atribuir uma função.

    • O nome do MSI atribuído pelo usuário está listado na propriedade msiResourceId no JSON do recurso de cluster.

Implante o modelo do ARM atualizado para refletir as alterações no cluster. Saiba como implantar um modelo do ARM.
Depois da implantação, o catálogo "delta" será exibido no cluster Trino.

Próximas etapas

Ler tabelas do Delta Lake (Synapse ou localização externa)