Habilite a configuração de acesso aos dados

Este artigo descreve as configurações de acesso a dados realizadas pelos administradores do Databricks para todos os SQL warehouse usando a interface do usuário.

Observação

Caso o seu workspace esteja habilitado para o Unity Catalog, você não precisa executar os passos deste artigo. Unity Catalog oferece suporte SQL warehouse por padrão.

A Databricks recomenda o uso de volumes do Unity Catalog ou locais externos para se conectar ao armazenamento de objetos em nuvens em vez do perfil da instância. O Unity Catalog simplifica a segurança e a governança de seus dados, fornecendo um local central para administrar e auditar o acesso aos dados em vários espaços de trabalho em seu account. Consulte O que é o Unity Catalog? e Recomendações para o uso de locais externos.

Para configurar todo o armazém SQL usando a API REST, consulte API do armazém SQL.

Importante

A alteração dessas configurações reinicia todos os SQL warehouse em execução.

Para obter uma visão geral de como habilitar o acesso aos dados, consulte Listas de controle de acesso.

Requisitos

  • Você deve ser um administrador do workspace Databricks para definir configurações para todos os SQL warehouses.

Configure o site SQL warehouse para usar um instance profile

Para configurar todos os warehouses para usar um instance profile da AWS ao acessar o armazenamento AWS:

  1. Clique no seu nome de usuário na barra superior do site workspace e selecione Admin Settings no menu suspenso.

  2. Clique no botão compute tab.

  3. Clique em gerenciar ao lado de SQL warehouse.

  4. No menu suspenso instance profile selecione um instance profile.

  5. Clique em Salvar.

Aviso

  • Caso um usuário não tenha permissão para usar o instance profile, todos os warehouses criados pelo usuário falharão ao iniciar.

  • Se o endereço instance profile não for válido, todos os depósitos de SQL se tornarão insalubres.

O senhor também pode configurar um instance profile usando o provedor Databricks Terraform e o databricks_sql_global_config.

Você também pode editar diretamente as entradas da caixa de texto da configuração de acesso de dados.

Configurar propriedades de acesso a dados para SQL warehouse

Para configurar todos os armazéns com propriedades de acesso a dados, por exemplo, quando o senhor usa um metastore externo em vez do legado Hive metastore:

  1. Clique no seu nome de usuário na barra superior do site workspace e selecione Admin Settings no menu suspenso.

  2. Clique no botão compute tab.

  3. Clique em gerenciar ao lado de SQL warehouse.

  4. Na caixa de texto Data Access Configuration (Configuração de acesso a dados ), especifique um valor-chave par que contenha propriedades de metastore.

    Importante

    Para definir uma propriedade de configuração do Spark como o valor de um segredo sem expor o valor do segredo ao Spark, defina o valor como {{secrets/<secret-scope>/<secret-name>}}. Substitua <secret-scope> pelo endereço Secret Scope e <secret-name> pelo nome secreto. O valor deve começar com {{secrets/ e terminar com }}. Para obter mais informações sobre essa sintaxe, consulte Sintaxe para fazer referência a segredos em uma propriedade de configuração ou variável de ambiente do Spark.

  5. Clique em Salvar.

O senhor também pode configurar as propriedades de acesso aos dados usando o provedor Databricks Terraform e databricks_sql_global_config.

Propriedades compatíveis

  • Para uma entrada que termina com *, todas as propriedades dentro deste prefixo são compatíveis.

    Por exemplo, spark.sql.hive.metastore.* indica que tanto spark.sql.hive.metastore.jars quanto spark.sql.hive.metastore.version são compatíveis e quaisquer outras propriedades que comecem com spark.sql.hive.metastore.

  • Para propriedades cujos valores contêm informações confidenciais, você pode armazenar essas informações em um segredo e definir o valor da propriedade como o nome do segredo usando a seguinte sintaxe: secrets/<secret-scope>/<secret-name>.

As propriedades a seguir são compatíveis com o SQL warehouse:

  • spark.databricks.hive.metastore.glueCatalog.enabled

  • spark.databricks.delta.catalog.update.enabled false

  • spark.sql.hive.metastore.* (spark.sql.hive.metastore.jars e spark.sql.hive.metastore.jars.path não são compatíveis com o serverless SQL warehouse).

  • spark.sql.warehouse.dir

  • spark.hadoop.aws.region

  • spark.hadoop.datanucleus.*

  • spark.hadoop.fs.*

  • spark.hadoop.hive.*

  • spark.hadoop.javax.jdo.option.*

  • spark.hive.*

  • spark.hadoop.aws.glue.*

Para obter mais informações sobre como definir essas propriedades, consulte Hive metastore externo e Catálogo de dados do AWS Glue.

Confirmar ou configurar um instance profile da AWS para usar com seus SQL warehouse serverless

Caso você já use um perfil de instância com o Databricks SQL, a função associada ao instance profile precisa de uma declaração de relação de confiança do Databricks Serverless compute para que o SQL warehouses serverless possa usá-la.

Talvez o senhor não precise modificar a função, dependendo de como e quando o site instance profile foi criado, pois talvez ele já tenha a relação de confiança. Se o site instance profile tiver sido criado das seguintes maneiras, é provável que ele tenha a declaração de relacionamento de confiança:

  • Depois de 24 de junho de 2022, seu instance profile foi criado como parte da criação de um workspace Databricks usando o AWS Quickstart.

  • Após 24 de junho de 2022, alguém em sua organização seguiu os passos dos artigos da Databricks para criar o instance profile manualmente.

