Importar arquivos do Google Drive para o Databricks
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
pathGlobFilterpara 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=falsenão é suportada para leituras em lote Spark . UsarrecursiveFileLookup=falseterá o mesmo comportamento querecursiveFileLookup=true.
Requisitos
Antes de começar, certifique-se de ter:
- Um workspace compatível com o Catálogo Unity.
CREATE CONNECTIONpermissõ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.
- Acesse o console do Google Cloud.
- Criar um novo projeto. Você poderá ser solicitado a adicionar a autenticação de dois fatores.
- Acesse APIs & serviços />biblioteca .
- Pesquise por "API do Google Drive".
- Selecione a API do Google Drive .
- Clique em Ativar .
Configure a tela de consentimento OAuth para o seu projeto.
-
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".
-
Clique em Obter para começar .
-
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. -
Clique em Avançar .
-
Na seção Público-alvo , selecione Externo e clique em Avançar .
-
Preencha a seção Informações de contato e clique em Avançar .
-
Analise a Política de Dados do Usuário do serviço API do Google e clique em Criar .
-
Navegue de volta para a Plataforma de Autenticação do Google />Acesso a dados .
-
Clique em Adicionar ou remover escopos .
-
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 -
Clique em Salvar .
Criar credenciais de cliente OAuth 2.0
- Na tela inicial do console do Google Cloud, acesse APIs e serviços /> Credenciais .
- Clique em Criar credenciais > ID do cliente OAuth .
- Selecione "Aplicação Web" e defina um nome personalizado.
- Em URIs de redirecionamento autorizados , clique em Adicionar URI .
- 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 - Clique em Criar . Uma janela pop-up contendo suas credenciais será exibida.
- 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**-****************************)
- ID do cliente (formato:
Adicione usuários de teste ao seu projeto.
- Acesse a Plataforma de Autenticação do Google />Público-alvo .
- Em Usuários de teste , clique em Adicionar usuários .
- Adicione o endereço email da account do Google que você usará para criar a conexão.
Criar uma conexão
-
No workspace Databricks , clique em Catálogo > Locais externos > Conexões > Criar conexão .
-
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.
-
No menu suspenso Tipo de conexão , pesquise e selecione Google Drive .
-
(Opcional) Adicione um comentário.
-
Clique em Avançar .
-
Na página de autenticação , insira o seguinte:
- Escopo OAuth :
https://www.googleapis.com/auth/drive.readonly - Segredo do cliente : O segredo do cliente obtido em Criar credenciais de cliente OAuth 2.0.
- ID do cliente : O ID do cliente obtido em Criar credenciais de cliente OAuth 2.0.
- Escopo OAuth :
-
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".
-
Clique em Continuar e, em seguida, clique em Continuar novamente.
-
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.connectionfonte 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_herehttps://drive.google.com/drive/u/0/folders/12345https://docs.google.com/document/d/12345/edithttps://drive.google.com/file/d/1kiXnHmU4Y8X66ijULky5EPDNCGtT14Ps/view?usp=drive_linkhttps://drive.google.com/drive/https://drive.google.com/drive/my-drivehttps://drive.google.com/
Auto Loader
Notebook
Spark lê muitos
Notebook
Leitura Spark de arquivo único
Notebook
Spark SQL
Notebook
Pipeline declarativoLakeFlow Spark
- Databricks SQL
- Python
Notebook
Notebook
ai_parse_document
Notebook
Notebook
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 |
|
Planilhas do Google |
|
Apresentações Google |
|
Desenhos do Google |
|
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:
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:
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:
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.