En esta página se describe cómo exportar la información de tus trabajos almacenada en Batch a una tabla de BigQuery mediante Workflows. En concreto, consulta cómo ejecutar el flujo de trabajo de exportación de ejemplo y cómo ver la información de la tarea resultante en BigQuery.
Exportar la información de un trabajo es útil cuando quieres conservarla después de que se elimine automáticamente o manualmente o cuando quieres analizarla fuera de Batch. Si quieres exportar solo la información sobre los cambios de estado de las tareas y los trabajos a BigQuery, consulta Monitorizar trabajos mediante notificaciones.
Para saber cómo exportar la información de los trabajos almacenada en otros servicios, consulta la documentación de exportación de ese servicio.Google Cloud Por ejemplo, consulta las siguientes páginas:
Antes de empezar
- Si no has usado Batch antes, consulta el artículo Empezar a usar Batch y habilita Batch completando los requisitos previos para proyectos y usuarios.
-
Enable the BigQuery and Workflows APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. Opcional: Identifica un conjunto de datos o una tabla de BigQuery de tu proyecto en el que quieras almacenar la información del trabajo. Una tabla ya creada debe tener un esquema coincidente.
De lo contrario, puedes usar el flujo de trabajo export-jobs para crear un nuevo conjunto de datos o una tabla.
-
Para preparar una cuenta de servicio para el flujo de trabajo de exportación de tareas, haz lo siguiente:
- Crea una cuenta de servicio o identifica una cuenta de servicio que ya tengas.
-
Para asegurarte de que la cuenta de servicio tiene los permisos necesarios para ejecutar el flujo de trabajo export-jobs, pide a tu administrador que le conceda los siguientes roles de gestión de identidades y accesos en el proyecto:
-
Escribir registros:
Editor de registros (
roles/logging.logWriter
) -
Crear y editar conjuntos de datos y tablas de BigQuery:
Administrador de BigQuery (
roles/bigquery.admin
) -
Para ver y eliminar tareas por lotes, sigue estos pasos:
Editor de tareas por lotes (
roles/batch.jobsEditor
)
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
Es posible que tu administrador también pueda conceder a la cuenta de servicio los permisos necesarios a través de roles personalizados u otros roles predefinidos.
-
Escribir registros:
Editor de registros (
-
Para obtener los permisos que necesitas para crear, implementar y ejecutar el flujo de trabajo de exportación de tareas, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en el proyecto:
-
Ver trabajos:
Visor de trabajos por lotes (
roles/batch.jobsViewer
) -
Ver cuentas de servicio:
Ver cuentas de servicio (
roles/iam.serviceAccountViewer
) -
Ver conjuntos de datos y tablas de BigQuery:
Lector de datos de BigQuery (
roles/bigquery.dataViewer
) -
Crear, desplegar y ejecutar flujos de trabajo:
Editor de flujos de trabajo (
roles/workflows.editor
)
-
Ver trabajos:
Visor de trabajos por lotes (
-
Asegúrate de que los usuarios de tu proyecto puedan ver la información del trabajo exportado.
Para asegurarse de que un usuario tiene los permisos necesarios para exportar información de tareas, pida a su administrador que le asigne el rol de gestión de identidades y accesos Lector de datos de BigQuery (
roles/bigquery.dataViewer
) en la tabla, el conjunto de datos o el proyecto.
Exportar información de tareas
En esta sección se explica cómo exportar información de trabajos mediante el flujo de trabajo export-jobs, que se encuentra en el export-to-bigquery
código de muestra.
El flujo de trabajo export-jobs exporta la información de los trabajos de tu proyecto que se encuentran en la región especificada y cumplen los criterios de filtro especificados.
El flujo de trabajo export-jobs exporta información de las tareas a una tabla especificada de 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 export-jobs también elimina las tareas exportadas de Batch, pero puedes editarlo para que no lo haga.
Para cada flujo de trabajo de exportación de tareas que quiera usar, haga lo siguiente:
- Configura la definición del flujo de trabajo.
- Crea y despliega el flujo de trabajo.
- Ejecuta el flujo de trabajo. Repite este paso cada vez que quieras exportar los trabajos especificados.
Configurar la definición del flujo de trabajo
Descarga el archivo
export-to-bigquery-delete-batch-jobs.yaml
de GitHub.Abre el archivo
export-to-bigquery-delete-batch-jobs.yaml
en un editor de texto. A continuación, haz los siguientes cambios:Sustituye
sys.get_env("GOOGLE_CLOUD_PROJECT_ID")
por el ID de tu proyecto con formato de cadena (por ejemplo,"my-project-id"
).Sustituye
sys.get_env("GOOGLE_CLOUD_LOCATION")
por la región que contiene los trabajos que quieres exportar. El formato debe ser una cadena, por ejemplo,"us-central1"
.Opcional: Edita los criterios del filtro que especifican qué trabajos se van a exportar.
De forma predeterminada, el flujo de trabajo export-jobs especifica los criterios de filtro
"(status.state:SUCCEEDED OR status.state:FAILED OR status.state:CANCELLED) AND create_time<=\"2023-05-01T00:00:00Z\""
. Este criterio de filtro predeterminado exporta información solo de los trabajos que están en los estadosSUCCEEDED
,FAILED
oCANCELLED
y que se crearon antes o en la marca de tiempo2023-05-01T00:00:00Z
RFC 3339.Opcional: Sustituye
default_dataset_id
por otro nombre para el conjunto de datos que quieras que use o cree el flujo de trabajo de exportación.Opcional: Sustituye
default_table_id
por otro nombre de la tabla que quieras que use o cree el flujo de trabajo export-jobs.Si no quieres que el flujo de trabajo elimine los trabajos exportados, haz lo siguiente:
Elimina 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}
Quitar
+ " and deleted"
.
Guarda el archivo. Mantén el archivo abierto.
Crear y desplegar el flujo de trabajo
En la Google Cloud consola, ve a la página Flujos de trabajo:
En la página Flujos de trabajo, haz clic en
Crear.En el campo Nombre del flujo de trabajo, introduce un nombre para el flujo de trabajo (por ejemplo,
export-batch-jobs-us-central1
).En la lista Cuenta de servicio, selecciona la que hayas preparado.
Haz clic en Siguiente.
En el editor del flujo de trabajo, sustituye el flujo de trabajo de ejemplo por el contenido del archivo
export-to-bigquery-delete-batch-jobs.yaml
. Después, puedes cerrar el archivo.Haz clic en Desplegar. Se abrirá la página Detalles del flujo de trabajo.
Ejecutar el flujo de trabajo
En la página Detalles del flujo de trabajo, haz clic en
Ejecutar. Se abrirá la página Ejecutar flujo de trabajo.En la página Ejecutar flujo de trabajo que se abre, haz clic en Ejecutar.
En la página Detalles de la ejecución que se abre, espera a que el flujo de trabajo termine de ejecutarse. Por ejemplo, el tiempo de ejecución para exportar y eliminar algunos trabajos suele ser de unos segundos, pero puede que tarde más si exportas y eliminas muchos trabajos.
Cuando el flujo de trabajo haya terminado de ejecutarse, el panel Salida mostrará los resultados.
Ver la información del trabajo exportado
En esta sección se explica cómo ver los datos de la tabla creada por el flujo de trabajo export-jobs. Por ejemplo, puedes seguir estos pasos para comprobar que el flujo de trabajo se ha ejecutado correctamente y consultar los datos de la tabla. Para obtener más información sobre cómo ver y usar la información de las tareas exportadas, como escribir consultas, consulta el artículo Gestionar datos de tablas de la documentación de BigQuery.
En la Google Cloud consola, ve a la página BigQuery:
En el panel Explorador, abra la tabla con la información del trabajo exportado:
- En el campo Buscar recursos de BigQuery, introduce el nombre de la tabla del flujo de trabajo de exportación. Por ejemplo, el nombre de 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, haga clic en la pestaña Detalles.
En la pestaña Detalles, anota la marca de tiempo Última modificación y el Número de filas.
En la página de detalles de la tabla, haga clic en la pestaña Vista previa.
- En el campo Buscar recursos de BigQuery, introduce el nombre de la tabla del flujo de trabajo de exportación. Por ejemplo, el nombre de tabla predeterminado es