Conectar-se ao Google Cloud Storage
Este artigo descreve como configurar uma conexão do Azure Databricks para ler e gravar tabelas e dados armazenados no Google Cloud Storage (GCS).
Para ler ou gravar a partir de um bucket GCS, você deve criar uma conta de serviço anexada e associar o bucket à conta de serviço. Você se conecta ao bucket diretamente com uma chave que gera para a conta de serviço.
Acesse um bucket GCS diretamente com uma chave de conta de serviço do Google Cloud
Para ler e gravar diretamente em um bucket, configure uma chave definida na configuração do Spark.
Etapa 1: configurar a conta de serviço do Google Cloud usando o Google Cloud Console
Você deve criar uma conta de serviço para o cluster do Azure Databricks. O Databricks recomenda dar a essa conta de serviço o mínimo de privilégios necessários para executar suas tarefas.
Clique em IAM e Admin no painel de navegação esquerdo.
Clique em Contas de Serviço.
Clique em + CRIAR CONTA DE SERVIÇO.
Insira o nome e a descrição da conta de serviço.
Clique em CRIAR.
Clique em CONTINUAR.
Clique em CONCLUÍDO.
Etapa 2: Criar uma chave para acessar o bucket GCS diretamente
Aviso
A chave JSON gerada para a conta de serviço é uma chave privada que só deve ser compartilhada com usuários autorizados, pois controla o acesso a conjuntos de dados e recursos na sua conta do Google Cloud.
- No console do Google Cloud, na lista de contas de serviço, clique na conta recém-criada.
- Na seção Chaves, clique em ADICIONAR CHAVE > Criar nova chave.
- Aceite o tipo de chave JSON.
- Clique em CRIAR. O ficheiro de chave é transferido para o seu computador.
Etapa 3: Configurar o bucket GCS
Criar um bucket
Se você ainda não tiver um bucket, crie um:
Clique em Armazenamento no painel de navegação esquerdo.
Clique em CREATE BUCKET.
Clique em CRIAR.
Configurar o bucket
Configure os detalhes do bucket.
Clique no separador Permissões .
Ao lado do rótulo Permissões , clique em ADD.
Forneça a permissão de administrador de armazenamento para a conta de serviço no bucket das funções de armazenamento em nuvem.
Clique em GUARDAR.
Etapa 4: Coloque a chave da conta de serviço nos segredos do Databricks
O Databricks recomenda a utilização de âmbitos de segredos para armazenar todas as credenciais. Você pode colocar a chave privada e o ID da chave privada do seu arquivo JSON de chave nos escopos secretos do Databricks. Você pode conceder aos usuários, entidades de serviço e grupos em seu espaço de trabalho acesso para ler os escopos secretos. Isso protege a chave da conta de serviço enquanto permite que os usuários acessem o GCS. Para criar um escopo secreto, consulte Gerenciar segredos.
Etapa 5: Configurar um cluster do Azure Databricks
Na guia Configuração do Spark , configure uma configuração global ou uma configuração por bucket. Os exemplos a seguir definem as chaves usando valores armazenados como segredos do Databricks.
Nota
Use o controle de acesso ao cluster e o controle de acesso ao bloco de anotações juntos para proteger o acesso à conta de serviço e aos dados no bucket GCS. Consulte Permissões de computação e Colaborar usando blocos de anotações Databricks.
Configuração global
Use essa configuração se as credenciais fornecidas devem 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 campo exatos do seu arquivo JSON de chave.
Configuração por bucket
Use essa configuração se você precisar configurar credenciais para buckets específicos. A sintaxe para 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 especificado, 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 campo exatos do seu arquivo JSON de chave.
Passo 6: Ler a partir do GCS
Para ler a partir do bucket GCS, use um comando de leitura do Spark em qualquer formato suportado, por exemplo:
df = spark.read.format("parquet").load("gs://<bucket-name>/<path>")
Para gravar no bucket GCS, use um comando Spark write em qualquer formato suportado, por exemplo:
df.write.mode("<mode>").save("gs://<bucket-name>/<path>")
Substitua <bucket-name>
pelo nome do bucket criado na Etapa 3: Configurar o bucket GCS.