BigQuery

Usa el conector de BigQuery para realizar operaciones de inserción, eliminación, actualización y lectura en datos de Google BigQuery. También puede ejecutar consultas de SQL personalizadas en datos de BigQuery. Puedes usar el conector de BigQuery para integrar datos de varios servicios de Google Cloud u otros servicios de terceros, como Cloud Storage o Amazon S3.

Antes de empezar

En tu proyecto de Google Cloud, haz lo siguiente:

  • Asegúrate de que la conectividad de red esté configurada. Para obtener información sobre los patrones de red, consulta Conectividad de red.
  • Concede el rol de gestión de identidades y accesos roles/connectors.admin al usuario que configure el conector.
  • Asigna el rol de gestión de identidades y accesos roles/bigquery.dataEditor a la cuenta de servicio que quieras usar para el conector. Si no tienes una cuenta de servicio, debes crearla. El conector y la cuenta de servicio deben pertenecer al mismo proyecto.
  • Habilita los siguientes servicios:
    • secretmanager.googleapis.com (API Secret Manager)
    • connectors.googleapis.com (API Connectors)

    Para saber cómo habilitar servicios, consulta Habilitar servicios. Si estos servicios o permisos no se han habilitado en tu proyecto anteriormente, se te pedirá que los habilites cuando configures el conector.

Crear una conexión de BigQuery

Una conexión es específica de una fuente de datos. Esto significa que, si tiene muchas fuentes de datos, debe crear una conexión independiente para cada una de ellas. Para crear una conexión, sigue estos pasos:

  1. En la consola de Cloud, ve a la página Integration Connectors > Connections (Conectores de integración > Conexiones) y, a continuación, selecciona o crea un proyecto de Google Cloud.

    Ve a la página Conexiones.

  2. Haz clic en + CREAR NUEVA para abrir la página Crear conexión.
  3. En la sección Ubicación, selecciona una ubicación de la lista Región y, a continuación, haz clic en SIGUIENTE.

    Para ver la lista de todas las regiones admitidas, consulta Ubicaciones.

  4. En la sección Detalles de la conexión, haz lo siguiente:
    1. Seleccione BigQuery en la lista Conector.
    2. Seleccione una versión del conector en la lista Versión del conector.
    3. En el campo Nombre de conexión, introduce un nombre para la instancia de conexión. El nombre de la conexión puede contener letras minúsculas, números o guiones. El nombre debe empezar por una letra y terminar con una letra o un número, y no puede superar los 49 caracteres.
    4. También puedes habilitar Registro en la nube y, a continuación, seleccionar un nivel de registro. De forma predeterminada, el nivel de registro es Error.
    5. Cuenta de servicio: selecciona una cuenta de servicio que tenga los roles necesarios.
    6. (Opcional) Configura los ajustes del nodo de conexión.
      • Número mínimo de nodos: introduce el número mínimo de nodos de conexión.
      • Número máximo de nodos: introduce el número máximo de nodos de conexión.

      Un nodo es una unidad (o réplica) de una conexión que procesa transacciones. Se necesitan más nodos para procesar más transacciones en una conexión y, a la inversa, se necesitan menos nodos para procesar menos transacciones. Para saber cómo afectan los nodos a los precios de los conectores, consulta la sección Precios de los nodos de conexión. Si no introduces ningún valor, de forma predeterminada, el número mínimo de nodos será 2 (para mejorar la disponibilidad) y el máximo será 50.

    7. ID del proyecto: ID del proyecto de Google Cloud en el que se encuentran los datos.
    8. ID de conjunto de datos: el ID del conjunto de datos de BigQuery.
    9. Para admitir el tipo de datos Array de BigQuery, seleccione Admitir tipos de datos nativos. Se admiten los siguientes tipos de arrays: Varchar, Int64, Float64, Long, Double, Bool y Timestamp. No se admiten las matrices anidadas.
    10. (Opcional) Para configurar un servidor proxy para la conexión, selecciona Usar proxy e introduce los detalles del proxy.
      • Esquema de autenticación de proxy: selecciona el tipo de autenticación para autenticarte con el servidor proxy. Se admiten los siguientes tipos de autenticación:
        • Básica: autenticación HTTP básica.
        • Digest: autenticación HTTP Digest.
      • Usuario proxy: nombre de usuario que se usará para autenticar el servidor proxy.
      • Contraseña de proxy: el secreto de Secret Manager de la contraseña del usuario.
      • Tipo de SSL de proxy: el tipo de SSL que se debe usar al conectarse al servidor proxy. Se admiten los siguientes tipos de autenticación:
        • Automático: es el ajuste predeterminado. Si la URL es una URL HTTPS, se usa la opción Tunnel. Si la URL es una URL HTTP, se usa la opción NUNCA.
        • Siempre: la conexión siempre tiene habilitado SSL.
        • Nunca: la conexión no tiene habilitado el protocolo SSL.
        • Túnel: la conexión se realiza a través de un proxy de tunelización. El servidor proxy abre una conexión con el host remoto y el tráfico fluye de un lado a otro a través del proxy.
      • En la sección Servidor proxy, introduce los detalles del servidor proxy.
        1. Haga clic en + Añadir destino.
        2. Selecciona un Tipo de destino.
          • Dirección de host: especifica el nombre de host o la dirección IP del destino.

            Si quieres establecer una conexión privada con tu sistema backend, haz lo siguiente:

    11. Haz clic en SIGUIENTE.
  5. En la sección Autenticación, introduce los detalles de autenticación.
    1. Selecciona si quieres autenticarte con OAuth 2.0 (código de autorización) o continuar sin autenticación.

      Para saber cómo configurar la autenticación, consulta Configurar la autenticación.

    2. Haz clic en SIGUIENTE.
  6. Revise los detalles de la conexión y la autenticación y, a continuación, haga clic en Crear.

