Configurações de acesso a dados
Este artigo descreve as configurações do administrador do workspace relacionadas aos armazéns serverless compute e SQL.
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.
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:
- Clique no seu nome de usuário na barra superior do workspace e selecione Configurações no menu suspenso.
- Clique na aba Compute .
- Clique em gerenciar ao lado de SQL warehouse e serverless compute .
- No menu suspenso do perfil da instância , selecione um instance profile.
- 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.
- 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 instance profile não for válido, todos os depósitos do SQL se tornarão insalubres.
O senhor também pode configurar um instance profile usando o provedorDatabricks Terraform e databricks_sql_global_config.
Configurar propriedades de acesso a dados para o armazém SQL
Para configurar todos os depósitos com propriedades de acesso a dados, por exemplo, quando o senhor usa um metastore externo em vez do legado Hive metastore:
-
Clique no seu nome de usuário na barra superior do workspace e selecione Configurações no menu suspenso.
-
Clique na aba Compute .
-
Clique em Gerenciar ao lado de SQL warehouses .
-
Na caixa de texto Data Access Configuration (Configuração de acesso a dados ), especifique par key-value contendo propriedades de metastore.
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/
and end with }}
. Para obter mais informações sobre essa sintaxe, consulte gerenciar segredos.
- 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 suportadas
-
Para uma entrada que termina com
*
, todas as propriedades dentro deste prefixo são compatíveis.Por exemplo,
spark.sql.hive.metastore.*
indica que tantospark.sql.hive.metastore.jars
quantospark.sql.hive.metastore.version
são compatíveis, e quaisquer outras propriedades que comecem comspark.sql.hive.metastore
. -
Para propriedades cujos valores contêm informações confidenciais, o senhor pode armazenar as informações confidenciais em um segredo e definir o valor da propriedade como o nome do segredo usando a seguinte sintaxe:
secrets/<secret-scope>/<secret-name>
.
As seguintes propriedades são compatíveis com o armazém SQL:
spark.databricks.hive.metastore.glueCatalog.enabled
spark.databricks.delta.catalog.update.enabled false
spark.sql.hive.metastore.*
(spark.sql.hive.metastore.jars
espark.sql.hive.metastore.jars.path
não são compatíveis com o armazém serverless SQL ).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 External Hive metastore e AWS Glue catálogo de dados.
Confirme ou configure um AWS instance profile para usar com seu depósito serverless SQL
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 as etapas dos artigos 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.
Para executar essas etapas, o senhor deve ser um administrador do 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 você não for desses dois tipos de administrador, entre em contato com os administradores apropriados em sua organização para concluir essas etapas.
-
Na página de configurações do administrador, clique em computar tab e, em seguida, clique em gerenciar ao lado de SQL warehouse .
-
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 de perfil da instância . Anote isso para a próxima etapa.
- Se o valor do campo for None (Nenhum ), o senhor não está usando um instance profile para acessar S3 buckets que não sejam o bucket raiz do seu workspace. A configuração está concluída.
-
Confirme se o nome do seu instance profile corresponde ao nome da função associada.
-
No console da AWS, acesse a tab funções do serviço IAM. Ela lista todas as funções do IAM em sua conta.
-
Clique na função com o nome que corresponde ao nome instance profile nas configurações de administrador Databricks SQL na seção Data Security para o campo de perfil da instância que você encontrou anteriormente nesta seção.
-
Na área de resumo, localize os campos ARN da função e ARNs de instance profile .
-
Verifique se a última parte desses dois campos tem nomes correspondentes após a barra final. Por exemplo:
-
-
Se, na etapa anterior, o senhor determinou que o nome da função (o texto após a última barra na função ARN) e o nome instance profile (o texto após a última barra na função instance profile ARN) não correspondem, edite o registro instance profile para especificar o IAM role ARN.
- Para editar seus instance profiles, procure abaixo do campo instance profile e clique no botão "Configurar" .
- Clique no nome do instance profile.
- Clique em Editar .
- 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.
- Clique em Salvar .
-
No console do AWS, confirme ou edite a relação de confiança.
-
No console AWS IAM serviço's Roles tab, clique na função instance profile que deseja modificar.
-
Clique na tab Confiar em relacionamentos .
-
visualizar a política de confiança existente. Se a política já incluir o bloco JSON abaixo, então esta etapa foi concluída anteriormente e o senhor pode ignorar as instruções a seguir.
-
Clique em Editar política de confiança .
-
Na matriz
Statement
existente, acrescente o seguinte bloco JSON ao final da política de confiança existente. Confirme que você não substitui a política existente.JSON{
"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 o
YOUR_WORKSPACE-ID
por um ou mais Databricks workspace IDs para o espaço de trabalho que usará essa função. Para obter o ID do workspace enquanto estiver usando o workspace, verifique o URL. Por exemplo, emhttps://<databricks-instance>/?o=6280049833385130
, o número apóso=
é a ID workspace.Não edite a entidade de segurança da política. O campo
Principal.AWS
deve continuar a ter o valorarn:aws:iam::790110701330:role/serverless-customer-resource-role
. Isso faz referência a uma função de computação serverless gerenciada pelo Databricks. -
Clique em Revisar política .
-
Clique em Salvar alterações .
-
Se o site instance profile for alterado posteriormente, repita essas etapas 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, o clustering falhará com uma mensagem: "A solicitação para criar um clustering 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 etapas em Confirm or set up an AWS instance profile to use with your serverless SQL warehouse to update the trust relationship.
Configuração do metastore Glue para o armazém serverless SQL
Se o senhor precisar especificar um metastore 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.
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.