Conecte-se ao Google Cloud Storage
Este artigo descreve como configurar uma conexão do Databricks para ler e gravar tabelas e dados armazenados no Google Cloud Storage (GCS).
Para ler ou gravar em um bucket do GCS, você precisa criar uma account de serviço anexada e associar o bucket à account de serviço. Você se conecta ao bucket diretamente com uma key gerada para a account de serviço.
Acesse um bucket do GCS diretamente com uma chave de conta do serviço clouds do Google
Para ler e gravar diretamente em um bucket, configure uma key definida na configuração do Spark.
passo 1: configurar a conta de serviço do Google Cloud usando o Console do Google Cloud
Você deve criar uma account de serviço para os clusters do Databricks. A Databricks recomenda atribuir a esta account de serviço os privilégios mínimos necessários para executar a sua tarefa.
Clique em IAM e Admin no painel de navegação esquerdo.
Clique em accountde serviço.
Clique em + CRIAR accountde serviço.
Insira o nome e a descrição account de serviço.
Clique em Criar.
Clique em "Continuar".
Clique em Concluído.
passo 2: criar uma chave para acessar o bucket GCS diretamente
Aviso
A JSON que key você gera para a de serviço account é uma privada key que só deve ser compartilhada com usuários autorizados, pois controla o acesso ao dataset e recursos em sua do Google clouds account.
No console do Google clouds , na lista account de serviço, clique na account recém-criada.
Na seção key , clique em ADICIONAR key > Criar nova key.
Aceite o key tipo JSON .
Clique em CRIAR. O arquivo key é downloads para o seu computador.
passo 3: configurar o bucket GCS
passo 4: coloque a chave da conta de serviço nos segredos do Databricks
A Databricks recomenda a utilização Secret Scope para armazenar todas as credenciais. Você pode colocar a key privada e o ID key privada do arquivo JSON key no Databricks Secret Scope. Você pode conceder aos usuários, entidade de serviço e grupos em seu espaço de trabalho acesso para ler o Secret Scope. Isso protege a de serviço e account key permite que os usuários acessem o GCS. Para criar um Secret Scope, consulte Segredos.
passo 5: configurar clustersdo Databricks
No endereço Spark Config tab, defina uma configuração global ou uma configuração por bucket. Os exemplos a seguir definem a chave usando valores armazenados como segredos de Databricks.
Observação
Use o controle de acesso cluster e o controle de acesso ao Notebook juntos para proteger o acesso ao serviço account e aos dados no bucket GCS. Consulte Permissões de computação e Colaborar usando o Databricks Notebook.
Configuração global
Use essa configuração se as credenciais fornecidas precisarem ser usadas para acessar todos os buckets.
spark.hadoop.google.cloud.auth.service.account.enable true
spark.hadoop.fs.gs.auth.service.account.email <client-email>
spark.hadoop.fs.gs.project.id <project-id>
spark.hadoop.fs.gs.auth.service.account.private.key {{secrets/scope/gsa_private_key}}
spark.hadoop.fs.gs.auth.service.account.private.key.id {{secrets/scope/gsa_private_key_id}}
Substitua <client-email>
, <project-id>
pelos valores desses nomes de campos exatos do seu arquivo JSON key .
Configuração por bucket
Use essa configuração se precisar configurar credenciais para buckets específicos. A sintaxe da configuração por bucket acrescenta o nome do bucket ao final de cada configuração, como no exemplo a seguir.
Importante
As configurações por bucket podem ser usadas além das configurações globais. Quando especificadas, as configurações por bucket substituem as configurações globais.
spark.hadoop.google.cloud.auth.service.account.enable.<bucket-name> true
spark.hadoop.fs.gs.auth.service.account.email.<bucket-name> <client-email>
spark.hadoop.fs.gs.project.id.<bucket-name> <project-id>
spark.hadoop.fs.gs.auth.service.account.private.key.<bucket-name> {{secrets/scope/gsa_private_key}}
spark.hadoop.fs.gs.auth.service.account.private.key.id.<bucket-name> {{secrets/scope/gsa_private_key_id}}
Substitua <client-email>
, <project-id>
pelos valores desses nomes de campos exatos do seu arquivo JSON key .
passo 6: leitura do GCS
Para ler o bucket do GCS, use um comando de leitura do Spark em qualquer formato compatível, por exemplo:
df = spark.read.format("parquet").load("gs://<bucket-name>/<path>")
Para gravar no bucket do GCS, use um comando de gravação do Spark em qualquer formato compatível, por exemplo:
df.write.mode("<mode>").save("gs://<bucket-name>/<path>")
Substitua <bucket-name>
pelo nome do bucket que você criou na passo 3: Configure the GCS bucket.