Ejecutar tareas mediante programación
Para ejecutar un trabajo de BigQuery de forma programática mediante la API REST o las bibliotecas de cliente, debes hacer lo siguiente:
- Llama al método
jobs.insert
. - Solicita periódicamente el recurso de trabajo y examina la propiedad de estado para saber cuándo se ha completado el trabajo.
- Comprueba si el trabajo se ha completado correctamente.
Antes de empezar
Concede roles de gestión de identidades y accesos (IAM) que proporcionen a los usuarios los permisos necesarios para realizar cada tarea de este documento.
Permisos obligatorios
Para ejecutar una tarea de BigQuery, necesitas el permiso de gestión de identidades y accesos bigquery.jobs.create
.
Cada uno de los siguientes roles de gestión de identidades y accesos predefinidos incluye los permisos que necesitas para ejecutar un trabajo:
roles/bigquery.user
roles/bigquery.jobUser
roles/bigquery.admin
Además, cuando creas un trabajo, se te conceden automáticamente los siguientes permisos para ese trabajo:
bigquery.jobs.get
bigquery.jobs.update
Para obtener más información sobre los roles y permisos de IAM en BigQuery, consulta el artículo sobre funciones y permisos predefinidos.
Tareas en ejecución
Para ejecutar una tarea mediante programación, sigue estos pasos:
Inicia el trabajo llamando al método
jobs.insert
. Cuando llames al métodojobs.insert
, incluye una representación de recurso de tarea.En la sección
configuration
del recurso de trabajo, incluye una propiedad secundaria que especifique el tipo de trabajo:load
,query
,extract
ocopy
.Después de llamar al método
jobs.insert
, comprueba el estado del trabajo llamando ajobs.get
con el ID y la ubicación del trabajo, y consulta el valor destatus.state
para saber el estado del trabajo. Cuandostatus.state
esDONE
, el trabajo ha dejado de ejecutarse. Sin embargo, el estadoDONE
no significa que el trabajo se haya completado correctamente, sino que ya no se está ejecutando.Comprueba si el trabajo se ha completado correctamente: Si el trabajo tiene una propiedad
errorResult
, significa que ha fallado. La propiedadstatus.errorResult
contiene información que describe qué ha ido mal en un trabajo fallido. Si no aparecestatus.errorResult
, significa que el trabajo se ha completado correctamente, aunque puede que se hayan producido algunos errores no fatales, como problemas al importar algunas filas en un trabajo de carga. Los errores no críticos se devuelven en la listastatus.errors
del trabajo.
Ejecutar trabajos con bibliotecas de cliente
Para crear y ejecutar un trabajo con las bibliotecas de cliente de Cloud para BigQuery, sigue estos pasos:
C#
Antes de probar este ejemplo, sigue las C#instrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API C# de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Java
Antes de probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Python
Antes de probar este ejemplo, sigue las Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Añadir etiquetas de trabajo
Las etiquetas se pueden añadir a los trabajos de consulta a través de la línea de comandos mediante la marca --label
de la herramienta de línea de comandos bq. La herramienta bq solo permite añadir etiquetas a los trabajos de consulta.
También puedes añadir una etiqueta a un trabajo cuando se envía a través de la API especificando la propiedad labels
en la configuración del trabajo al llamar al método jobs.insert
. La API se puede usar para añadir etiquetas a cualquier tipo de trabajo.
No puedes añadir ni actualizar etiquetas en trabajos pendientes, en curso o completados.
Cuando añades una etiqueta a un trabajo, esta se incluye en tus datos de facturación.
Para obtener más información, consulta Añadir etiquetas de trabajo.
Siguientes pasos
- Consulta Ejecutar consultas para ver un ejemplo de código que inicia y sondea una tarea de consulta.
- Para obtener más información sobre cómo crear una representación de recurso Job, consulta la página de descripción general de Jobs en la referencia de la API.