El complemento de origen de BigQuery te permite conectarte a las tablas de BigQuery y cargar datos desde ellas. Los datos de una tabla de BigQuery se exportan a una ubicación temporal en Cloud Storage y, luego, se leen en la canalización desde allí.
Antes de comenzar
Por lo general, Cloud Data Fusion tiene dos cuentas de servicio:
- Cuenta de servicio en tiempo de diseño: Agente de servicio de la API de Cloud Data Fusion
- Cuenta de servicio en tiempo de ejecución: Cuenta de servicio de Compute Engine
Antes de usar el complemento de fuente por lotes de BigQuery, otorga los siguientes roles o permisos a cada cuenta de servicio.
Agente de servicios de la API de Cloud Data Fusion
Esta cuenta de servicio ya tiene todos los permisos necesarios, por lo que no es necesario que agregues permisos adicionales. Como referencia, tiene los siguientes permisos:
bigquery.datasets.getbigquery.tables.createbigquery.tables.getbigquery.tables.updateDatabigquery.tables.updatebigquery.tables.export
Si usas una cuenta de servicio de espacio de nombres además de la cuenta de servicio predeterminada en tiempo de diseño, agrégale los permisos de la lista anterior.
Cuenta de servicio de Compute Engine
En tu proyecto Google Cloud , otorga los siguientes roles o permisos de IAM a la cuenta de servicio de Compute Engine:
- Usuario de trabajo de BigQuery (
roles/bigquery.jobUser): Este rol predefinido contiene el permisobigquery.jobs.createrequerido. Editor de datos de BigQuery (
roles/bigquery.dataEditor). Este rol predefinido contiene los siguientes permisos obligatorios:bigquery.datasets.getbigquery.tables.createbigquery.tables.getbigquery.tables.updateDatabigquery.tables.updatebigquery.tables.export
Estos roles y permisos también se pueden asignar en el conjunto de datos o la tabla de BigQuery, según tu caso de uso.
Storage Legacy Bucket Writer (
roles/storage.legacyBucketWriter). Este rol predefinido contiene los siguientes permisos obligatorios:storage.buckets.getstorage.objects.getstorage.objects.list
Este rol y estos permisos también se pueden asignar en el bucket de Cloud Storage, según tu caso de uso.
Cómo configurar el complemento
- Ve a la interfaz web de Cloud Data Fusion y haz clic en Studio.
- Verifica que esté seleccionada la opción Data Pipeline - Batch (no Realtime).
- En el menú Source, haz clic en BigQuery. El nodo de BigQuery aparecerá en tu canalización.
- Para configurar la fuente, ve al nodo de BigQuery y haz clic en Propiedades.
Ingresa las siguientes propiedades. Para obtener una lista completa, consulta Propiedades.
- Ingresa una etiqueta para el nodo de BigQuery, por ejemplo,
BigQuery tables. Ingresa los detalles de la conexión. Puedes configurar una conexión nueva y única, o una conexión existente y reutilizable.
Nueva conexión
Para agregar una conexión única a BigQuery, sigue estos pasos:
- En el campo ID del proyecto, deja el valor como detección automática.
- Si el conjunto de datos de BigQuery se encuentra en otro proyecto, ingresa el ID en el campo ID del proyecto del conjunto de datos.
En el campo Tipo de cuenta de servicio, elige una de las siguientes opciones y, luego, ingresa el contenido en el siguiente campo:
- Ruta de acceso al archivo
- JSON
Conexión reutilizable
Para reutilizar una conexión existente, sigue estos pasos:
- Activa Use connection.
- Haz clic en Browse connections.
Haz clic en el nombre de la conexión, por ejemplo, BigQuery Default.
Opcional: Si no existe una conexión y deseas crear una nueva conexión reutilizable, haz clic en Agregar conexión y consulta los pasos de la pestaña Nueva conexión en esta página.
En el campo Nombre de referencia, ingresa un nombre para usar en el linaje.
Opcional: Si tu conjunto de datos ya está disponible en tu instancia, haz clic en Explorar y selecciona los datos que deseas leer.
En el campo Dataset, ingresa el nombre del conjunto de datos que contiene la tabla.
En el campo Tabla, ingresa el nombre de la tabla.
Para probar la conectividad, haz clic en Obtener esquema.
Opcional: En el campo Fecha de inicio de la partición, ingresa la cadena de fecha de inicio inclusiva, por ejemplo,
2021-01-11.Opcional: En el campo Fecha de finalización de la partición, ingresa la cadena de fecha de finalización inclusiva, por ejemplo,
2024-01-11.Opcional: En el campo Filtro, ingresa una cláusula
WHEREde BigQuery.Opcional: En el campo Nombre del bucket temporal, ingresa un nombre para el bucket de Cloud Storage.
Opcional: En el campo Nombre de la clave de encriptación, ingresa el nombre de la clave de encriptación de Cloud Key Management Service (Cloud KMS). Para obtener más información, consulta Cómo obtener el nombre del recurso para la clave.
Opcional: Activa Habilitar vistas de consultas. Si los habilitas, haz lo siguiente:
- En el campo Proyecto de creación de tablas temporales, ingresa el nombre del proyecto en el que se crea la tabla temporal.
- En el campo Conjunto de datos de creación de tablas temporales, ingresa el nombre del conjunto de datos en el que se crea la tabla temporal.
Opcional: Haz clic en Validar y corrige los errores que se encuentren.
Haz clic en Cerrar. Las propiedades se guardan y puedes seguir compilando tu canalización de datos en la interfaz web de Cloud Data Fusion.
- Ingresa una etiqueta para el nodo de BigQuery, por ejemplo,
Propiedades
| Propiedad | Macro habilitada | Propiedad obligatoria | Descripción |
|---|---|---|---|
| Etiqueta | No | Sí | Es el nombre del nodo en tu canalización de datos. |
| Usar conexión | No | No | Busca una conexión reutilizable a la fuente. Para obtener más información sobre cómo agregar, importar y editar las conexiones que aparecen cuando exploras conexiones, consulta Administra conexiones. |
| Conexión | Sí | Sí | Si la opción Usar conexión está activada, el nombre de la conexión reutilizable que selecciones aparecerá en este campo. |
| ID del proyecto | Sí | No | Se usa solo cuando la opción Usar conexión está desactivada. Es un identificador único a nivel global para el proyecto en el que se ejecuta el trabajo de BigQuery. El valor predeterminado es auto-detect. |
| ID del proyecto del conjunto de datos | Sí | No | Se usa solo cuando la opción Usar conexión está desactivada. Si el conjunto de datos se encuentra en un proyecto diferente del que ejecuta el trabajo de BigQuery, este valor es el identificador único global del proyecto con el conjunto de datos de BigQuery. Si no se proporciona ningún valor, el campo se establece de forma predeterminada en el valor del ID del proyecto. Se debe otorgar el rol de visualizador de datos de BigQuery a la cuenta de servicio especificada para leer los datos de BigQuery en el proyecto. |
| Tipo de cuenta de servicio | Sí | No | Selecciona una de las siguientes opciones:
|
| Ruta de acceso al archivo de la cuenta de servicio | Sí | No | Se usa solo cuando el valor del tipo de cuenta de servicio es Ruta de acceso al archivo. Es la ruta de acceso en el sistema de archivos local de la clave de la cuenta de servicio utilizada para la autorización. Si los trabajos se ejecutan en clústeres de Managed Service para Apache Spark, establece el valor en detección automática. Si los trabajos se ejecutan en otros tipos de clústeres, el archivo debe estar presente en cada nodo del clúster.El valor predeterminado es auto-detect. |
| JSON de la cuenta de servicio | Sí | No | Solo se usa cuando el valor del tipo de cuenta de servicio es JSON. Contenido del archivo JSON de la cuenta de servicio. |
| Nombre de referencia | No | Sí | Nombre que identifica de forma única esta fuente para otros servicios, como el linaje y la anotación de metadatos. |
| Conjunto de datos | Sí | Sí | Es el conjunto de datos al que pertenece la tabla. Un conjunto de datos se encuentra dentro de un proyecto específico. Los conjuntos de datos son contenedores de nivel superior que organizan y controlan el acceso a las tablas y las vistas. |
| Tabla | Sí | Sí | Tabla desde la que se leerá. Una tabla contiene registros individuales organizados en filas. Cada registro está compuesto por columnas (también llamadas campos). Cada tabla se define con un esquema que describe los nombres de las columnas, los tipos de datos y otra información. |
| Fecha de inicio de la partición | Sí | No | Fecha de inicio de la partición inclusiva, especificada como yyyy-mm-dd. Si no se proporciona ningún valor, se leerán todas las particiones hasta la fecha de finalización de la partición. |
| Fecha de finalización de la partición | Sí | No | Fecha de finalización de la partición exclusiva, especificada como yyyy-mm-dd. Si no se proporciona ningún valor, se leen todas las particiones a partir de la fecha de inicio de la partición. |
| Filtro | Sí | No | Es una consulta en SQL que filtra según las condiciones especificadas. Por ejemplo, esta consulta devuelve todas las filas de la tabla Roster en las que la columna SchoolID tiene el valor SchoolID > 52:SELECT * FROM Roster WHERE SchoolID > 52;. Es lo mismo que la cláusula WHERE en BigQuery. |
| Nombre del bucket temporal | Sí | No | Es el bucket de Cloud Storage para el almacenamiento de datos temporales. Se crea automáticamente si no existe. Los datos temporales se borran después de que se leen. Si no se proporciona un nombre, se crea un bucket único y, luego, se lo borra después de que finaliza la ejecución. |
| Nombre de clave de encriptación | Sí | No | Es la clave que encripta los datos escritos en cualquier bucket creado por el complemento. Si el bucket ya existe, este valor se ignora. Para obtener más información, consulta CMEK. |
| Habilita las vistas de consulta | Sí | No | Indica si se permiten las vistas lógicas y materializadas de BigQuery. Dado que las vistas de BigQuery no están habilitadas de forma predeterminada, consultarlas puede generar una sobrecarga de rendimiento. El valor predeterminado es No. |
| Proyecto de creación de tablas temporales | Sí | No | Solo se usa cuando está activada la opción Habilitar la consulta de vistas. Nombre del proyecto en el que se debe crear la tabla temporal. El valor predeterminado es el mismo proyecto en el que se encuentra la tabla. |
| Conjunto de datos de creación de tablas temporales | Sí | No | Es el conjunto de datos en el proyecto especificado en el que se debe crear la tabla temporal. El valor predeterminado es el mismo conjunto de datos en el que se encuentra la tabla. |
| Esquema de salida | Sí | Sí | Esquema de la tabla que se leerá. Para recuperarlo, haz clic en Obtener esquema. |
Asignaciones de tipos de datos
En la siguiente tabla, se incluye una lista de los tipos de datos de BigQuery con los tipos de CDAP correspondientes.
| Tipo de datos de BigQuery | Tipo de datos del esquema de CDAP |
|---|---|
BOOL |
boolean |
BYTES |
bytes |
DATE |
date |
DATETIME |
datetime, string |
FLOAT64 |
double |
GEO |
unsupported |
INT64 |
long |
NUMERIC |
decimal |
BIGNUMERIC |
decimal |
REPEATED |
array |
STRING |
string, datetime (formato ISO 8601) |
STRUCT |
record |
TIME |
time (microsegundos) |
TIMESTAMP |
timestamp (microsegundos) |
JSON |
unsupported |
Notas de la versión
¿Qué sigue?
- Obtén más información sobre los complementos en Cloud Data Fusion.