Ejecuta trabajos de manera programática
La API de REST y las bibliotecas cliente de BigQuery te permiten crear y
administrar trabajos asíncronos para automatizar las operaciones de carga, consulta, extracción y copia
desde tus aplicaciones. Después de iniciar un trabajo con una llamada al método
jobs.insert,
puedes sondear la propiedad de estado del recurso del trabajo para hacer un seguimiento de cuándo se completa la ejecución
y confirmar si la operación se realizó correctamente.
Antes de comenzar
Otorga roles de Identity and Access Management (IAM) que les brindan a los usuarios los permisos necesarios para hacer cada tarea de este documento.
Permisos necesarios
Para ejecutar un trabajo de BigQuery, necesitas el permiso bigquery.jobs.create de IAM.
Cada una de las siguientes funciones predefinidas de IAM incluye los permisos que necesitas para ejecutar un trabajo:
roles/bigquery.userroles/bigquery.jobUserroles/bigquery.admin
Además, cuando creas un trabajo, se te otorgan los siguientes permisos de forma automática:
bigquery.jobs.getbigquery.jobs.update
Para obtener más información sobre las funciones y los permisos de IAM en BigQuery, consulta Funciones y permisos predefinidos.
Ejecuta trabajos
Para ejecutar un trabajo de manera programática, haz lo siguiente:
Para iniciar el trabajo, llama al método
jobs.insert. Cuando llames al métodojobs.insert, incluye una representación de recurso de trabajo.En la sección
configurationdel recurso de trabajo, incluye una propiedad secundaria que especifique el tipo de trabajo:load,query,extractocopy.Después de llamar al método
jobs.insert, verifica el estado del trabajo llamando ajobs.getcon el ID de tarea y la ubicación, y verifica el valor destatus.statepara conocer el estado del trabajo. Cuandostatus.stateesDONE, el trabajo deja de ejecutarse; sin embargo, un estadoDONEno significa que el trabajo se completó de forma correcta, solo que ya no se está ejecutando.Comprueba si el trabajo se realizó de forma correcta. Si el trabajo tiene una propiedad
errorResult, significa que el trabajo falló. La propiedadstatus.errorResultcontiene información que describe lo que salió mal en un trabajo con errores. Sistatus.errorResultestá ausente, el trabajo se completó de forma correcta, aunque puede haber algunos errores recuperables, como problemas cuando se importan algunas filas. Los errores recuperables se muestran en la listastatus.errorsdel trabajo.
Ejecuta trabajos mediante bibliotecas cliente
Si quieres crear y ejecutar un trabajo mediante las bibliotecas cliente de Cloud para BigQuery, haz lo siguiente:
C#
Antes de probar este ejemplo, sigue las instrucciones de configuración para C# incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para C#.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Python.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Agrega etiquetas de trabajo
Se pueden agregar etiquetas a los trabajos de consulta con la marca --label en la herramienta de línea de comandos de bq. La herramienta bq admite que se agreguen etiquetas solo a trabajos de consulta.
También puedes agregar una etiqueta a un trabajo cuando se envía a través de la API si especificas la propiedad labels en la configuración del trabajo cuando llamas al método jobs.insert. La API se puede usar para agregar etiquetas a cualquier tipo de trabajo.
No puedes agregar ni actualizar etiquetas en trabajos pendientes, en ejecución o completados.
Cuando agregas una etiqueta a un trabajo, la etiqueta se incluye en tus datos de facturación.
Para obtener más información, consulta Agrega etiquetas de trabajo.
¿Qué sigue?
- Consulta Ejecuta una consulta para obtener un ejemplo de código que inicia y sondea un trabajo de consulta.
- Para obtener más información sobre cómo crear una representación de recurso de trabajo, consulta la página de descripción general de trabajos en la referencia de API.