Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
Esta característica se encuentra en su versión beta. Los administradores del área de trabajo pueden controlar el acceso a esta característica desde la página Vistas previas . Consulte Administración de versiones preliminares de Azure Databricks.
:::note Cumplimiento
El conector de Google Drive admite el uso en áreas de trabajo con la configuración de seguridad y cumplimiento mejorada habilitadas.
:::
El conector estándar de Google Drive en Lakeflow Connect permite usar las funciones Spark y SQL de Azure Databricks (read_files, spark.read, COPY INTOy Auto Loader) para crear tramas de datos de Spark, vistas materializadas y tablas de streaming directamente desde archivos de Google Drive.
Con este enfoque, puede crear canalizaciones personalizadas para casos de uso comunes de ingesta de archivos:
- Ingesta de archivos de streaming (no estructurado): Ingesta de muchos archivos de origen (por ejemplo, archivos PDF, Google Docs y Google Slides) en una sola tabla de destino como datos binarios, ideal para tuberías RAG.
- Ingesta de archivos de streaming (estructurado): combinar muchos archivos de origen (por ejemplo, archivos CSV y JSON) en una sola tabla de destino estructurada.
- Ingesta de archivos por lotes: ingesta de un único archivo específico (como una hoja de Google) o un lote de archivos en una tabla de destino.
Estas interfaces son compatibles:
- Agrupaciones de automatización declarativa
- API de Databricks
- SDK de Databricks
- CLI de Databricks
Limitaciones
- El conector es solo api y no admite la creación de canalizaciones en la interfaz de usuario de Azure Databricks.
- Puede usar la
pathGlobFilteropción para filtrar los archivos por nombre (por ejemplo,pathGlobFilter => '*.csv'). Los formatos integrados de Google (por ejemplo, Google Docs o Google Sheets) no se pueden filtrar con esta opción. Tampoco se admite el filtrado de rutas de carpeta. - Los formatos no admitidos incluyen Google Forms, Google Sites, Google Jams y Google Vids. El proceso de ingesta omite los formatos no admitidos.
- No se admite la configuración
recursiveFileLookup=falsepara las lecturas por lotes de Spark. UsarrecursiveFileLookup=falsese comportará igual querecursiveFileLookup=true.
Requisitos
Antes de comenzar, compruebe que tiene:
- Un área de trabajo habilitada para el Catálogo de Unity.
-
CREATE CONNECTIONpermisos. - Databricks Runtime 17.3 o superior.
- La función Beta para el formato de archivo de Excel está habilitada, si desea importar archivos de Google Sheets o Excel. Consulte Leer archivos de Excel.
- Una cuenta de Google con los permisos necesarios para crear un proyecto de Google Cloud.
Configuración de OAuth 2.0
Configuración de un proyecto de Google Cloud y habilitación de la API de Google Drive
- Vaya a la consola de Google Cloud.
- Cree un nuevo proyecto. Es posible que se le pida que configure la autenticación en dos fases.
- Vaya a API y biblioteca de servicios>.
- Busque "API de Google Drive".
- Seleccione Api de Google Drive.
- Seleccione Habilitar.
Configuración de la pantalla de consentimiento de OAuth para el proyecto
- En la pantalla principal de la consola de Google Cloud, vaya a API y servicios > Pantalla de consentimiento de OAuth. Verá un mensaje que indica "Google Auth Platform not configured yet" (Plataforma de autenticación de Google no configurada todavía).
- Seleccione Comenzar.
- Rellene la sección Información de la aplicación . Escriba cualquier nombre para el nombre de la aplicación (por ejemplo,
Databricks connection). El correo electrónico de soporte técnico puede ser cualquier correo electrónico de su organización. - Seleccione Siguiente.
- En la sección Audiencia , seleccione Externo y, a continuación, seleccione Siguiente.
- Rellene la sección Información de contacto y seleccione Siguiente.
- Revise la directiva de datos de usuario de Google API Services y, a continuación, seleccione Crear.
- Vuelva a Google Auth Platform > Data Access.
- Seleccione Agregar o quitar ámbitos.
- Agregue el siguiente ámbito en la sección Agregar ámbitos manualmente , seleccione Agregar a la tabla y, a continuación, seleccione Actualizar:
https://www.googleapis.com/auth/drive.readonly - Haga clic en Guardar.
Creación de credenciales de cliente de OAuth 2.0
- En la pantalla principal de la consola de Google Cloud, vaya a API y credenciales de servicios>.
- Seleccione Crear credenciales>Id. de cliente de OAuth.
- Elija Aplicación web y establezca un nombre personalizado.
- En URI de redirección autorizados, seleccione Agregar URI.
- Agregue un URI de redirección a
<databricks-instance-url>/login/oauth/google.html, reemplazando por<databricks-instance-url>la dirección URL de la instancia de Azure Databricks. Por ejemplo:https://instance-name.databricks.com/login/oauth/google.html - Selecciona Crear. Aparece un cuadro de diálogo con las credenciales.
- Registre los valores siguientes. Como alternativa, puede descargar el archivo JSON del cliente de OAuth, que contiene esta información:
- Id. de cliente (formato:
0123******-********************************.apps.googleusercontent.com) - Secreto de cliente (formato:
ABCD**-****************************)
- Id. de cliente (formato:
Adición de usuarios de prueba al proyecto
- Vaya a Google Auth Platform Audience (Audiencia de la plataforma > de autenticación de Google).
- En Probar usuarios, seleccione Agregar usuarios.
- Agregue la dirección de correo electrónico de la cuenta de Google que usará para crear la conexión.
Creación de una conexión
En el área de trabajo de Azure Databricks, seleccione Catalog > External locations > Connections > Create connection (Crear conexión).
En la página Aspectos básicos de conexión del Asistente para configurar conexiones , especifique un nombre de conexión único.
En el menú desplegable Tipo de conexión , busque y seleccione Google Drive.
(Opcional) Agregue un comentario.
Seleccione Siguiente.
En la página Autenticación , escriba lo siguiente:
-
Ámbito de OAuth:
https://www.googleapis.com/auth/drive.readonly - Secreto del cliente: el secreto del cliente de Crear credenciales de cliente de OAuth 2.0.
- ID de cliente: el ID de cliente de Crear credenciales de cliente de OAuth 2.0.
-
Ámbito de OAuth:
Seleccione Iniciar sesión con Google e inicie sesión con la cuenta de Google en Agregar usuarios de prueba al proyecto.
Seleccione Continuar y, a continuación, vuelva a seleccionar Continuar .
Una vez redirigido al área de trabajo de Azure Databricks, seleccione Crear conexión.
Ingesta de archivos desde Google Drive
Ingestar archivos desde Google Drive usando el conector y read_files (Databricks SQL), Auto Loader (.readStream con cloudFiles), COPY INTO, y spark.read. Debe proporcionar los siguientes valores:
- Dirección URL de Google Drive como ruta de acceso.
- La conexión del Catálogo de Unity mediante la opción de origen de datos
databricks.connection. - Dirección URL del recurso de Google Drive al que desea acceder. La dirección URL puede hacer referencia a un archivo específico, una carpeta o una unidad completa. Por ejemplo:
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/
Transmitir archivos de Google Drive usando Auto Loader
Auto Loader es la manera más eficaz de ingerir archivos estructurados de forma incremental desde Google Drive. Detecta automáticamente nuevos archivos y los procesa a medida que llegan. También puede ingerir archivos estructurados y semiestructurados, como CSV y JSON, con inferencia y evolución automáticas de esquemas. Para más información sobre el uso del cargador automático, consulte Patrones comunes de carga de datos.
# Incrementally ingest new PDF files
df = (spark.readStream.format("cloudFiles")
.option("cloudFiles.format", "binaryFile")
.option("databricks.connection", "my_gdrive_conn")
.option("cloudFiles.schemaLocation", <path to a schema location>)
.option("pathGlobFilter", "*.pdf")
.load("https://drive.google.com/drive/folders/1a2b3c4d...")
.select("*", "_metadata")
)
# Incrementally ingest CSV files with automatic schema inference and evolution
df = (spark.readStream.format("cloudFiles")
.option("cloudFiles.format", "csv")
.option("databricks.connection", "my_gdrive_conn")
.option("pathGlobFilter", "*.csv")
.option("inferColumnTypes", True)
.option("header", True)
.load("https://drive.google.com/drive/folders/1a2b3c4d...")
)
Leer archivos de Google Drive mediante la lectura por lotes de Spark
En el ejemplo siguiente se muestra cómo ingerir archivos de Google Drive en Python mediante la spark.read función . Para obtener una lista de los formatos de archivo admitidos y las opciones del lector de Spark, consulte Opciones de origen de archivos genéricos en la documentación de Apache Spark.
No se admite la configuración recursiveFileLookup=false para las lecturas por lotes de Spark. Usar recursiveFileLookup=false se comportará igual que recursiveFileLookup=true.
# Read unstructured data as binary files
df = (spark.read
.format("binaryFile")
.option("databricks.connection", "my_gdrive_conn")
.option("recursiveFileLookup", True)
.option("pathGlobFilter", "*.pdf")
.load("https://drive.google.com/drive/folders/1a2b3c4d..."))
# Read a batch of CSV files, infer the schema, and load the data into a DataFrame
df = (spark.read
.format("csv")
.option("databricks.connection", "my_gdrive_conn")
.option("pathGlobFilter", "*.csv")
.option("recursiveFileLookup", True)
.option("inferSchema", True)
.option("header", True)
.load("https://drive.google.com/drive/folders/1a2b3c4d..."))
Leer un único archivo estructurado de Google Drive
En el ejemplo siguiente se lee una sola pestaña de una hoja de Google y se carga en un dataframe. Muestra algunas opciones de análisis comunes.
Para obtener una lista completa de las opciones de análisis admitidas para archivos de Excel y Hojas de Google, vea Leer archivos de Excel. Para obtener una lista completa de todos los demás formatos de archivo compatibles y las opciones de lector de Spark, consulte Opciones de origen de archivos genéricos en la documentación de Apache Spark.
df = (spark.read
.format("excel") # use 'excel' for Google Sheets
.option("databricks.connection", "my_gdrive_conn")
.option("headerRows", 1) # optional
.option("inferColumns", True) # optional
.option("dataAddress", "Sheet1!A1:Z10") # optional
.load("https://docs.google.com/spreadsheets/d/9k8j7i6f..."))
Leer archivos de Google Drive mediante Spark SQL
En el ejemplo siguiente se muestra cómo ingerir archivos de Google Drive en SQL mediante la read_files función con valores de tabla. Para obtener más información sobre el read_files uso, consulte read_files función con valores de tabla.
-- Read pdf files
CREATE TABLE my_table AS
SELECT * FROM read_files(
"https://drive.google.com/drive/folders/1a2b3c4d...",
`databricks.connection` => "my_gdrive_conn",
format => "binaryFile",
pathGlobFilter => "*.pdf", -- optional. Example: only ingest PDFs
schemaEvolutionMode => "none"
);
-- Read a Google Sheet and range
CREATE TABLE my_sheet_table AS
SELECT * FROM read_files(
"https://docs.google.com/spreadsheets/d/9k8j7i6f...",
`databricks.connection` => "my_gdrive_conn",
format => "excel",
headerRows => 1, -- optional
dataAddress => "Sheet1!A2:D10", -- optional
schemaEvolutionMode => "none"
);
Ingesta de archivos de Google Drive mediante canalizaciones declarativas de Spark de Lakeflow
Nota:
El conector de Google Drive requiere Databricks Runtime 17.3 o posterior. Para usar el conector, establezca "CHANNEL" = "PREVIEW" en la configuración de la canalización. Para más información sobre las previsualizaciones, consulte Referencia de propiedades de canalización.
En este ejemplo se muestra cómo leer archivos de Google Drive mediante Auto Loader en canalizaciones declarativas de Spark de Lakeflow. Para obtener más información, consulte Canalizaciones declarativas de Spark de Lakeflow.
Databricks SQL
-- Incrementally ingest new PDF files
CREATE OR REFRESH STREAMING TABLE gdrive_pdf_table
AS SELECT * FROM STREAM read_files(
"https://drive.google.com/drive/folders/1a2b3c4d...",
format => "binaryFile",
`databricks.connection` => "my_gdrive_conn",
pathGlobFilter => "*.pdf");
-- Incrementally ingest CSV files with automatic schema inference and evolution
CREATE OR REFRESH STREAMING TABLE gdrive_csv_table
AS SELECT * FROM STREAM read_files(
"https://drive.google.com/drive/folders/1a2b3c4d...",
format => "csv",
`databricks.connection` => "my_gdrive_conn",
pathGlobFilter => "*.csv",
"header", "true");
-- Read a specific Excel file from Google Drive in a materialized view
CREATE OR REFRESH MATERIALIZED VIEW gdrive_excel_table
AS SELECT * FROM read_files(
"https://docs.google.com/spreadsheets/d/9k8j7i6f...",
`databricks.connection` => "my_gdrive_conn",
format => "excel",
headerRows => 1, -- optional
dataAddress => "Sheet1!A2:D10", -- optional
`cloudFiles.schemaEvolutionMode` => "none"
);
Pitón
from pyspark import pipelines as dp
# Incrementally ingest new PDF files
@dp.table
def gdrive_pdf_table():
return (spark.readStream.format("cloudFiles")
.option("cloudFiles.format", "binaryFile")
.option("databricks.connection", "my_gdrive_conn")
.option("pathGlobFilter", "*.pdf")
.load("https://drive.google.com/drive/folders/1a2b3c4d...")
)
# Incrementally ingest CSV files with automatic schema inference and evolution
@dp.table
def gdrive_csv_table():
return (spark.readStream.format("cloudFiles")
.option("cloudFiles.format", "csv")
.option("databricks.connection", "my_gdrive_conn")
.option("pathGlobFilter", "*.csv")
.option("inferColumnTypes", True)
.option("header", True)
.load("https://drive.google.com/drive/folders/1a2b3c4d...")
)
# Read a specific Excel file from Google Drive in a materialized view
@dp.table
def gdrive_excel_table():
return (spark.read.format("excel")
.option("databricks.connection", "my_gdrive_conn")
.option("headerRows", 1) # optional
.option("inferColumnTypes", True) # optional
.option("dataAddress", "Sheet1!A1:M20") # optional
.load("https://docs.google.com/spreadsheets/d/9k8j7i6f..."))
Análisis de archivos no estructurados con ai_parse_document
Al ingerir archivos no estructurados desde Google Drive (como archivos PDF, documentos de Word o archivos de PowerPoint) mediante el conector estándar de Google Drive con binaryFile formato, el contenido del archivo se almacena como datos binarios sin procesar. Para preparar estos archivos para cargas de trabajo de INTELIGENCIA ARTIFICIAL (como RAG, búsqueda, clasificación o comprensión de documentos), puede analizar el contenido binario en una salida estructurada y consultable mediante ai_parse_document.
En el ejemplo siguiente se muestra cómo analizar documentos no estructurados almacenados en una tabla delta de bronce denominada documents, agregando una nueva columna con contenido analizado:
CREATE TABLE documents AS
SELECT *, _metadata FROM read_files(
"https://drive.google.com/drive/folders/1a2b3c4d...",
`databricks.connection` => "my_gdrive_conn",
format => "binaryFile",
pathGlobFilter => "*.{pdf,jpeg}"
);
SELECT *, ai_parse_document(content) AS parsed_content
FROM documents;
La parsed_content columna contiene texto extraído, tablas, información de diseño y metadatos que se pueden usar directamente para canalizaciones de IA de bajada.
Análisis incremental con canalizaciones declarativas de "Lakeflow Spark"
También puede usar ai_parse_document en Canalizaciones declarativas de Lakeflow Spark para habilitar el análisis incremental. A medida que los nuevos archivos se transmiten desde Google Drive, se analizan automáticamente a medida que se actualiza la canalización.
Por ejemplo, puede definir una vista materializada que analice continuamente los documentos recién ingeridos:
CREATE OR REFRESH STREAMING TABLE documents
AS SELECT *, "_metadata" FROM STREAM read_files(
"https://drive.google.com/drive/folders/1a2b3c4d...",
format => "binaryFile",
`databricks.connection` => "my_gdrive_conn",
pathGlobFilter => "*.{pdf,jpeg}");
CREATE OR REFRESH MATERIALIZED VIEW documents_parsed
AS
SELECT *, ai_parse_document(content) AS parsed_content
FROM documents;
Este enfoque garantiza que:
- Los archivos de Google Drive recién ingeridos se analizan automáticamente cada vez que se actualiza la vista materializada.
- Las salidas analizadas permanecen sincronizadas con los datos entrantes
- Las canalizaciones de IA descendentes siempre funcionan con representaciones actualizadas de documentos.
Para conocer los formatos admitidos y las opciones avanzadas, consulte ai_parse_document función.
Cómo se controlan los formatos integrados de Google
No es necesario exportar manualmente los archivos integrados de Google (Docs, Sheets). El conector los exporta automáticamente a un formato abierto durante la ingesta.
| Formato de Google | Exportado como (predeterminado) |
|---|---|
| Google Docs |
application/vnd.openxmlformats-officedocument.wordprocessingml.document (DOCX) |
| Hojas de cálculo de Google |
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (XLSX) |
| Diapositivas de Google |
application/vnd.openxmlformats-officedocument.presentationml.presentation (PPTX) |
| Dibujos de Google |
application/pdf (PDF) |
Configuración del formato de exportación de Google Drive
Puede configurar cómo se exportan los archivos nativos de Google Drive estableciendo configuraciones de Spark mediante spark.conf.set(). Estas configuraciones determinan el MIME tipo utilizado al exportar Google Docs, Sheets, Slides y Drawings.
Claves de configuración:
-
fs.gdrive.format.document.export: formato de exportación de Google Docs. -
fs.gdrive.format.spreadsheet.export: formato de exportación de Hojas de Google. -
fs.gdrive.format.presentation.export: formato de exportación de Google Slides. -
fs.gdrive.format.drawing.export: Formato de exportación de dibujos de Google.
Para obtener una lista completa de los formatos de exportación admitidos, consulta Exportar tipos MIME para documentos de Google Workspace en la documentación de Google Workspace.
En el ejemplo siguiente se exporta un archivo de 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...")
En el ejemplo siguiente se exporta un archivo 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...")
Schemas
formato binaryFile
Cuando se usa format => 'binaryFile', la tabla resultante tiene el esquema siguiente:
-
path(cadena): la dirección URL completa del archivo. -
modificationTime(marca de tiempo): hora de la última modificación del archivo. -
length(long): tamaño del archivo en bytes. -
content(binario): el contenido binario crudo del archivo.
columna _metadata
Puede obtener información de metadatos para los archivos de entrada con la _metadata columna como file_name, file_path, file_sizey file_modification_time. La _metadata columna es una columna oculta y está disponible para todos los formatos de archivo de entrada. Para incluir la _metadata columna en el dataframe devuelto, debe seleccionarla explícitamente en la consulta de lectura donde especifique el origen. Para obtener más información, consulte Columna de metadatos de archivo.
Para archivos nativos de Google Drive (como Google Docs, Google Sheets y Google Slides), el file_size campo hace referencia al tamaño del archivo almacenado en Google Drive, no al tamaño del archivo en el formato exportado (por ejemplo, DOCX, XLSX o PPTX).
Ejemplo de selección de _metadata.
SELECT *, _metadata FROM read_files(
"https://drive.google.com/",
`databricks.connection` => "my_connection",
format => "binaryFile"
);
Preguntas más frecuentes
Tengo una carpeta de varios archivos estructurados (por ejemplo, varias hojas de Google). ¿Cómo se carga cada hoja o archivo como su propia tabla Delta?
Debe crear una nueva consulta de ingesta para cada archivo que se va a ingerir en su propia tabla Delta.
Mis archivos requieren análisis personalizado. ¿Cómo se proporcionan estos parámetros de análisis para asegurarse de que mis archivos se leen correctamente?
El conector admite todas las opciones de formato de archivo disponibles en Auto Loader, COPY INTOy Spark. Para obtener más información, consulte lo siguiente:
¿Se ingieren archivos en subcarpetas de forma recursiva?
Cuando se usan las API del cargador automático (spark.readStream y read_files), todas las subcarpetas se detectan e ingieren de forma recursiva. Esto también es cierto para el batch spark.read, en el que los archivos de la ruta de acceso de carpeta proporcionada siempre se leen de forma recursiva.
Mi hoja de Google tiene muchas irregularidades y requiere análisis específico y extracción de rango de celdas (por ejemplo, varias tablas por hoja). El esquema no se puede deducir automáticamente. ¿Cómo puedo manejar esto?
Puede usar opciones de análisis de formato de archivo de Excel para analizar el archivo de hoja de Google en su formato deseado. Consulte Leer archivos de Excel.
Como alternativa, puede deshabilitar la inferencia de esquema en el cargador automático, PySpark o read_files. La tabla resultante tiene nombres de columna predeterminados, todos los tipos de datos se convierten en una cadena y es posible que la tabla sea dispersa. Después, puede realizar las transformaciones necesarias en etapas posteriores.