9f5e6791db
Funciones CRUD completas para BigQuery: auth, datasets, tables, queries, jobs, routines, load/export. Tipo BQClient como wrapper del SDK oficial.
1.7 KiB
1.7 KiB
name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
| name | kind | lang | domain | version | purity | signature | description | tags | uses_functions | uses_types | returns | returns_optional | error_type | imports | params | output | tested | tests | test_file_path | file_path | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| bq_cancel_job | function | py | infra | 1.0.0 | impure | def bq_cancel_job(client: BQClient, job_id: str) -> dict | Cancela un job en ejecucion. Retorna el estado tras la cancelacion. |
|
false | error_go_core |
|
|
dict con campos: job_id (string), state (string, tipicamente 'DONE' tras la cancelacion) | false | python/functions/bigquery/jobs.py |
Ejemplo
from bigquery.client import bq_auth
from bigquery.jobs import bq_list_jobs, bq_cancel_job
client = bq_auth("my-project")
# Cancelar todos los jobs en ejecucion
running = bq_list_jobs(client, state_filter="running")
for job in running:
result = bq_cancel_job(client, job["job_id"])
print(f"Cancelado {result['job_id']}: {result['state']}")
Notas
Lanza google.api_core.exceptions.NotFound si el job_id no existe en el proyecto.
BigQuery no garantiza cancelacion inmediata: el job puede seguir procesando brevemente antes de detenerse. El estado retornado refleja el estado al momento de la respuesta de la API, que tipicamente es "DONE".
Cancelar un job ya completado o ya cancelado no genera error; la API lo acepta de forma idempotente y retorna el estado actual.
Solo el usuario que creo el job o un administrador del proyecto puede cancelarlo.