Consulta los conectores compatibles para Application Integration.
Inserta datos en BigQuery con una tarea para cada paralelo
En este instructivo, crearás una Application Integration y una subintegración para procesar una serie de registros. Para cada registro, la integración principal invoca de manera asíncrona la subintegración, que toma los datos de cada registro y los inserta como una fila en una tabla en un conjunto de datos de BigQuery.
En este instructivo, completarás las siguientes tareas:
- Configura una conexión de BigQuery
- Configura una subintegración
- Configura la integración principal
- Prueba tu integración
Antes de comenzar
- Asegúrate de tener acceso a Application Integration.
-
Haz lo siguiente en tu proyecto de Google Cloud:
- Otorga los siguientes roles a la cuenta de servicio que deseas usar para crear la conexión:
roles/bigquery.dataEditor
roles/bigquery.readSessionUser
roles/secretmanager.viewer
roles/secretmanager.secretAccessor
- Habilita los siguientes servicios:
secretmanager.googleapis.com
(API de Secret Manager)connectors.googleapis.com
(API de conectores)
Si estos servicios no se habilitaron antes para tu proyecto, se te solicitará que los habilites cuando crees la conexión en la página Crear conexión.
- Otorga los siguientes roles a la cuenta de servicio que deseas usar para crear la conexión:
Configura una conexión de BigQuery
Comienza por crear el conjunto de datos y la tabla de BigQuery para usarlos en este instructivo. Después de crear el conjunto de datos y la tabla, crea una conexión de BigQuery. Usarás esta conexión en una integración más adelante en este instructivo.
Configura un conjunto de datos y una tabla de BigQuery
Para configurar tu conjunto de datos y tabla de BigQuery, realiza los siguientes pasos:
- En la página de la consola de Cloud, selecciona tu proyecto de Google Cloud.
- Para iniciar una sesión de Cloud Shell desde la consola de Google Cloud, haz clic en el ícono Activar Cloud Shell en la consola de Cloud. Esto inicia una sesión en el panel inferior de la consola de Google Cloud.
-
Para habilitar las API de BigQuery, ingresa los siguientes comandos en tu terminal de Cloud Shell:
export PROJECT_ID=project_id export REGION=region gcloud services enable --project "${PROJECT_ID}" \ bigquery.googleapis.com \ bigquerystorage.googleapis.com
En este comando, reemplaza lo siguiente:project_id
por el ID del proyecto de Google Cloudregion
por la región que deseas usar para crear tu conjunto de datos de BigQuery.
- Para crear un conjunto de datos de BigQuery con el nombre
bq_tutorial
, ingresa el siguiente comando en tu terminal de Cloud Shell:bq --project_id ${PROJECT_ID} --location ${REGION} mk bq_tutorial
- Para crear una tabla de BigQuery con el nombre
tutorial
, ingresa el siguiente comando en tu terminal de Cloud Shell:bq --project_id ${PROJECT_ID} \ query \ --nouse_legacy_sql \ 'create table bq_tutorial.tutorial ( unique_key STRING NOT NULL, created_date STRING, closed_date STRING, agency STRING, agency_name STRING, complaint_type STRING, descriptor STRING, location_type STRING, incident_zip STRING, incident_address STRING, street_name STRING, cross_street_1 STRING, cross_street_2 STRING, intersection_street_1 STRING, intersection_street_2 STRING, address_type STRING, city STRING, landmark STRING, facility_type STRING, status STRING, due_date STRING, resolution_action_updated_date STRING, community_board STRING, borough STRING, x_coordinate_state_plane STRING, y_coordinate_state_plane STRING, park_facility_name STRING, park_borough STRING, school_name STRING, school_number STRING, school_region STRING, school_code STRING, school_phone_number STRING, school_address STRING, school_city STRING, school_state STRING, school_zip STRING, school_not_found STRING, school_or_citywide_complaint STRING, vehicle_type STRING, taxi_company_borough STRING, taxi_pick_up_location STRING, bridge_highway_name STRING, bridge_highway_direction STRING, bridge_highway_segment STRING, road_ramp STRING, garage_lot_name STRING, ferry_direction STRING, ferry_terminal_name STRING, latitude STRING, longitude STRING, location STRING ) '
-
Verifica que se haya creado tu tabla de BigQuery.
- En la página de la consola de Cloud, haz clic en el Menú de navegación .
- En la sección Análisis, haz clic en BigQuery.
-
Expande tu proyecto y confirma que el conjunto de datos
bq_tutorial
aparezca en la lista. -
Expande el conjunto de datos bq_tutorial y confirma que la tabla
tutorial
aparezca en la lista. - Haz clic en la tabla de documentos para ver el esquema.
Crea una conexión de BigQuery
A continuación, crearás una conexión de BigQuery. Una conexión de BigQuery te permite insertar, leer, actualizar y borrar filas en una tabla de BigQuery y usar el resultado en una integración. Después de crear la conexión de BigQuery, la usarás más adelante en este instructivo para agregar filas a la tabla de BigQuery.
Para crear una conexión de BigQuery, completa los siguientes pasos:
- En la consola de Cloud, selecciona tu proyecto de Google Cloud.
- Abre la página de conexiones.
- Haz clic en + CREAR NUEVO para abrir la página Crear conexión.
- Configura la conexión:
- En la sección Crear conexión, completa lo siguiente:
- Conector: Selecciona BigQuery en la lista desplegable de conectores disponibles.
- Versión del conector: Selecciona la versión más reciente del conector en la lista desplegable de versiones disponibles.
- En el campo Nombre de la conexión, ingresa un nombre para la instancia de conexión. Para este instructivo, ingresa connector-bq-tutorial.
- De forma opcional, agrega una Descripción de la instancia de conexión.
- Cuenta de servicio: Selecciona una cuenta de servicio que tenga los roles necesarios.
- ID del proyecto: ingresa el ID del proyecto de Google Cloud en el que residen los datos de BigQuery.
- ID del conjunto de datos: ingresa el ID del conjunto de datos de BigQuery que deseas usar. En este instructivo, ingresa bq_tutorial.
- De forma opcional, haz clic en + AGREGAR ETIQUETA para agregar una etiqueta en forma de un par clave-valor.
- Haz clic en Siguiente.
- Ubicación: selecciona una región desde la que se ejecutará la conexión. Entre las regiones admitidas para los conectores, se incluyen las siguientes:
- Haz clic en Siguiente.
Para obtener la lista de todas las regiones compatibles, consulta Ubicaciones.
- Autenticación: La conexión de BigQuery no requiere configuración de autenticación. Haz clic en Siguiente.
- Revisa: Revisa los detalles de configuración de tus conexiones. En esta sección, se muestran los detalles de conexión y de autenticación de la nueva conexión para que los revises.
- En la sección Crear conexión, completa lo siguiente:
- Haz clic en Crear.
Configura una subintegración
En este instructivo, la subintegración toma cada registro que le envió la integración principal y lo inserta como una fila en la tabla tutorial
en el conjunto de datos bq_tutorial
.
Crea una subintegración
Para crear la subintegración, completa los siguientes pasos:
- En la consola de Google Cloud, ve a la página Application Integration.
- En el menú de navegación, haz clic en Integraciones. Aparecerá la página Integrations List.
- Haz clic en Crear integración.
- En el cuadro de diálogo Crear integración, haz lo siguiente:
- Ingresa un nombre, por ejemplo, ingresa Process-each-record
- De manera opcional, ingresa una descripción. Por ejemplo, ingresa el Activador de API para procesar cada registro (subintegración).
- Selecciona la región en la que quieres crear tu integración.
- Haz clic en Crear para abrir el editor de integración.
Agrega un activador de API
Para agregar un activador de API a la integración, haz lo siguiente:
- En el editor de integración, selecciona Agregar una tarea/activador > Activadores para ver una lista de los activadores disponibles.
- Arrastra el elemento Activador de API al editor de integración.
Agrega una tarea de asignación de datos
Para agregar una tarea de asignación de datos en la integración, completa los siguientes pasos:
- Selecciona Add a task/trigger > Tasks en el editor de integración para ver la lista de tareas disponibles.
- Arrastra el elemento Asignación de datos al editor de integración.
Configura la conexión de BigQuery
Ahora estás listo para usar la conexión de BigQuery que creaste antes en la subintegración. Para configurar la conexión de BigQuery en esta integración, completa los siguientes pasos:
- Selecciona Add a task/trigger > Tasks en el editor de integración para ver la lista de tareas disponibles.
- Arrastra el elemento Conectores al editor de integración.
- Haz clic en el elemento de tarea Conectores en el diseñador para ver el panel de configuración de tareas.
- Haga clic en el ícono de edición en el panel derecho y actualiza la etiqueta en Insertar fila en BigQuery.
- Haz clic en Configurar tarea.
Aparecerá el cuadro de diálogo Configurar tarea de conector.
- En el cuadro de diálogo Configurar tarea de conector, haz lo siguiente:
- Selecciona la región de conexión en la que creaste tu conexión de BigQuery.
- Selecciona la conexión de BigQuery que deseas usar. En este instructivo, selecciona connector-bq-tutorial.
- Una vez que se elige una conexión, aparece la columna Tipo. Selecciona Entidades y, luego, instructivo en la lista de entidades disponibles.
- Una vez que se elige un tipo, aparece la columna Operación. Selecciona Crear.
- Haz clic en Listo para completar la configuración de conexión y cerrar el cuadro de diálogo.
Conecta los elementos de integración
A continuación, agrega conexiones perimetrales para conectar el activador de API a la tarea Asignación de datos y la tarea Asignación de datos a la tarea Conectores. Un perímetro es una conexión entre dos elementos en una integración. Para obtener más información sobre los perímetros y las condiciones perimetrales, consulta Perímetros.
Para agregar las conexiones perimetrales, completa los siguientes pasos:
- Haz clic en el punto de control Bifurcación en la parte inferior del elemento Activador de API. Arrastra y suelta la conexión perimetral en el punto de control Union en la parte superior del elemento Asignación de datos.
- Haz clic en el punto de control Bifurcación en la parte inferior del elemento Data Mapping. Arrastra y suelta la conexión perimetral en el punto de control Unión en la parte superior del elemento Conectores.
Configura la tarea Asignación de datos
Para configurar la tarea de asignación de datos, completa los siguientes pasos:
- En el editor de integración, haz clic en la tarea Asignación de datos para ver el panel de configuración de la tarea.
- Haz clic en Abrir editor de asignación de datos.
- En el Editor de asignación de datos, haz clic en Agregar para agregar una variable nueva.
- En el diálogo Crear variable, ingresa la siguiente información:
- Nombre: ingresa record.
- Tipo de datos: selecciona JSON.
-
Esquema: Selecciona Inferir de una carga útil JSON de muestra. Ingresa la siguiente carga útil de JSON de muestra:
{ "unique_key":"304271", "created_date":"02/06/2007 12:00:00 AM", "closed_date":"03/01/2007 12:00:00 AM", "agency":"TLC", "agency_name":"Taxi and Limousine Commission", "complaint_type":"Taxi Complaint", "descriptor":"Driver Complaint", "location_type":"Street", "incident_zip":"10001", "incident_address":"", "street_name":"", "cross_street_1":"", "cross_street_2":"", "intersection_street_1":"WEST 29 STREET", "intersection_street_2":"7 AVENUE", "address_type":"INTERSECTION", "city":"NEW YORK", "landmark":"", "facility_type":"N/A", "status":"Closed", "due_date":"02/28/2007 12:00:00 AM", "resolution_action_updated_date":"03/01/2007 12:00:00 AM", "community_board":"05 MANHATTAN", "borough":"MANHATTAN", "x_coordinate_state_plane":"986215", "y_coordinate_state_plane":"211740", "park_facility_name":"", "park_borough":"MANHATTAN", "school_name":"", "school_number":"", "school_region":"", "school_code":"", "school_phone_number":"", "school_address":"", "school_city":"", "school_state":"", "school_zip":"", "school_not_found":"", "school_or_citywide_complaint":"", "vehicle_type":"", "taxi_company_borough":"", "taxi_pick_up_location":"Other", "bridge_highway_name":"", "bridge_highway_direction":"", "road_ramp":"", "bridge_highway_segment":"", "garage_lot_name":"", "ferry_direction":"", "ferry_terminal_name":"", "latitude":"40.74785373937869", "longitude":"-73.99290823133913", "location":"(40.74785373937869, -73.99290823133913)" }
- Haz clic en Crear.
- Cuando se crea la variable, en el Editor de asignación de datos, completa los siguientes pasos:
- Arrastra la variable record nueva a la columna Entrada.
- Arrastra la variable connectorInputPayload a la columna connectorInputPayload.
- Cierra el Editor de asignación de datos para volver al editor de integración.
Publica la subintegración
Para publicar la subintegración, en el editor de integraciones, haz clic en Publicar.
Configura la integración principal
En esta sección, configurarás la integración principal, que utiliza una tarea Para cada paralelo a fin de procesar cada registro. Esta integración principal invoca la subintegración una vez por cada registro.
Crea la integración principal
Para crear la integración principal, sigue estos pasos:
- En la consola de Google Cloud, ve a la página Application Integration.
- En el menú de navegación, haz clic en Integraciones. Aparecerá la página Integrations List.
- Haz clic en Crear integración.
- En el cuadro de diálogo Crear integración, haz lo siguiente:
- Ingresa un nombre, por ejemplo, ingresa process-records.
- De manera opcional, ingresa una descripción. Por ejemplo, ingresa el Activador de API para procesar registros (integración principal).
- Selecciona la región en la que quieres crear tu integración.
- Haz clic en Crear para abrir el editor de integración.
Agrega un activador de API
Para agregar un activador de API a la integración, haz lo siguiente:
- En el editor de integración, selecciona Agregar una tarea/activador > Activadores para ver una lista de los activadores disponibles.
- Arrastra el elemento Activador de API al editor de integración.
Agrega una tarea Para cada paralelo
Para agregar una tarea Para cada paralelo en la integración, completa los siguientes pasos:
- Selecciona Add a task/trigger > Tasks en el editor de integración para ver la lista de tareas disponibles.
- Arrastra el elemento Para cada paralelo al editor de integración.
Conecta los elementos de integración
A continuación, agrega una conexión perimetral para conectar el activador de API a la tarea Para cada paralelo.
Para agregar la conexión perimetral, haz clic en el punto de control Bifurcar en la parte inferior del elemento activador de API. Arrastra y suelta la conexión perimetral en el punto de control Unir en la parte superior del elemento de tarea Para cada paralelo.
Configura la tarea En paralelo
Para configurar la tarea Para cada paralelo, completa los siguientes pasos:
- En el editor de integración, haz clic en la tarea For Every Parallel para ver el panel de configuración de tareas.
- En Selección de array > Lista para iterar, haz clic en Agregar variable nueva a fin de agregar una variable nueva.
- En el diálogo Crear variable, ingresa la siguiente información:
-
Nombre: Ingresa
records
- Tipo de datos: selecciona JSON.
-
Esquema: Selecciona Inferir de una carga útil JSON de muestra. Ingresa la siguiente carga útil de JSON de muestra:
[{ "unique_key":"304271", "created_date":"02/06/2007 12:00:00 AM", "closed_date":"03/01/2007 12:00:00 AM", "agency":"TLC", "agency_name":"Taxi and Limousine Commission", "complaint_type":"Taxi Complaint", "descriptor":"Driver Complaint", "location_type":"Street", "incident_zip":"10001", "incident_address":"", "street_name":"", "cross_street_1":"", "cross_street_2":"", "intersection_street_1":"WEST 29 STREET", "intersection_street_2":"7 AVENUE", "address_type":"INTERSECTION", "city":"NEW YORK", "landmark":"", "facility_type":"N/A", "status":"Closed", "due_date":"02/28/2007 12:00:00 AM", "resolution_action_updated_date":"03/01/2007 12:00:00 AM", "community_board":"05 MANHATTAN", "borough":"MANHATTAN", "x_coordinate_state_plane":"986215", "y_coordinate_state_plane":"211740", "park_facility_name":"", "park_borough":"MANHATTAN", "school_name":"", "school_number":"", "school_region":"", "school_code":"", "school_phone_number":"", "school_address":"", "school_city":"", "school_state":"", "school_zip":"", "school_not_found":"", "school_or_citywide_complaint":"", "vehicle_type":"", "taxi_company_borough":"", "taxi_pick_up_location":"Other", "bridge_highway_name":"", "bridge_highway_direction":"", "road_ramp":"", "bridge_highway_segment":"", "garage_lot_name":"", "ferry_direction":"", "ferry_terminal_name":"", "latitude":"40.74785373937869", "longitude":"-73.99290823133913", "location":"(40.74785373937869, -73.99290823133913)" }]
-
Nombre: Ingresa
- Haz clic en Crear.
- En la sección Detalles de la subintegración, ingresa la siguiente información:
- ID del activador de API: Selecciona el elemento del activador de la API en la subintegración. Por ejemplo, selecciona Process-each-record_API_1.
- Estrategia de ejecución: Selecciona ASYNC.
- Selecciona Ejecutar una sola integración.
- En la sección En cada ejecución, en Dónde asignar elementos de array individuales, ingresa el nombre de la variable en la tarea de asignación de datos en la integración secundaria. En este caso, ingresa un registro. Las variables de subintegración solo se enumeran para las integraciones publicadas. Si las variables no aparecen en la lista, actualiza la página, ya que tarda un tiempo en aparecer después de que se publica la integración secundaria.
Publica la integración principal
Para publicar la integración principal, en el editor de integraciones, haz clic en Publicar.
Prueba tu integración
Para probar tu integración, completa los siguientes pasos:
- Descarga datos de muestra en Cloud Shell:
- Para iniciar una sesión de Cloud Shell desde la consola de Google Cloud, haz clic en el ícono Activar Cloud Shell en la consola de Cloud. Esto inicia una sesión en el panel inferior de la consola de Google Cloud.
- Ingresa el siguiente comando en tu terminal de Cloud Shell:
wget https://raw.githubusercontent.com/GoogleCloudPlatform/application-integration-samples/main/assets/bq-sample-dataset.json
- Para verificar que los datos de muestra se hayan descargado, ingresa el siguiente comando en su terminal de Cloud Shell:
ls -la bq-sample-dataset.json
El archivo descargado se muestra en la terminal de Cloud Shell.
- Para seleccionar tres entradas aleatorias del conjunto de datos de muestra y almacenarlas de manera que puedas pasarlas a la integración, ingresa los siguientes comandos en la terminal de Cloud Shell:
AUTH=$(gcloud auth print-access-token) export SAMPLE_DOCS=$(jq $(r=$((RANDOM % 1000)) ; echo ".[$r:$((r + 3))]") < bq-sample-dataset.json | jq -Rs '.') generate_post_data() { cat <<EOF { "triggerId": "api_trigger/process-records_API_1", "inputParameters": { "records": { "jsonValue": $SAMPLE_DOCS } } } EOF }
- Para comenzar las pruebas, ingresa el siguiente comando en tu terminal de Cloud Shell:
curl -X POST \ https://integrations.googleapis.com/v1/projects/project_id/locations/region/integrations/process-records:execute \ -H "Authorization: Bearer $AUTH" \ -H "Content-Type: application/json" \ -d "$(generate_post_data)"
En este comando, reemplaza lo siguiente:project_id
por el ID del proyecto de Google Cloudregion
por la región en la que creaste tu integración.
- Para verificar que tu tabla de BigQuery ahora contenga estos registros, sigue estos pasos:
- En la página de la consola de Cloud, haz clic en el Menú de navegación .
- En la sección Análisis, haz clic en BigQuery.
-
Expande tu proyecto y haz clic en el conjunto de datos
bq_tutorial
. -
Expande el conjunto de datos bq_tutorial y haz clic en la tabla
tutorial
. - Haga clic en la pestaña Explorador de tablas para ver los registros insertados.
¿Qué sigue?
Intenta crear integraciones con otros conectores. Para obtener la lista de todos los conectores compatibles, consulta la referencia del conector.