Configurações de acesso a dados

Este artigo descreve as configurações do administrador do workspace relacionadas aos armazéns serverless compute e SQL.

Observação

A Databricks recomenda usar volumes do Unity Catalog ou locais externos para se conectar ao armazenamento de objetos na nuvem. 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.

Importante

A alteração dessas configurações reinicia todas as cargas de trabalho em execução do warehouse SQL e do serverless compute .

Requisitos

  • O senhor deve ser um administrador do Databricks workspace para definir essas configurações.

Configure serverless compute e SQL warehouse para usar um instance profile

A seleção de um instance profile usando essa configuração permitirá que todos os depósitos SQL em seu workspace e todos os seus workspace's serverless compute recurso usem o instance profile para acessar o armazenamento AWS. Para obter informações sobre o perfil da instância, consulte o tutorial: Configure o acesso S3 com um instance profile.

Para definir um instance profile a ser usado por todos os depósitos e serverless compute em seu workspace:

  1. Clique no seu nome de usuário na barra superior do site workspace e selecione Settings (Configurações ) no menu suspenso.

  2. Clique no botão compute tab.

  3. Clique em gerenciar ao lado de SQL warehouse e serverless compute .

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

  5. Clique em Salvar alterações.

Depois de atualizar essa configuração, todos os depósitos serão reiniciados. Se um trabalho estiver usando serverless compute, ele será executado por até 5 minutos antes de ser encerrado e, em seguida, tentado novamente. Se estiver usando o serverless compute em um Notebook, o senhor poderá continuar a executar as consultas por 5 minutos. Após 5 minutos, todas as consultas em voo parecerão continuar a ser executadas por um breve período sem incorrer em cobrança e, em seguida, falharão com uma mensagem de erro informando que o senhor deve desconectar e reconectar o compute e tentar novamente.

Aviso

  • Se um usuário não tiver permissão para usar o instance profile, todos os depósitos do SQL que o usuário criar não começarão.

  • 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.

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 Settings (Configurações ) 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 com 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 escopo secreto 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 gerenciar segredos.

  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.