Fuente de lote de BigQuery

En esta página se explica cómo configurar el complemento de fuente por lotes de BigQuery en Cloud Data Fusion.

El complemento de origen de BigQuery te permite conectar y cargar datos de tablas de BigQuery. Los datos de una tabla de BigQuery se exportan a una ubicación temporal de Cloud Storage y, a continuación, se leen en la canalización desde esa ubicación.

Antes de empezar

Cloud Data Fusion suele tener dos cuentas de servicio:

Antes de usar el complemento de origen por lotes de BigQuery, concede los siguientes roles o permisos a cada cuenta de servicio.

Agente de servicio de la API de Cloud Data Fusion

Esta cuenta de servicio ya tiene todos los permisos necesarios, por lo que no tienes que añadir más. 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 en tiempo de diseño, añádele los permisos de la lista anterior.

Cuenta de servicio de Compute Engine

En tu Google Cloud proyecto, asigna los siguientes roles o permisos de IAM a la cuenta de servicio de Compute Engine:

  • Usuario de tareas de BigQuery (roles/bigquery.jobUser). Este rol predefinido contiene el permiso bigquery.jobs.create necesario.
  • Editor de datos de BigQuery (roles/bigquery.dataEditor). Este rol predefinido incluye 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, en función de tu caso práctico.

  • Editor de segmentos heredados de Storage (roles/storage.legacyBucketWriter). Este rol predefinido contiene los siguientes permisos obligatorios:

    • storage.buckets.get
    • storage.objects.get
    • storage.objects.list

Este rol y estos permisos también se pueden asignar en el segmento de Cloud Storage, en función de tu caso práctico.

Configurar el complemento

  1. Ve a la interfaz web de Cloud Data Fusion y haz clic en Studio.
  2. Comprueba que esté seleccionada la opción Flujo de procesamiento de datos - Lote (no En tiempo real).
  3. En el menú Fuente, haga clic en BigQuery. El nodo BigQuery aparecerá en tu canalización.
  4. Para configurar la fuente, vaya al nodo BigQuery y haga clic en Propiedades.
  5. Introduce las siguientes propiedades. Para ver una lista completa, consulta Propiedades.

    1. Introduce una etiqueta para el nodo de BigQuery. Por ejemplo, BigQuery tables.
    2. Introduce los detalles de la conexión. Puedes configurar una conexión nueva y puntual o una conexión reutilizable que ya tengas.

      Nueva conexión

      Para añadir una conexión única a BigQuery, siga estos pasos:

      1. En el campo ID de proyecto, deja el valor de detección automática.
      2. Si el conjunto de datos de BigQuery está en otro proyecto, introduzca el ID en el campo ID del proyecto del conjunto de datos.
      3. En el campo Tipo de cuenta de servicio, elige una de las siguientes opciones e introduce el contenido en el campo siguiente:

        • Ruta del archivo
        • JSON

      Conexión reutilizable

      Para reutilizar una conexión, sigue estos pasos:

      1. Activa Usar conexión.
      2. Haz clic en Ver conexiones.
      3. Haga clic en el nombre de la conexión (por ejemplo, BigQuery Default).

        .
      4. Opcional: Si no hay ninguna conexión y quieres crear una nueva que se pueda reutilizar, haz clic en Añadir conexión y sigue los pasos de la pestaña Nueva conexión de esta página.

    3. En el campo Nombre de referencia, introduce un nombre que se usará para el linaje.

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

    5. En el campo Conjunto de datos, introduce el nombre del conjunto de datos que contiene la tabla.

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

    7. Para probar la conectividad, haga clic en Obtener el esquema.

    8. Opcional: En el campo Fecha de inicio de la partición, introduce 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, introduce la cadena de fecha de finalización inclusiva (por ejemplo, 2024-01-11).

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

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

    12. Opcional: En el campo Nombre de clave de encriptado, introduce el nombre de la clave de encriptado de Cloud Key Management Service (Cloud KMS). Para obtener más información, consulta Obtener el nombre del recurso de la clave.

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

      • En el campo Proyecto de creación de tabla temporal, introduce el nombre del proyecto en el que se crea la tabla temporal.
      • En el campo Conjunto de datos de creación de tabla temporal, introduce el nombre del conjunto de datos en el que se crea la tabla temporal.
    14. Opcional: Haz clic en Validar y corrige los errores que se hayan encontrado.

    15. Haz clic en Cerrar. Las propiedades se guardan y puedes seguir creando tu flujo de procesamiento de datos en la interfaz web de Cloud Data Fusion.

