En esta página, se describe cómo exportar la información de tus trabajos que se almacena en Batch a una tabla de BigQuery mediante flujos de trabajo. Específicamente, aprende a ejecutar el flujo de trabajo de export-jobs 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 borre automáticamente o de forma manual, o bien analizarla fuera de Batch. Como alternativa, si solo quieres exportar información de cambio de estado de tareas y trabajos a BigQuery, consulta Cómo supervisar trabajos con notificaciones.
Para obtener información sobre cómo exportar información de trabajos que se almacena en otros servicios deGoogle Cloud , consulta la documentación de exportación de ese servicio. Por ejemplo, consulta las siguientes páginas:
Antes de comenzar
- Si nunca usaste Batch, consulta Cómo comenzar a usar Batch y habilita Batch completando los requisitos previos para proyectos y usuarios.
-
Enable the BigQuery and Workflows APIs.
Opcional: Identifica un conjunto de datos o una tabla de BigQuery existentes en tu proyecto en el 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 trabajos de exportación para crear un conjunto de datos o una tabla nuevos.
-
Para preparar una cuenta de servicio para el flujo de trabajo de trabajos de exportación, haz lo siguiente:
- Crea una cuenta de servicio nueva o identifica una cuenta de servicio existente.
-
Para garantizar que la cuenta de servicio tenga los permisos necesarios para ejecutar el flujo de trabajo de trabajos de exportación, pídele a tu administrador que le otorgue a la cuenta de servicio los siguientes roles de IAM en el proyecto:
-
Para escribir registros, usa el Escritor de registros (
roles/logging.logWriter
). -
Crear y editar tablas y conjuntos de datos de BigQuery:
Administrador de BigQuery (
roles/bigquery.admin
) -
Ver y borrar trabajos por lotes:
Editor de trabajos por lotes (
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 mediante roles personalizados o con otros roles predefinidos.
-
Para escribir registros, usa el Escritor de registros (
-
Para obtener los permisos que necesitas para crear, implementar y ejecutar el flujo de trabajo de trabajos de exportación, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:
-
Ver trabajos:
Visualizador 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: 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 por lotes (
-
Asegúrate de que los usuarios de tu proyecto puedan ver la información de la tarea exportada.
Para garantizar que un usuario tenga los permisos necesarios para exportar información de trabajos, 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.
Cómo exportar información de trabajos
En esta sección, se explica cómo exportar información de trabajos con el flujo de trabajo de export-jobs, que proviene de la muestra de código export-to-bigquery
.
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 de los trabajos 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 los borre.
Para cada flujo de trabajo de exportación de trabajos que quieras 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 quieras exportar las tareas especificadas.
Configura la definición del flujo de trabajo
Descarga el archivo
export-to-bigquery-delete-batch-jobs.yaml
desde GitHub.Abre el archivo
export-to-bigquery-delete-batch-jobs.yaml
en un editor de texto. Luego, realiza las siguientes modificaciones:Reemplaza
sys.get_env("GOOGLE_CLOUD_PROJECT_ID")
por el ID de tu 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 export-jobs especifica los criterios de filtro
"(status.state:SUCCEEDED OR status.state:FAILED) AND create_time<=\"2023-05-01T00:00:00Z\""
. Este criterio de filtro predeterminado exporta información solo para los trabajos que se encuentran en el estadoSUCCEEDED
oFAILED
y que se crearon antes de la marca de tiempo2023-05-01T00:00:00Z
RFC 3339 o por esta.Opcional: Reemplaza
default_dataset_id
por un nombre diferente para el conjunto de datos que deseas que el flujo de trabajo de trabajos de exportación use o cree.Opcional: Reemplaza
default_table_id
por un nombre diferente de la tabla que deseas que el flujo de trabajo de exportación de trabajos use o cree.Si no quieres 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 consola de Google Cloud, ve a la página Workflows.
En la página Flujos de trabajo, haz clic en
Crear.En el campo Nombre del flujo de trabajo, ingresa un nombre para el flujo de trabajo, por ejemplo,
export-batch-jobs-us-central1
.En la lista Cuenta de servicio, selecciona la cuenta de servicio que preparaste.
Haz clic en Siguiente.
En el editor de flujos de trabajo, reemplaza el flujo de trabajo de ejemplo 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 Detalles del flujo de trabajo.
Ejecuta 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 borrar algunos trabajos suele ser de unos segundos, pero la ejecución puede tardar más si exportas y borras muchos trabajos.
Cuando se termina de ejecutar el flujo de trabajo, el panel Resultado muestra los resultados.
Cómo ver la información del trabajo exportado
En esta sección, se muestra cómo ver los datos de la tabla que crea el flujo de trabajo de trabajos de exportación. 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 de los trabajos exportados, como escribir consultas, consulta Cómo administrar datos de tablas en la documentación de BigQuery.
En la consola de Google Cloud, ve a la página de BigQuery:
En el panel Explorador, abre la tabla de la información de tu trabajo exportado:
- En el campo Buscar recursos de BigQuery, ingresa el nombre de la tabla de tu flujo de trabajo de trabajos de exportación. 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 Detalles.
En la pestaña Detalles, toma nota de la marca de tiempo Última modificación y del Número de filas.
En la página de detalles de la tabla, haz clic en la pestaña Vista previa.
- En el campo Buscar recursos de BigQuery, ingresa el nombre de la tabla de tu flujo de trabajo de trabajos de exportación. 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: