Pular para o conteúdo principal

Importar arquivos do Google Drive para o Databricks

info

Beta

Este recurso está em versão Beta. Os administradores do espaço de trabalho podem controlar o acesso a este recurso na página de Pré-visualizações . Veja as prévias do Gerenciador Databricks.

Aprenda como importar dados do Google Drive para o Databricks. O conector padrão do Google Drive no LakeFlow Connect permite que você use as funções Databricks Spark e SQL (read_files, spark.read, COPY INTO e Auto Loader) para criar dataframes Spark , visualizações materializadas e tabelas de transmissão diretamente de arquivos no Google Drive.

Essa abordagem permite criar pipelines personalizados para casos de uso comuns de ingestão de arquivos:

  • Ingestão de arquivos de transmissão (não estruturados): Ingestão de vários arquivos de origem (por exemplo, PDFs, Google Docs e Google Slides) em uma única tabela de destino como dados binários, ideal para pipelines RAG.
  • Ingestão de arquivos de transmissão (estruturada): Mesclagem de vários arquivos de origem (por exemplo, arquivos CSV e JSON ) em uma única tabela de destino estruturada.
  • Ingestão de vários arquivos: Ingestão de um único arquivo específico (como uma planilha do Google) ou de vários arquivos em uma tabela de destino.

As seguintes interfaces são suportadas:

  • Databricks Asset Bundles
  • APIs do Databricks
  • SDKs do Databricks
  • CLI do Databricks

Limitações

  • O conector é somente API e não suporta a criação pipeline na interface do usuário Databricks .
  • Você pode usar a opção pathGlobFilter para filtrar arquivos por nome (por exemplo, pathGlobFilter => '*.csv'). Os formatos integrados do Google (por exemplo, Google Docs ou Google Sheets) não podem ser filtrados usando esta opção. O filtro de caminho de pasta também não é suportado.
  • Os formatos não suportados incluem Google Forms, Google Sites, Google Jams e Google Vids. Formatos não suportados são ignorados durante a ingestão.
  • A configuração recursiveFileLookup=false não é suportada para leituras em lote Spark . Usar recursiveFileLookup=false terá o mesmo comportamento que recursiveFileLookup=true.

Requisitos

Antes de começar, certifique-se de ter:

  • Um workspace compatível com o Catálogo Unity.
  • CREATE CONNECTION permissões.
  • Databricks Runtime 17.3 ou acima.
  • O recurso Beta do formato de arquivo Excel está ativado, caso você queira importar arquivos do Google Sheets ou do Excel. Consulte Ler arquivos do Excel.
  • Uma account do Google com as permissões necessárias para criar um projeto no Google Cloud.

Configurar OAuth 2.0

Configure um projeto no Google Cloud e ative a APIdo Google Drive.

  1. Acesse o console do Google Cloud.
  2. Criar um novo projeto. Você poderá ser solicitado a adicionar a autenticação de dois fatores.
  3. Acesse APIs & serviços />biblioteca .
  4. Pesquise por "API do Google Drive".
  5. Selecione a API do Google Drive .
  6. Clique em Ativar .

Configure a tela de consentimento OAuth para o seu projeto.

  1. Na tela inicial do console do Google Cloud, acesse APIs e serviços /> Tela de consentimento OAuth . Você verá uma mensagem dizendo "A plataforma de autenticação do Google ainda não está configurada".

  2. Clique em Obter para começar .

  3. Preencha a seção de informações do aplicativo . Insira qualquer nome para o nome do aplicativo (por exemplo, Databricks connection). O email de suporte pode ser qualquer email da sua organização.

  4. Clique em Avançar .

  5. Na seção Público-alvo , selecione Externo e clique em Avançar .

  6. Preencha a seção Informações de contato e clique em Avançar .

  7. Analise a Política de Dados do Usuário do serviço API do Google e clique em Criar .

  8. Navegue de volta para a Plataforma de Autenticação do Google />Acesso a dados .

  9. Clique em Adicionar ou remover escopos .

  10. Adicione o seguinte escopo na seção Adicionar escopos manualmente , clique em Adicionar à tabela e, em seguida, clique em Atualizar :

    https://www.googleapis.com/auth/drive.readonly

  11. Clique em Salvar .

Criar credenciais de cliente OAuth 2.0

  1. Na tela inicial do console do Google Cloud, acesse APIs e serviços /> Credenciais .
  2. Clique em Criar credenciais > ID do cliente OAuth .
  3. Selecione "Aplicação Web" e defina um nome personalizado.
  4. Em URIs de redirecionamento autorizados , clique em Adicionar URI .
  5. Adicione um URI de redirecionamento para <databricks-instance-url>/login/oauth/google.html, substituindo <databricks-instance-url> pela URL da sua instância do Databricks. Por exemplo: https://instance-name.databricks.com/login/oauth/google.html
  6. Clique em Criar . Uma janela pop-up contendo suas credenciais será exibida.
  7. Registre os seguintes valores. Alternativamente, você pode download o arquivo JSON do cliente OAuth , que contém essas informações:
    • ID do cliente (formato: 0123******-********************************.apps.googleusercontent.com)
    • Segredo do cliente (formato: ABCD**-****************************)

Adicione usuários de teste ao seu projeto.

  1. Acesse a Plataforma de Autenticação do Google />Público-alvo .
  2. Em Usuários de teste , clique em Adicionar usuários .
  3. Adicione o endereço email da account do Google que você usará para criar a conexão.

Criar uma conexão

  1. No workspace Databricks , clique em Catálogo > Locais externos > Conexões > Criar conexão .

  2. Na página "Informações básicas de conexão" do assistente de configuração de conexão , especifique um nome de conexão exclusivo.

  3. No menu suspenso Tipo de conexão , pesquise e selecione Google Drive .

  4. (Opcional) Adicione um comentário.

  5. Clique em Avançar .

  6. Na página de autenticação , insira o seguinte:

  7. Clique em "Fazer login com o Google" e faça login com a account do Google em "Adicionar usuários de teste ao seu projeto".

  8. Clique em Continuar e, em seguida, clique em Continuar novamente.

  9. Após ser redirecionado de volta para o workspace Databricks , clique em Criar conexão .

Importar arquivos do Google Drive

Este conector permite que você ingerisse arquivos do Google Drive usando read_files (Databricks SQL), Auto Loader (.readStream com cloudFiles), COPY INTO e spark.read. Você deve fornecer os seguintes valores:

  • O URL do Google Drive como caminho.
  • A conexão Unity Catalog usando a opção databricks.connection fonte de dados.
  • O URL do recurso do Google Drive que você deseja acessar. A URL pode se referir a um arquivo específico, uma pasta ou uma unidade inteira. Por exemplo:
    • https://docs.google.com/spreadsheets/d/12345/edit?random_query_params_here
    • https://drive.google.com/drive/u/0/folders/12345
    • https://docs.google.com/document/d/12345/edit
    • https://drive.google.com/file/d/1kiXnHmU4Y8X66ijULky5EPDNCGtT14Ps/view?usp=drive_link
    • https://drive.google.com/drive/
    • https://drive.google.com/drive/my-drive
    • https://drive.google.com/

Auto Loader

Notebook

Open notebook in new tab

Spark lê muitos

Notebook

Open notebook in new tab

Leitura Spark de arquivo único

Notebook

Open notebook in new tab

Spark SQL

Notebook

Open notebook in new tab

Pipeline declarativoLakeFlow Spark

Notebook

Open notebook in new tab

ai_parse_document

Notebook

Open notebook in new tab

Notebook

Open notebook in new tab

Como os formatos integrados do Google são tratados

Você não precisa exportar seus arquivos integrados do Google (Documentos, Planilhas) manualmente. O conector os exporta automaticamente para um formato aberto durante a ingestão.

Formato do Google

Exportado como (default)

Google Docs

application/vnd.openxmlformats-officedocument.wordprocessingml.document (DOCX)

Planilhas do Google

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (XLSX)

Apresentações Google

application/vnd.openxmlformats-officedocument.presentationml.presentation (PPTX)

Desenhos do Google

application/pdf (PDF)

Configuração do formato de exportação do Google Drive