Esta seção detalha como confirmar ou atualizar se a função associada ao instance profile tem a declaração de relação de confiança. Isso permite que seus SQL warehouse serverless usem a função para acessar seus S3 buckets.

Importante

Para executar esses passos, o senhor deve ser um administrador da Databricks workspace para confirmar qual instance profile seu workspace usa para Databricks SQL. O senhor também deve ser um administrador do AWS account para verificar a política de relacionamento de confiança da função ou fazer as alterações necessárias. Se o senhor não for um desses dois tipos de administrador, entre em contato com os administradores apropriados em sua organização para concluir esses passos.

  1. Na página de configurações do administrador, clique no botão compute tab e, em seguida, clique em gerenciar ao lado de SQL warehouse.

  2. Procure na seção Segurança de dados do campo Instance profile. Confirme se o seu workspace está configurado para usar um instance profile do AWS para o Databricks SQL para se conectar a buckets do AWS S3 que não sejam o bucket raiz.

    • Se o senhor usar um instance profile, seu nome ficará visível no campo instance profile campo. Anote isso para o próximo passo.

    • Se o valor do campo for None(Nenhum), você não está usando um instance profile para acessar os S3 buckets que não sejam o bucket raiz do seu workspace. A configuração está concluída.

  3. Confirme se o nome do seu instance profile corresponde ao nome da função associada.

    1. No console da AWS, acesse a tab funções do serviço IAM. Ela lista todas as funções do IAM em sua conta.

    2. Clique na função com o nome que corresponde ao nome instance profile nas configurações de administrador Databricks SQL na seção Segurança de dados para o campo instance profile que o senhor encontrou anteriormente nesta seção.

    3. Na área de resumo, localize os campos ARN da função e ARNs de instance profile.

    4. Verifique se a última parte desses dois campos tem nomes correspondentes após a barra final. Por exemplo:

      O nome do perfil da instância e o nome da função arn correspondem
  4. Se você determinou na passo anterior que o nome da função (o texto após a última barra no ARN da função) e o nome instance profile (o texto após a última barra no ARN do instance profile ) não correspondem, edite seu instance profile registro para especificar o ARN da IAM role .

    1. Para editar seus instance profiles, procure abaixo do campo instance profile e clique no botão "Configurar".

    2. Clique no nome do instance profile.

    3. Clique em Editar.

    4. No campo opcional ARN da função, cole o ARN da função associada ao seu instance profile. Esta é a passo chave que permite que seu instance profile funcione com Databricks SQL Serverless , mesmo que o nome da função não corresponda ao nome do instance profile.

    5. Clique em Salvar.

  5. No console do AWS, confirme ou edite a relação de confiança.

    1. Nas funções do serviço IAM do console da AWS tab, clique na função instance profile que deseja modificar.

    2. Clique na tab Confiar em relacionamentos.

    3. view a política de confiança existente. Se a política já incluir o bloco JSON abaixo, então este passo foi concluído anteriormente e o senhor pode ignorar as instruções a seguir.

    4. Clique em Editar política de confiança.

    5. Na matriz Statement existente, acrescente o seguinte bloco JSON ao final da política de confiança existente. Confirme que o senhor não substitui a política existente.

      {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::790110701330:role/serverless-customer-resource-role"
        ]
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
            "sts:ExternalId": [
              "databricks-serverless-<YOUR-WORKSPACE-ID1>",
              "databricks-serverless-<YOUR-WORKSPACE-ID2>"
            ]
          }
        }
      }
      

      A única coisa que o senhor deve alterar na declaração é o workspace ID. Substitua YOUR_WORKSPACE-ID por um ou mais IDs do Databricks workspace para os espaços de trabalho que usarão essa função. Para obter o ID do workspace enquanto estiver usando o workspace, verifique o URL. Por exemplo, em https://<databricks-instance>/?o=6280049833385130, o número após o= é a ID workspace.

      Não edite a entidade de segurança da política. O campo Principal.AWS deve continuar a ter o valor arn:aws:iam::790110701330:role/serverless-customer-resource-role. Isso faz referência a uma função de computação serverless gerenciada pelo Databricks.

    6. Clique em Revisar política.

    7. Clique em Salvar alterações.

Importante

Se o site instance profile for alterado posteriormente, repita esses passos para verificar se a relação de confiança para a função instance profilecontém a declaração extra necessária.

Solução de problemas

Se sua relação de confiança estiver mal configurada, os clusters falharão com uma mensagem: "A solicitação para criar um cluster falhou com uma exceção INVALID_PARAMETER_VALUE: IAM role <role-id> não tem a relação de confiança necessária."

Se o senhor receber esse erro, pode ser que as IDs do workspace estejam incorretas ou que a política de confiança não tenha sido atualizada corretamente na função correta.

Execute cuidadosamente as passos em Confirmar ou configurar um instance profile da AWS para usar com seu SQL warehouse serverless para atualizar a relação de confiança.

Configuração do metastore do Glue para SQL warehouse serverless

Se o senhor precisar especificar um metastore do AWS Glue ou adicionar configurações adicionais de fonte de dados, atualize o campo Data Access Configuration na página de configurações do administrador.

Importante

O SQL warehouse serverless oferece suporte ao metastore padrão do Databricks e ao AWS Glue como um metastore, mas não oferecem suporte a metastores externos do Hive.