Configurar la autenticación

Introduce los detalles en función de la autenticación que quieras usar.

  • Sin autenticación: seleccione esta opción si no requiere autenticación.
  • OAuth 2.0 - Código de autorización: selecciona esta opción para autenticarte mediante un flujo de inicio de sesión de usuario basado en la Web. Especifica los siguientes detalles:
    • ID de cliente: el ID de cliente necesario para conectarse a su servicio de Google backend.
    • Scopes: lista separada por comas de los permisos deseados. Para ver todos los permisos de OAuth 2.0 admitidos para el servicio de Google que necesites, consulta la sección correspondiente de la página Permisos de OAuth 2.0 para las APIs de Google.
    • Secreto de cliente: selecciona el secreto de Secret Manager. Debes haber creado el secreto de Secret Manager antes de configurar esta autorización.
    • Versión del secreto: versión del secreto de Secret Manager para el secreto de cliente.

    En el caso del tipo de autenticación Authorization code, después de crear la conexión, debes autorizarla.

Autorizar la conexión

Si usas el código de autorización de OAuth 2.0 para autenticar la conexión, completa las siguientes tareas después de crearla.

  1. En la página Conexiones, busca la conexión que acabas de crear.

    Verás que el estado del nuevo conector será Autorización obligatoria.

  2. Haz clic en Se requiere autorización.

    Se mostrará el panel Editar autorización.

  3. Copia el valor de URI de redirección en tu aplicación externa.
  4. Verifica los detalles de la autorización.
  5. Haz clic en Autorizar.

    Si la autorización se realiza correctamente, el estado de la conexión será Activo en la página Conexiones.

Reautorización del código de autorización

Si usas el tipo de autenticación Authorization code y has hecho algún cambio en la configuración de BigQuery, debes volver a autorizar tu conexión de BigQuery. Para volver a autorizar una conexión, sigue estos pasos:

  1. En la página Conexiones, haga clic en la conexión que quiera.

    Se abrirá la página de detalles de la conexión.

  2. Haz clic en Editar para modificar los detalles de la conexión.
  3. Verifica los detalles de OAuth 2.0 - Código de autorización en la sección Autenticación.

    Si es necesario, haz los cambios pertinentes.

  4. Haz clic en Guardar. Se te dirigirá a la página de detalles de la conexión.
  5. En la sección Autenticación, haga clic en Editar autorización. Se muestra el panel Autorizar.
  6. Haz clic en Autorizar.

    Si la autorización se realiza correctamente, el estado de la conexión será Activa en la página Conexiones.

Usar la conexión de BigQuery en una integración

Una vez que hayas creado la conexión, estará disponible tanto en Apigee Integration como en Application Integration. Puedes usar la conexión en una integración a través de la tarea Conectores.

  • Para saber cómo crear y usar la tarea Conectores en la integración de Apigee, consulta Tarea Conectores.
  • Para saber cómo crear y usar la tarea Conectores en Application Integration, consulta Tarea Conectores.