Você pode controlar como os arquivos nativos do Google Drive são exportados definindo as configurações do Spark usando spark.conf.set(). Essas configurações determinam o tipo MIME usado ao exportar documentos, planilhas, apresentações e desenhos do Google.

Chave de configuração

  • fs.gdrive.format.document.exportFormato de exportação do Google Docs.
  • fs.gdrive.format.spreadsheet.exportFormato de exportação do Google Sheets.
  • fs.gdrive.format.presentation.exportFormato de exportação do Google Slides.
  • fs.gdrive.format.drawing.exportFormato de exportação do Google Drawings.

Para obter uma lista completa dos formatos de exportação compatíveis, consulte Exportar tipos MIME para documentos do Google Workspace na documentação do Google Workspace.

Exemplo: Exportando arquivo do Google Docs como TXT:

Python
spark.conf.set("fs.gdrive.format.document.export", "text/plain")
df = spark.read.text("https://docs.google.com/document/d/1a2b3c4d...")

Exemplo: Exportando um arquivo do Google Sheets como CSV:

Python
spark.conf.set("fs.gdrive.format.spreadsheet.export", "text/csv")
df = spark.read.option("header", "true").csv("https://docs.google.com/spreadsheets/d/1a2b3c4d...")

Esquemas

Formato de arquivo binário

Ao usar format => 'binaryFile', a tabela resultante terá o seguinte esquema:

  • path (strings): O URL completo do arquivo.
  • modificationTime (timestamp): A data e hora da última modificação do arquivo.
  • length (longo): O tamanho do arquivo em bytes.
  • content (binário): O conteúdo binário bruto do arquivo.

coluna _metadata

Você pode obter informações de metadados para arquivos de entrada com a coluna _metadata como file_name, file_path, file_size e file_modification_time. A coluna _metadata é uma coluna oculta e está disponível para todos os formatos de arquivo de entrada. Para incluir a coluna _metadata no DataFrame retornado, você deve selecioná-la explicitamente na consulta de leitura onde você especifica a origem. Para mais informações, consulte Coluna de metadados do arquivo.

Para arquivos nativos do Google Drive (como Google Docs, Google Sheets e Google Slides), o campo file_size refere-se ao tamanho do arquivo armazenado no Google Drive, não ao tamanho do arquivo no formato exportado (por exemplo, DOCX, XLSX ou PPTX).

Exemplo de seleção de _metadata:

SQL
SELECT *, _metadata FROM read_files(
"https://drive.google.com/",
`databricks.connection` => "my_connection",
format => "binaryFile"
);

Perguntas frequentes

Tenho uma pasta com vários arquivos estruturados (por exemplo, várias planilhas do Google). Como faço para carregar cada planilha ou arquivo como sua própria tabela Delta?

Você deve criar uma nova consulta de ingestão para cada arquivo a ser carregado em sua própria tabela Delta.

Meus arquivos exigem análise sintática personalizada. Como posso fornecer esses parâmetros de análise para garantir que meus arquivos sejam lidos corretamente?

O conector suporta todas as opções de formato de arquivo disponíveis no Auto Loader, COPY INTO e Spark. Para mais detalhes, consulte o seguinte:

Os arquivos em subpastas são ingeridos recursivamente?

Quando você usa as APIs do Auto Loader (spark.readStream e read_files), todas as subpastas são descobertas e ingeridas recursivamente. Isso também é verdade para lotes spark.read, onde os arquivos no caminho da pasta fornecido são sempre lidos recursivamente.

Minha planilha do Google apresenta muitas irregularidades e requer análise sintática específica e extração de intervalos de células (por exemplo, várias tabelas por planilha). O esquema não pode ser inferido automaticamente. Como devo lidar com isso?

Você pode usar as opções de análise de formato de arquivo do Excel para converter seu arquivo da Planilha Google para o formato desejado. Consulte Ler arquivos do Excel.

Alternativamente, você pode desativar a inferência de esquema no Auto Loader, PySpark ou read_files. A tabela resultante possui nomes de coluna default , todos os tipos de dados são convertidos para strings e a tabela pode ser esparsa. Em seguida, você pode realizar quaisquer transformações necessárias posteriormente.