Compartilhar 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 em um bucket do GCS, você deve criar uma conta de serviço anexada e associar o bucket à conta de serviço. Você deve conectar-se ao bucket diretamente com uma chave que você gera para a conta de serviço.

Acessar um bucket do 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 sua 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 fornecer a essa conta de serviço os privilégios mínimos necessários para execução das tarefas.

  1. Clique em IAM e Administrador 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.

    Criar conta de serviço do Google para o GCS

  5. Clique em CRIAR.

  6. Clique em CONTINUAR.

  7. Clique em CONCLUÍDO.

Etapa 2: criar uma chave para acessar o bucket do 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 em 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 chave.
  3. Aceite o tipo de chave JSON.
  4. Clique em CRIAR. O arquivo de chave é baixado para o computador.

Etapa 3: configurar o bucket do GCS

Criar um bucket

Crie um bucket, caso ainda não tenha:

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

  2. Clique em CRIAR BUCKET.

    Criar bucket do Google

  3. Clique em CRIAR.

Configurar o bucket

  1. Configure os detalhes do bucket.

  2. Clique na guia Permissões.

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

    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 bucket do Google

  5. Clique em SALVAR.

Etapa 4: colocar a chave da conta de serviço nos segredos do Databricks

O Databricks recomenda o uso de escopos de segredos para armazenar todas as credenciais. Você pode colocar a chave privada e a ID da chave privada do arquivo JSON de chave em escopos secretos do Databricks. Você pode conceder aos usuários, entidades de serviço e grupos em seu workspace acesso para ler os escopos do segredo. Isso protege a chave de conta de serviço e ao mesmo tempo permite que os usuários acessem o GCS. Para criar um escopo de segredo, consulte Gerenciar segredos.

Etapa 5: configurar um cluster do Azure Databricks

Na guia Configuração do Spark, defina uma configuração global ou uma configuração por bucket. Os exemplos a seguir definem as chaves usando valores armazenados como segredos do Databricks.

Observação

Use o controle de acesso do cluster e o controle de acesso do notebook juntos para proteger o acesso à conta de serviço e aos dados no bucket do GCS. Consulte Permissões de computação e Colaborar usando notebooks do Databricks.

Configuração global

Use essa configuração se precisar usar as credenciais fornecidas 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> e <project-id> pelos valores desses nomes de campo exatos do arquivo de chave JSON.

Configuração por bucket

Use essa configuração se 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 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> e <project-id> pelos valores desses nomes de campo exatos do arquivo de chave JSON.

Etapa 6: leitura do GCS

Para ler no bucket do GCS, use um comando de leitura do Spark em qualquer formato com suporte, 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 com suporte, por exemplo:

df.write.mode("<mode>").save("gs://<bucket-name>/<path>")

Substitua <bucket-name> pelo nome do bucket que você criou na Etapa 3: configurar o bucket do GCS.

Blocos de anotações de exemplo

Leitura do notebook do Google Cloud Storage

Obter notebook

Gravação no notebook do Google Cloud Storage

Obter notebook