Acciones

En esta sección se describen las acciones disponibles en el conector de BigQuery.

Los resultados de todas las operaciones y acciones de las entidades estarán disponibles como respuesta JSON en el parámetro connectorOutputPayloadresponseConnectors de la tarea después de ejecutar la integración.

Acción CancelJob

Esta acción te permite cancelar una tarea de BigQuery en curso.

En la siguiente tabla se describen los parámetros de entrada de la acción CancelJob.

Nombre del parámetro Tipo de datos Descripción
JobId Cadena El ID del trabajo que quieres cancelar. Este campo es obligatorio.
Región Cadena La región en la que se está ejecutando el trabajo. No es necesario si el trabajo se realiza en Estados Unidos o en la Unión Europea.

Acción GetJob

Esta acción te permite obtener la información de configuración y el estado de ejecución de un trabajo.

En la siguiente tabla se describen los parámetros de entrada de la acción GetJob.

Nombre del parámetro Tipo de datos Descripción
JobId Cadena El ID del trabajo del que quieres obtener la configuración. Este campo es obligatorio.
Región Cadena La región en la que se está ejecutando el trabajo. No es necesario si el trabajo se realiza en Estados Unidos o en la Unión Europea.

Acción InsertJob

Esta acción te permite insertar una tarea de BigQuery, que se puede seleccionar más adelante para obtener los resultados de la consulta.

En la siguiente tabla se describen los parámetros de entrada de la acción InsertJob.

Nombre del parámetro Tipo de datos Descripción
Consulta Cadena Consulta que se enviará a BigQuery. Este campo es obligatorio.
IsDML Cadena Debe definirse como true si la consulta es una instrucción DML o false en caso contrario. El valor predeterminado es false.
DestinationTable Cadena Tabla de destino de la consulta, en formato DestProjectId:DestDatasetId.DestTable.
WriteDisposition Cadena Especifica cómo escribir datos en la tabla de destino, como truncar los resultados, añadir los resultados o escribir solo cuando la tabla esté vacía. A continuación se indican los valores admitidos:
  • WRITE_TRUNCATE
  • WRITE_APPEND
  • WRITE_EMPTY
El valor predeterminado es WRITE_TRUNCATE.
DryRun Cadena Especifica si la ejecución del trabajo es una prueba.
MaximumBytesBilled Cadena Especifica el número máximo de bytes que puede procesar el trabajo. BigQuery cancela la tarea si intenta procesar más bytes que el valor especificado.
Región Cadena Especifica la región en la que se debe ejecutar el trabajo.

Acción InsertLoadJob

Esta acción te permite insertar una tarea de carga de BigQuery, que añade datos de Google Cloud Storage a una tabla.

En la siguiente tabla se describen los parámetros de entrada de la acción InsertLoadJob.

Nombre del parámetro Tipo de datos Descripción
SourceURIs Cadena Lista de URIs de Google Cloud Storage separados por espacios.
SourceFormat Cadena El formato de origen de los archivos. Estos son los valores admitidos:
  • AVRO
  • NEWLINE_DELIMITED_JSON
  • DATASTORE_BACKUP
  • PARQUET
  • ORC
  • CSV
DestinationTable Cadena Tabla de destino de la consulta, en formato DestProjectId.DestDatasetId.DestTable.
DestinationTableProperties Cadena Un objeto JSON que especifica el nombre descriptivo, la descripción y la lista de etiquetas de la tabla.
DestinationTableSchema Cadena Lista JSON que especifica los campos que se usan para crear la tabla.
DestinationEncryptionConfiguration Cadena Objeto JSON que especifica la configuración de cifrado de KMS de la tabla.
SchemaUpdateOptions Cadena Lista JSON que especifica las opciones que se deben aplicar al actualizar el esquema de la tabla de destino.
TimePartitioning Cadena Un objeto JSON que especifica el tipo y el campo de partición por tiempo.
RangePartitioning Cadena Un objeto JSON que especifica el campo y los contenedores de partición de intervalo.
Agrupamiento en clústeres Cadena Un objeto JSON que especifica los campos que se van a usar para la creación de clústeres.
Detectar automáticamente Cadena Especifica si las opciones y el esquema se deben determinar automáticamente para los archivos JSON y CSV.
CreateDisposition Cadena Especifica si se debe crear la tabla de destino si aún no existe. A continuación, se indican los valores admitidos:
  • CREATE_IF_NEEDED
  • CREATE_NEVER