Propiedades

Propiedad Compatible con macros Propiedad obligatoria Descripción
Etiqueta No El nombre del nodo de su 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 añadir, importar y editar las conexiones que aparecen al buscar conexiones, consulta Gestionar conexiones.
Conexión Si la opción Usar conexión está activada, en este campo se muestra el nombre de la conexión reutilizable que selecciones.
ID del proyecto No Solo se usa cuando la opción Usar conexión está desactivada. Es un identificador único global del proyecto en el que se ejecuta el trabajo de BigQuery.
El valor predeterminado es auto-detect.
ID del proyecto del conjunto de datos No Solo se usa cuando la opción Usar conexión está desactivada. Si el conjunto de datos está en un proyecto distinto de aquel en el que se 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 toma como valor predeterminado el ID de proyecto. Se debe asignar el rol Lector de datos de BigQuery a la cuenta de servicio especificada para leer los datos de BigQuery del proyecto.
Tipo de cuenta de servicio No Selecciona una de las siguientes opciones:
  • Ruta del archivo: la ruta donde se encuentra la cuenta de servicio.
  • JSON: contenido JSON de la cuenta de servicio.
Service account file path (Ruta del archivo de la cuenta de servicio) No Solo se usa cuando el valor de Service account type (Tipo de cuenta de servicio) es File path (Ruta de archivo). Ruta del archivo de clave de la cuenta de servicio en el sistema de archivos local que se usa para la autorización. Si los trabajos se ejecutan en clústeres de Dataproc, defina el valor como detección automática. Si las tareas se ejecutan en otros tipos de clústeres, el archivo debe estar presente en todos los nodos del clúster.
El valor predeterminado es auto-detect.
JSON de la cuenta de servicio No Solo se usa cuando el valor de Tipo de cuenta de servicio es JSON. El contenido del archivo JSON de la cuenta de servicio.
Nombre de referencia No Nombre que identifica de forma única esta fuente para otros servicios, como el linaje y la anotación de metadatos.
Conjunto de datos El conjunto de datos al que pertenece la tabla. Un conjunto de datos se incluye en 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 Tabla de la que se va a leer. Las tablas contienen registros concretos organizados en filas. Cada uno de ellos está dividido en columnas (o campos). Cada tabla se define mediante 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 Fecha de inicio de la partición (inclusive), 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 Fecha de finalización exclusiva de la partición, 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 de SQL que filtra por las condiciones dadas. 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 segmento temporal No Segmento de Cloud Storage para el almacenamiento temporal de datos. Se crea automáticamente si no existe. Los datos temporales se eliminan después de leerse. Si no se proporciona ningún nombre, se crea un segmento único y, a continuación, se elimina cuando finaliza la ejecución.
Nombre de clave de cifrado No Clave que cifra los datos escritos en cualquier segmento creado por el complemento. Si el contenedor existe, este valor se ignora. Para obtener más información, consulta CMEK.
Habilitar las consultas de vistas No Indica si se permiten las vistas lógicas y materializadas de BigQuery. Como las vistas de BigQuery no están habilitadas de forma predeterminada, consultarlas puede suponer una sobrecarga en el rendimiento.
El valor predeterminado es No.
Proyecto de creación de tablas temporales No Solo se usa cuando la opción Habilitar consultas de vistas está activada. El 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 No El conjunto de datos del 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 Esquema de la tabla que se va a leer. Para obtenerlo, haga clic en Obtener el esquema.

Asignaciones de tipos de datos

En la siguiente tabla se muestra una lista de tipos de datos de BigQuery con los tipos de CDAP correspondientes.

Tipo de datos de BigQuery Tipo de datos de 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

Siguientes pasos