Partilhar via


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.

  1. Clique em IAM e Admin no painel de navegação esquerdo.

  2. Clique em Contas de Serviço.

  3. Clique em + CRIAR CONTA DE SERVIÇO.

  4. Insira o nome e a descrição da conta de serviço.

    Google Criar conta de serviço para GCS

  5. Clique em CRIAR.

  6. Clique em CONTINUAR.

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

  1. No console do Google Cloud, na lista de contas de serviço, clique na conta recém-criada.
  2. Na seção Chaves, clique em ADICIONAR CHAVE > Criar nova chave.
  3. Aceite o tipo de chave JSON.
  4. 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:

  1. Clique em Armazenamento no painel de navegação esquerdo.

  2. Clique em CREATE BUCKET.

    Bucket de criação do Google

  3. Clique em CRIAR.

Configurar o bucket

  1. Configure os detalhes do bucket.

  2. Clique no separador Permissões .

  3. Ao lado do rótulo Permissões , clique em ADD.

    Detalhes do bucket do Google

  4. Forneça a permissão de administrador de armazenamento para a conta de serviço no bucket das funções de armazenamento em nuvem.

    Permissões do Google Bucket

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

Blocos de notas de exemplo

Leia a partir do bloco de notas do Google Cloud Storage

Obter o bloco de notas

Escrever no bloco de notas do Google Cloud Storage

Obter o bloco de notas