El valor predeterminado es CREATE_IF_NEEDED.
WriteDisposition Cadena Especifica cómo escribir datos en la tabla de destino, como truncar los resultados, añadir los resultados o escribir solo cuando la tabla esté vacía. A continuación se indican los valores admitidos:
  • WRITE_TRUNCATE
  • WRITE_APPEND
  • WRITE_EMPTY
El valor predeterminado es WRITE_APPEND.
Región Cadena Especifica la región en la que se debe ejecutar el trabajo. Los recursos de Google Cloud Storage y el conjunto de datos de BigQuery deben estar en la misma región.
DryRun Cadena Especifica si la ejecución del trabajo es una prueba. El valor predeterminado es false.
MaximumBadRecords Cadena Especifica el número de registros que pueden ser no válidos antes de que se cancele todo el trabajo. De forma predeterminada, todos los registros deben ser válidos. El valor predeterminado es 0.
IgnoreUnknownValues Cadena Especifica si los campos desconocidos se deben ignorar en el archivo de entrada o si se deben tratar como errores. De forma predeterminada, se tratan como errores. El valor predeterminado es false.
AvroUseLogicalTypes Cadena Especifica si se deben usar tipos lógicos AVRO para convertir datos AVRO en tipos de BigQuery. El valor predeterminado es true.
CSVSkipLeadingRows Cadena Especifica cuántas filas se deben omitir al principio de los archivos CSV. Normalmente, se usa para omitir las filas de encabezado.
CSVEncoding Cadena Tipo de codificación de los archivos CSV. Estos son los valores admitidos:
  • ISO-8859-1
  • UTF-8
