Conecte-se ao Google Cloud Storage

Observação

Este artigo descreve os padrões herdados para configurar o acesso ao GCS. A Databricks recomenda o uso do Unity Catalog para configurar o acesso ao GCS e aos volumes para interação direta com os arquivos. Consulte Conectar-se ao armazenamento de objetos cloud usando o Unity Catalog.

Este artigo descreve como configurar uma conexão do Databricks para ler e gravar tabelas e dados armazenados no Google Cloud Storage (GCS).

Acesse buckets do GCS usando de clouds serviço de do Google account em clusters

Você pode acessar os buckets do GCS usando de clouds serviço do Google account em clusters. Você precisa conceder à account de serviço permissões de leitura e gravação no bucket do GCS. A Databricks recomenda atribuir a esta account de serviço os privilégios mínimos necessários para executar a sua tarefa. Você pode então associar essa account de serviço a clusters do Databricks.

Você pode se conectar ao bucket diretamente usando o endereço de serviço account email (abordagem recomendada) ou uma key gerada para a de serviço account.

Importante

A account de serviço deve estar no projeto clouds do Google usado para configurar o workspace do Databricks.

O usuário do GCP que cria a função da account de serviço precisa:

  • Ser um usuário account do GCP com permissões para criar account de serviço e conceder funções de permissão para leitura e gravação em um bucket do GCS.

O usuário do Databricks que adiciona a account de serviço a clusters deve ter a permissão Pode gerenciar em clusters.

passo 1: configurar a conta de serviço do Google Cloud usando o Console do Google Cloud

  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.

  8. Navegue até a clouds lista de de serviço do Google account Console e selecione uma de account serviço.

    Copie o endereço email associado. Você precisará dele ao configurar clusters do Databricks.

o passo 2: Configure seu bucket do 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. Dê um nome ao seu balde. Escolha um nome globalmente exclusivo e permanente que esteja em conformidade com os requisitos de nomenclatura do Google para intervalos do GCS.

    Importante

    Para trabalhar com montagens DBFS, o nome do seu bucket não deve conter sublinhado.

  4. Clique em Criar.

Configurar o intervalo

Configure 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 desejada para a account de serviço no bucket das funções de armazenamento clouds :

    • Administrador de armazenamento: concede privilégios totais neste bucket.

      • Visualizador de objetos de armazenamento: concede permissões de leitura e lista em objetos neste bucket.

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

o passo 3: Configurar clustersdo Databricks

Ao configurar seus clusters, expanda Opções avançadas e defina o campo de serviço do Google como o endereço da sua de account account email serviço.

Use o controle de acesso a clusters e o controle de acesso a Notebook juntos para proteger o acesso ao serviço account e aos dados no bucket do GCS. Consulte Permissões de computação e colaboração usando o Databricks Notebook.

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, você pode definir o endereço de serviço account email ou configurar uma key definida na configuração do Spark.

Observação

A Databricks recomenda usar o endereço de serviço account email porque não há key envolvida, portanto não há risco de vazamento da key. Um motivo para usar uma key é se a account de serviço precisar estar em um projeto do Google clouds diferente do projeto usado ao criar o workspace. Para usar um endereço email de conta de serviço, consulte Acessar buckets do GCS usando contas de serviço clouds do Google em clusters.

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

Databricks recomenda o uso do Secret Scope para armazenar todas as credenciais. O senhor pode colocar o key privado e o key ID privado do seu arquivo key JSON em Databricks Secret Scope. O senhor pode conceder a usuários, entidades de serviço e grupos em seu workspace acesso para ler o Secret Scope. Isso protege o serviço account key e, ao mesmo tempo, permite que os usuários acessem GCS. Para criar um escopo secreto, consulte gerenciar 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