Fuente por lotes de BigQuery

En esta página, se proporciona orientación para configurar el complemento de fuente de lotes de BigQuery en Cloud Data Fusion.

El complemento de fuente de BigQuery te permite conectar y cargar datos de las tablas de BigQuery. 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:

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 y no necesitas agregar permisos adicionales. A modo de referencia, tiene los siguientes permisos:

  • bigquery.datasets.get
  • bigquery.tables.create
  • bigquery.tables.get
  • bigquery.tables.updateData
  • bigquery.tables.update
  • bigquery.tables.export

Si usas una cuenta de servicio de espacio de nombres además de la cuenta de servicio predeterminada del tiempo de diseño, agrégale los permisos de la lista anterior.

Cuenta de servicio de Compute Engine

En tu Google Cloud proyecto, 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 permiso bigquery.jobs.create requerido.
  • Editor de datos de BigQuery (roles/bigquery.dataEditor). Este rol predefinido contiene los siguientes permisos obligatorios:

    • bigquery.datasets.get
    • bigquery.tables.create
    • bigquery.tables.get
    • bigquery.tables.updateData
    • bigquery.tables.update
    • bigquery.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.

Este rol y estos permisos también se pueden asignar en el bucket de Cloud Storage, según tu caso de uso.

Configura el complemento

  1. Ve a la interfaz web de Cloud Data Fusion y haz clic en Studio.
  2. Verifica que esté seleccionada la opción Data Pipeline - Batch (no Realtime).
  3. En el menú Fuente, haz clic en BigQuery. El nodo de BigQuery aparece en tu canalización.
  4. Para configurar la fuente, ve al nodo de BigQuery y haz clic en Propiedades.
  5. Ingresa las siguientes propiedades. Para obtener una lista completa, consulta Propiedades.

    1. Ingresa una Etiqueta para el nodo de BigQuery, por ejemplo, BigQuery tables.
    2. 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:

      1. En el campo Project ID, deja el valor como detección automática.
      2. Si el conjunto de datos de BigQuery está en un proyecto diferente, ingresa el ID en el campo ID del proyecto de conjunto de datos.
      3. 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 volver a usar una conexión existente, sigue estos pasos:

      1. Activa Usar conexión.
      2. Haz clic en Browse connections.
      3. Haz clic en el nombre de la conexión, por ejemplo, BigQuery Default.

      4. 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 que se indican en la pestaña Nueva conexión de esta página.

    3. En el campo Reference name, ingresa un nombre para usar en el linaje.

    4. Opcional: Si tu conjunto de datos ya está disponible en tu instancia, haz clic en Explorar y selecciona los datos que deseas leer.

    5. En el campo Dataset, ingresa el nombre del conjunto de datos que contiene la tabla.

    6. En el campo Tabla, ingresa el nombre de la tabla.

    7. Para probar la conectividad, haz clic en Obtener esquema.

    8. Opcional: En el campo Fecha de inicio de la partición, ingresa la cadena de fecha de inicio inclusiva, por ejemplo, 2021-01-11.

    9. 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.

    10. Opcional: En el campo Filtro, ingresa una cláusula WHERE de BigQuery.

    11. Opcional: En el campo Nombre del bucket temporal, ingresa un nombre para el bucket de Cloud Storage.

    12. 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 de la clave.

    13. Opcional: Activa Habilitar vistas de consulta. Si los habilitas, haz lo siguiente:

      • En el campo Temporary table creation project, ingresa el nombre del proyecto en el que se creará la tabla temporal.
      • En el campo Conjunto de datos para la creación de tablas temporales, ingresa el nombre del conjunto de datos en el que se creará la tabla temporal.
    14. Opcional: Haz clic en Validar y corrige los errores que se encuentren.

    15. 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.

Propiedades

Propiedad Macro habilitada Propiedad obligatoria Descripción
Etiqueta No Es el nombre del nodo en tu canalización de datos.
Cómo usar la 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 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 No Se usa solo cuando Usar conexión está desactivada. Es un identificador único a nivel global para el proyecto en el que se ejecuta la tarea de BigQuery.
El valor predeterminado es auto-detect.
ID del proyecto del conjunto de datos No Se usa solo cuando la opción Usar conexión está desactivada. Si el conjunto de datos está en un proyecto diferente al que ejecuta el trabajo de BigQuery, este valor es el identificador único a nivel 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 de 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 No Selecciona una de las siguientes opciones:
  • Ruta de acceso al archivo: Es la ruta en la que se encuentra la cuenta de servicio.
  • JSON: contenido JSON de la cuenta de servicio.
Ruta de acceso al archivo de la cuenta de servicio No Se usa solo cuando el valor del tipo de cuenta de servicio es Ruta de acceso al archivo. Es la ruta de acceso del sistema de archivos local de la clave de la cuenta de servicio que se usa para la autorización. Si los trabajos se ejecutan en clústeres de Dataproc, configura el valor para que se detecte automáticamente. Si las tareas 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 No Se usa solo cuando el valor del tipo de cuenta de servicio es JSON. Es el contenido del archivo JSON de la cuenta de servicio.
Nombre de referencia No Es el nombre que identifica de forma única esta fuente para otros servicios, como el linaje y la anotación de metadatos.
Conjunto de datos 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 vistas.
Tabla La tabla de la que se leerá. Una tabla contiene registros individuales organizados en filas. Cada registro está compuesto por columnas (también llamadas campos). A cada tabla la define un esquema que describe los nombres de las columnas, los tipos de datos y otra información.
Fecha de inicio de la partición No Es la 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 No Es la 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 No Una consulta SQL que filtra las condiciones determinadas. Por ejemplo, esta consulta muestra todas las filas de la tabla Roster en las que la columna SchoolID tiene el valor SchoolID > 52:
SELECT * FROM Roster WHERE SchoolID > 52;. Esto es lo mismo que la cláusula WHERE en BigQuery.
Nombre del bucket temporal No El bucket de Cloud Storage para el almacenamiento de datos temporales. Si no existe, se crea de forma automática. Los datos temporales se borran después de leerlos. 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 la clave de encriptación No Clave que encripta los datos escritos en cualquier bucket creado por el complemento. Si el bucket existe, este valor se ignora. Para obtener más información, consulta CMEK.
Habilita la consulta de vistas No Si se permiten las vistas lógicas y materializadas de BigQuery. Dado que las vistas de BigQuery no están habilitadas de forma predeterminada, es posible que consultarlas genere una sobrecarga de rendimiento.
El valor predeterminado es No.
Proyecto de creación de tablas temporales No Solo se usa cuando la opción Habilitar vistas de consulta está activada. Es el nombre del proyecto en el que se debe crear la tabla temporal. La configuración predeterminada es el mismo proyecto en el que se encuentra la tabla.
Conjunto de datos de creación de tablas temporales No Es el conjunto de datos del proyecto especificado en el que se debe crear la tabla temporal. La configuración predeterminada es el mismo conjunto de datos en el que se encuentra la tabla.
Esquema de salida Es el esquema de la tabla que se leerá. Para recuperarlo, haz clic en Obtener esquema.

Asignaciones de tipos de datos

La siguiente tabla es 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

¿Qué sigue?