El valor predeterminado es UTF-8.
CSVNullMarker Cadena Si se proporciona, esta cadena se usa para los valores NULL de los archivos CSV. De forma predeterminada, los archivos CSV no pueden usar NULL.
CSVFieldDelimiter Cadena El carácter que se usa para separar las columnas de los archivos CSV. El valor predeterminado es una coma (,).
CSVQuote Cadena El carácter que se usa para los campos entre comillas en los archivos CSV. Puede estar vacío para inhabilitar las comillas. El valor predeterminado son las comillas dobles (").
CSVAllowQuotedNewlines Cadena Especifica si los archivos CSV pueden contener saltos de línea en campos entre comillas. El valor predeterminado es false.
CSVAllowJaggedRows Cadena Especifica si los archivos CSV pueden contener campos que falten. El valor predeterminado es false.
DSBackupProjectionFields Cadena Lista JSON de campos que se van a cargar desde una copia de seguridad de Cloud Datastore.
ParquetOptions Cadena Objeto JSON que especifica las opciones de importación específicas de Parquet.
DecimalTargetTypes Cadena Una lista JSON que indica el orden de preferencia aplicado a los tipos numéricos.
HivePartitioningOptions Cadena Un objeto JSON que especifica las opciones de partición del lado de la fuente.

Ejecutar una consulta de SQL personalizada

Para crear una consulta personalizada, sigue estos pasos:

  1. Sigue las instrucciones detalladas para añadir una tarea de conectores.
  2. Cuando configure la tarea del conector, en el tipo de acción que quiera realizar, seleccione Acciones.
  3. En la lista Acción, selecciona Ejecutar consulta personalizada y, a continuación, haz clic en Hecho.

    Imagen que muestra la acción execute-custom-query Imagen que muestra la acción execute-custom-query

  4. Despliega la sección Entrada de la tarea y, a continuación, haz lo siguiente:
    1. En el campo Tiempo de espera tras, introduce el número de segundos que deben transcurrir hasta que se ejecute la consulta.

      Valor predeterminado: 180 segundos.

    2. En el campo Número máximo de filas, introduzca el número máximo de filas que se devolverán de la base de datos.

      Valor predeterminado: 25.

    3. Para actualizar la consulta personalizada, haz clic en Editar secuencia de comandos personalizada. Se abrirá el cuadro de diálogo Editor de secuencias de comandos.

      Imagen que muestra custom-sql-query Imagen que muestra custom-sql-query

    4. En el cuadro de diálogo Editor de secuencias de comandos, introduce la consulta de SQL y haz clic en Guardar.

      Puedes usar un signo de interrogación (?) en una instrucción SQL para representar un único parámetro que debe especificarse en la lista de parámetros de la consulta. Por ejemplo, la siguiente consulta SQL selecciona todas las filas de la tabla Employees que coinciden con los valores especificados en la columna LastName:

      SELECT * FROM Employees where LastName=?

    5. Si has usado signos de interrogación en tu consulta SQL, debes añadir el parámetro haciendo clic en + Añadir nombre de parámetro por cada signo de interrogación. Durante la ejecución de la integración, estos parámetros sustituyen secuencialmente los signos de interrogación (?) de la consulta de SQL. Por ejemplo, si has añadido tres signos de interrogación (?), debes añadir tres parámetros en orden de secuencia.

      Imagen que muestra la opción para añadir un parámetro de consulta Imagen que muestra la opción para añadir un parámetro de consulta

      Para añadir parámetros de consulta, siga estos pasos:

      1. En la lista Tipo, seleccione el tipo de datos del parámetro.
      2. En el campo Valor, introduzca el valor del parámetro.
      3. Para añadir varios parámetros, haga clic en + Añadir parámetro de consulta.
    6. La acción Ejecutar consulta personalizada no admite variables de matriz.

Usar Terraform para crear conexiones

Puedes usar el recurso de Terraform para crear una conexión.

Para saber cómo aplicar o quitar una configuración de Terraform, consulta Comandos básicos de Terraform.

Para ver una plantilla de Terraform de ejemplo para crear una conexión, consulta la plantilla de ejemplo.

Cuando crees esta conexión con Terraform, debes definir las siguientes variables en el archivo de configuración de Terraform:

Nombre del parámetro Tipo de datos Obligatorio Descripción
project_id STRING Verdadero El ID del proyecto que contiene el conjunto de datos de BigQuery (por ejemplo, myproject).
dataset_id STRING Falso ID del conjunto de datos de BigQuery sin el nombre del proyecto. Por ejemplo, mydataset.
proxy_enabled BOOLEAN Falso Seleccione esta casilla para configurar un servidor proxy para la conexión.
proxy_auth_scheme ENUM Falso Tipo de autenticación que se usará para autenticar el proxy ProxyServer. Los valores posibles son: BASIC, DIGEST y NONE.
proxy_user STRING Falso Nombre de usuario que se usará para autenticar el proxy ProxyServer.
proxy_password SECRET Falso Contraseña que se usará para autenticarse en el proxy ProxyServer.
proxy_ssltype ENUM Falso El tipo de SSL que se debe usar al conectarse al proxy ProxyServer. Los valores admitidos son AUTO, ALWAYS, NEVER y TUNNEL.

Limitaciones del sistema

El conector de BigQuery puede procesar un máximo de 8 transacciones por segundo por nodo y limita las transacciones que superen este límite. De forma predeterminada, Integration Connectors asigna 2 nodos (para mejorar la disponibilidad) a una conexión.

Para obtener información sobre los límites aplicables a Integration Connectors, consulta Límites.

Tipos de datos admitidos

Estos son los tipos de datos admitidos por este conector:

  • ARRAY
  • BIGINT
  • BINARY
  • BIT
  • BOOLEAN
  • CHAR
  • FECHA
  • DECIMAL
  • DOUBLE
  • FLOAT
  • INTEGER
  • LONGN VARCHAR
  • LONG VARCHAR
  • NCHAR
  • NUMERIC
  • NVARCHAR
  • REAL
  • SMALL INT
  • HORA
  • TIMESTAMP
  • TINY INT
  • VARBINARY
  • VARCHAR

Limitaciones conocidas

  • El conector de BigQuery no admite la clave principal de una tabla de BigQuery. Esto significa que no puedes realizar las operaciones de entidad Get, Update y Delete mediante un entityId. También puede usar la cláusula de filtro para filtrar registros en función de un ID.

  • Cuando obtengas datos por primera vez, puede que experimentes una latencia inicial de unos 6 segundos. Debido al almacenamiento en caché, no hay latencia en las solicitudes posteriores. Esta latencia puede volver a producirse cuando caduque la caché.

Obtener ayuda de la comunidad de Google Cloud

Puedes publicar tus preguntas y hablar sobre este conector en la comunidad de Google Cloud, en los foros de Cloud.

Siguientes pasos