En esta página, se describe cómo exportar la información de tus trabajos almacenada en Batch a una tabla de BigQuery con Workflows. En particular, aprenderás a ejecutar el flujo de trabajo de exportación de trabajos de muestra y a ver la información del trabajo resultante en BigQuery.
Exportar la información de un trabajo es útil cuando deseas conservarla después de que se borra de forma automática o manual, o bien analizarla fuera de Batch. Como alternativa, si deseas exportar solo la información de cambio de estado de la tarea y el trabajo a BigQuery, consulta Supervisa trabajos con notificaciones en su lugar.
Para obtener información sobre cómo exportar la información de trabajos almacenada en otros Google Cloud servicios, consulta la documentación de exportación de ese servicio. Por ejemplo, consulta las siguientes páginas:
Antes de comenzar
- Si nunca usaste Batch, revisa Comienza a usar Batch y habilita Batch completando los requisitos previos para proyectos y usuarios.
Habilita las APIs de BigQuery y Workflows.
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin), que contiene el permisoserviceusage.services.enable. Obtén más información para otorgar roles.Opcional: Identifica un conjunto de datos o una tabla de BigQuery existentes en tu proyecto en los que deseas almacenar la información del trabajo. Una tabla existente debe tener un esquema coincidente.
De lo contrario, puedes usar el flujo de trabajo de exportación de trabajos para crear un conjunto de datos o una tabla nuevos.
-
Prepara una cuenta de servicio para el flujo de trabajo de exportación de trabajos haciendo lo siguiente:
- Crea una cuenta de servicio nueva o identifica una existente.
-
Para asegurarte de que la cuenta de servicio tenga los permisos necesarios para ejecutar el flujo de trabajo de exportación de trabajos, pídele a tu administrador que le otorgue los siguientes roles de IAM en el proyecto:
-
Escribir registros:
Escritor de registros (
roles/logging.logWriter) -
Crear y editar conjuntos de datos y tablas de BigQuery:
Administrador de BigQuery (
roles/bigquery.admin) -
Ver y borrar trabajos de Batch:
Editor de trabajos de Batch (
roles/batch.jobsEditor)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Es posible que tu administrador también pueda otorgar a la cuenta de servicio los permisos necesarios a través de roles personalizados o de otros roles predefinidos.
-
Escribir registros:
Escritor de registros (
-
Para obtener los permisos que necesitas para crear, implementar y ejecutar el flujo de trabajo de exportación de trabajos, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:
-
Ver trabajos:
Visualizador de trabajos de Batch (
roles/batch.jobsViewer) -
Ver cuentas de servicio:
Visualizador de cuentas de servicio (
roles/iam.serviceAccountViewer) -
Ver conjuntos de datos y tablas de BigQuery:
Visualizador de datos de BigQuery (
roles/bigquery.dataViewer) -
Crear, implementar y ejecutar flujos de trabajo:
Editor de flujos de trabajo (
roles/workflows.editor)
-
Ver trabajos:
Visualizador de trabajos de Batch (
-
Asegúrate de que los usuarios de tu proyecto puedan ver la información del trabajo exportada.
Para asegurarte de que un usuario tenga los permisos necesarios para exportar la información del trabajo, pídele a tu administrador que le otorgue el rol de IAM de Visualizador de datos de BigQuery (
roles/bigquery.dataViewer) en la tabla, el conjunto de datos o el proyecto.
Exporta la información del trabajo
En esta sección, se explica cómo exportar la información del trabajo con el
flujo de trabajo de exportación de trabajos, que proviene de la
export-to-bigquery muestra de código.
El flujo de trabajo de exportación de trabajos exporta la información de los trabajos de tu proyecto que se encuentran en la región especificada y cumplen con los criterios de filtro especificados.
El flujo de trabajo de exportación de trabajos exporta la información del trabajo a una tabla especificada en un conjunto de datos especificado, que el flujo de trabajo crea automáticamente si aún no existen en tu proyecto. De forma predeterminada, el flujo de trabajo de exportación de trabajos también borra los trabajos exportados de Batch, pero puedes editar el flujo de trabajo de exportación de trabajos para que no borre los trabajos.
Para cada flujo de trabajo de exportación de trabajos que desees usar, haz lo siguiente:
- Configura la definición del flujo de trabajo.
- Crea e implementa el flujo de trabajo.
- Ejecuta el flujo de trabajo. Repite este paso cada vez que desees exportar los trabajos especificados.
Configura la definición del flujo de trabajo
Descarga el
export-to-bigquery-delete-batch-jobs.yamlarchivo de GitHub.Abre el archivo
export-to-bigquery-delete-batch-jobs.yamlen un editor de texto. Luego, realiza las siguientes ediciones:Reemplaza
sys.get_env("GOOGLE_CLOUD_PROJECT_ID")por el ID del proyecto con formato de cadena, por ejemplo,"my-project-id".Reemplaza
sys.get_env("GOOGLE_CLOUD_LOCATION")por la región que contiene los trabajos que deseas exportar, con formato de cadena, por ejemplo,"us-central1".Opcional: Edita los criterios de filtro que especifican qué trabajos exportar.
De forma predeterminada, el flujo de trabajo de exportación de trabajos especifica los criterios de filtro
"(status.state:SUCCEEDED OR status.state:FAILED OR status.state:CANCELLED) AND create_time<=\"2023-05-01T00:00:00Z\"". Estos criterios de filtro predeterminados exportan información solo para los trabajos que están en el estadoSUCCEEDED,FAILEDoCANCELLEDy se crearon antes o en la2023-05-01T00:00:00Zmarca de tiempo RFC 3339.Opcional: Reemplaza
default_dataset_idpor un nombre diferente para el conjunto de datos que deseas que use o cree el flujo de trabajo de exportación de trabajos.Opcional: Reemplaza
default_table_idpor un nombre diferente de la tabla que deseas que use o cree el flujo de trabajo de exportación de trabajos.Si no deseas que el flujo de trabajo borre los trabajos exportados, haz lo siguiente:
Quita las siguientes líneas:
- log_delete_step: call: sys.log args: text: ${"Deleting Batch job " + j.name} severity: NOTICE - delete_job: call: googleapis.batch.v1.projects.locations.jobs.delete args: name: ${j.name}Quita
+ " and deleted".
Guarda el archivo. Mantén el archivo abierto.
Crea e implementa el flujo de trabajo
En la Google Cloud consola de, ve a la página Workflows:
En la página Workflows, haz clic en Crear.
En el campo Workflow name , ingresa un nombre para el flujo de trabajo, por ejemplo,
export-batch-jobs-us-central1.En la lista Service account, selecciona la cuenta de servicio que preparaste.
Haz clic en Siguiente.
En el editor de flujo de trabajo, reemplaza el flujo de trabajo de muestra por el contenido del archivo
export-to-bigquery-delete-batch-jobs.yaml. Luego, puedes cerrar el archivo.Haz clic en Implementar. Se abrirá la página Workflow details.
Ejecuta el flujo de trabajo
En la página Workflow details, haz clic en Ejecutar. Se abrirá la página Execute workflow.
En la página Execute workflow que se abre, haz clic en Execute.
En la página Execution details que se abre, espera a que el flujo de trabajo termine de ejecutarse. Por ejemplo, el tiempo de ejecución para exportar y borrar algunos trabajos suele ser de unos segundos, pero la ejecución puede tardar más si exportas y borras muchos trabajos.
Cuando el flujo de trabajo termine de ejecutarse, el panel Output mostrará los resultados.
Visualiza la información del trabajo exportada
En esta sección, se explica cómo ver los datos de la tabla creados por el flujo de trabajo de exportación de trabajos. Por ejemplo, puedes usar los siguientes pasos para verificar que el flujo de trabajo se ejecutó correctamente y explorar los datos de la tabla. Para obtener más información sobre cómo ver y usar la información del trabajo exportada, como escribir consultas, consulta Administra datos de tablas en la documentación de BigQuery.
En la Google Cloud consola de, ve a la página BigQuery.
En el panel Explorer, abre la tabla para obtener la información del trabajo exportada:
- En el campo Search BigQuery resources, ingresa el nombre de la tabla de tu flujo de trabajo de exportación de trabajos. Por ejemplo, el nombre de la tabla predeterminado es
default_table_id. - Haz clic en el nombre de la tabla. Se abrirá la página de detalles de la tabla.
En la página de detalles de la tabla, haz clic en la pestaña Details.
En la pestaña Details, toma nota de la marca de tiempo Last modified y el Number of rows.
En la página de detalles de la tabla, haz clic en la pestaña Preview.
- En el campo Search BigQuery resources, ingresa el nombre de la tabla de tu flujo de trabajo de exportación de trabajos. Por ejemplo, el nombre de la tabla predeterminado es
¿Qué sigue?
- Obtén más información sobre Workflows.
- Obtén más información sobre BigQuery.
- Obtén más información sobre Batch: