Files
fn_registry/python/functions/bigquery/bq_update_table.md
egutierrez 690e68a542 feat: add BigQuery Python functions and BQClient type
Funciones CRUD completas para BigQuery: auth, datasets, tables, queries,
jobs, routines, load/export. Tipo BQClient como wrapper del SDK oficial.
2026-04-07 18:45:02 +02:00

2.5 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_update_table function py infra 1.0.0 impure def bq_update_table(client: BQClient, dataset_id: str, table_id: str, schema: list[dict] | None = None, description: str | None = None, labels: dict | None = None) -> dict Actualiza metadatos de una tabla BigQuery: schema (solo adicion de columnas), descripcion y etiquetas. Usa client._client.update_table() del SDK oficial.
bigquery
gcp
table
update
google-cloud
python
false error_go_core
google-cloud-bigquery
name desc
client cliente autenticado BQClient obtenido con bq_auth
name desc
dataset_id ID del dataset que contiene la tabla
name desc
table_id nombre (ID) de la tabla a actualizar
name desc
schema schema completo nuevo (columnas existentes + nuevas al final). BigQuery SOLO permite agregar columnas, no eliminar ni renombrar. None = no modificar
name desc
description nueva descripcion de la tabla. None = no modificar
name desc
labels nuevas etiquetas clave-valor (reemplaza las existentes). None = no modificar
dict con la metadata actualizada de la tabla (misma estructura que bq_get_table) false
python/functions/bigquery/tables.py

Ejemplo

from bigquery import bq_auth, bq_update_table

client = bq_auth("mi-proyecto")

# Actualizar descripcion y etiquetas
tabla = bq_update_table(
    client, "ventas_ds", "transacciones",
    description="Transacciones de ventas — actualizado",
    labels={"env": "prod", "team": "data", "version": "2"},
)

# Agregar columna nueva al schema existente
tabla = bq_update_table(
    client, "ventas_ds", "transacciones",
    schema=[
        {"name": "id", "type": "INTEGER", "mode": "REQUIRED"},
        {"name": "fecha", "type": "DATE", "mode": "NULLABLE"},
        {"name": "monto", "type": "FLOAT", "mode": "NULLABLE"},
        {"name": "nueva_col", "type": "STRING", "mode": "NULLABLE"},  # nueva
    ],
)

Notas

BigQuery tiene restricciones estrictas sobre modificacion de schema: se pueden agregar columnas NULLABLE o REPEATED al final, pero NO se pueden eliminar columnas, renombrar columnas ni cambiar el tipo de una columna existente. Si se necesita ese tipo de cambio, la alternativa es crear una tabla nueva con CREATE TABLE AS SELECT. Los campos None no generan actualizacion — solo se envian al API los campos que cambian.