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.

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

  2. Clique em accountde serviço.

  3. Clique em + CRIAR accountde serviço.

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

    Google Criar account de serviço para GCS
  5. Clique em Criar.

  6. Clique em "Continuar".

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

  1. No console do Google clouds , na lista account de serviço, clique na account recém-criada.

  2. Na seção key , clique em ADICIONAR key > Criar nova key.

    keyde criação do Google
  3. Aceite o key tipo JSON .

  4. Clique em CRIAR. O arquivo key é downloads para o seu computador.

passo 3: configurar o bucket GCS

Crie um balde

Se você ainda não possui um bucket, crie um:

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

  2. Clique em Criar bucket.

    Balde de criação do Google
  3. Clique em Criar.

Configurar o intervalo

  1. Configure os detalhes do intervalo.

  2. Clique na guia Permissões .

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

    Detalhes do intervalo do Google
  4. Forneça a permissão de administrador de armazenamento à account de serviço no bucket das funções de armazenamento clouds .

    Permissões do Google Bucket
  5. Clique em Salvar.

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.

Notebook de Exemplo

Leia do Google Cloud Storage Notebook

Abra o bloco de anotações em outra guia

Gravar no Notebook do Google Cloud Storage

Abra o bloco de anotações em outra guia