Introducción a las fuentes de datos externas

En esta página se ofrece una descripción general de la consulta de datos almacenados fuera de BigQuery.

Las fuentes de datos externas se pueden consultar directamente desde BigQuery, aunque los datos no estén almacenados ahí. Por ejemplo, puedes tener datos en una base de datos Google Cloud diferente, en archivos de Cloud Storage o en cualquier otro producto de la nube que quieras analizar en BigQuery, pero que no vayas a migrar.

Las fuentes de datos externas pueden tener varios usos, como los siguientes:

  • En cargas de trabajo de extracción-carga-transformación (ELT), para cargar y limpiar tus datos de una sola vez y escribir el resultado limpio en el almacenamiento de BigQuery mediante una consulta CREATE TABLE ... AS SELECT.
  • Para unir tablas de BigQuery y datos que cambian con frecuencia desde una fuente de datos externa. Si envías consultas directamente a la fuente de datos externa, no es necesario volver a cargar los datos en el almacenamiento de BigQuery cada vez que cambie.

BigQuery tiene dos mecanismos diferentes para consultar datos externos: tablas externas y consultas federadas.

Tablas externas

Las tablas externas son similares a las tablas estándar de BigQuery, ya que almacenan sus metadatos y su esquema en el almacenamiento de BigQuery. Sin embargo, sus datos se encuentran en una fuente externa.

Las tablas externas se encuentran en un conjunto de datos y se gestionan de la misma forma que las tablas estándar de BigQuery. Por ejemplo, puedes ver las propiedades de la tabla, configurar controles de acceso, etc. Puedes consultar estas tablas y, en la mayoría de los casos, combinarlas con otras.

Hay cuatro tipos de tablas externas:

  • Tablas de BigLake
  • Tablas de BigQuery Omni
  • Tablas de objetos
  • Tablas externas que no son de BigLake

Tablas de BigLake

Las tablas de BigLake te permiten consultar datos estructurados en almacenes de datos externos con delegación de acceso. La delegación de acceso desacopla el acceso a la tabla de BigLake del acceso al almacén de datos subyacente. Se usa una conexión externa asociada a una cuenta de servicio para conectarse al almacén de datos. Como la cuenta de servicio se encarga de obtener los datos del almacén de datos, solo tiene que conceder acceso a los usuarios a la tabla de BigLake. De esta forma, puedes aplicar una seguridad pormenorizada a nivel de tabla, incluida la seguridad a nivel de fila y de columna. En el caso de las tablas de BigLake basadas en Cloud Storage, también puedes usar el enmascaramiento dinámico de datos. Para obtener más información sobre las soluciones de analíticas multinube que usan tablas de BigLake con datos de Amazon S3 o Blob Storage, consulta BigQuery Omni.

Para obtener más información, consulta la introducción a las tablas BigLake.

Tablas de objetos

Las tablas de objetos te permiten analizar datos sin estructurar en Cloud Storage. Puedes realizar análisis con funciones remotas o inferencias con BigQuery ML y, a continuación, combinar los resultados de estas operaciones con el resto de tus datos estructurados en BigQuery.

Al igual que las tablas de BigLake, las tablas de objetos usan la delegación de acceso, que desacopla el acceso a la tabla de objetos del acceso a los objetos de Cloud Storage. Una conexión externa asociada a una cuenta de servicio se usa para conectarse a Cloud Storage, por lo que solo tienes que conceder a los usuarios acceso a la tabla de objetos. De esta forma, puedes aplicar la seguridad a nivel de fila y gestionar a qué objetos tienen acceso los usuarios.

Para obtener más información, consulta el artículo Introducción a las tablas de objetos.

Tablas externas que no son de BigLake

Las tablas externas que no son de BigLake te permiten consultar datos estructurados en almacenes de datos externos. Para consultar una tabla externa que no sea de BigLake, debes tener permisos para la tabla externa y para la fuente de datos externa. Por ejemplo, para consultar una tabla externa que no sea de BigLake y que use una fuente de datos de Cloud Storage, debes tener los siguientes permisos:

  • bigquery.tables.getData
  • bigquery.jobs.create
  • storage.buckets.get
  • storage.objects.get

Para obtener más información, consulta el artículo Introducción a las tablas externas.

Consultas federadas

Las consultas federadas te permiten enviar una declaración de consulta a bases de datos de AlloyDB, Spanner o Cloud SQL y obtener el resultado en forma de tabla temporal. Las consultas federadas usan la API de conexión de BigQuery para establecer una conexión con AlloyDB, Spanner o Cloud SQL. En tu consulta, usas la función EXTERNAL_QUERY para enviar una instrucción de consulta a la base de datos externa mediante el dialecto SQL de esa base de datos. Los resultados se convierten en tipos de datos de GoogleSQL.

Para obtener más información, consulta el artículo Introducción a las consultas federadas.

Comparación de funciones de fuentes de datos externas

En la siguiente tabla se compara el comportamiento de las fuentes de datos externas:

Tablas de BigLake Tablas de objetos Tablas externas que no son de BigLake Consultas federadas
Usa la delegación de acceso Sí, a través de una cuenta de servicio Sí, a través de una cuenta de servicio No Sí, a través de una cuenta de usuario de base de datos (solo Cloud SQL)
Puede basarse en varios URIs de origen Sí (solo Cloud Storage) No aplicable
Asignación de filas Las filas representan el contenido del archivo Las filas representan los metadatos de los archivos. Las filas representan el contenido del archivo No aplicable
Se puede acceder a ellos con otras herramientas de tratamiento de datos mediante conectores Sí (solo Cloud Storage) No No aplicable
Se puede combinar con otras tablas de BigQuery Sí (solo Cloud Storage)
Se puede acceder a ella como una tabla temporal Sí (solo Cloud Storage) No
Funciona con Amazon S3 No No No
Funciona con Azure Storage No No No
Funciona con Bigtable No No No
Funciona con Spanner No No No
Funciona con Cloud SQL No No No
Funciona con Google Drive No No No
Funciona con Cloud Storage No

Siguientes pasos