Actualizar metadatos de capturas de tablas

En este documento se describe cómo actualizar la descripción, la fecha de vencimiento o la política de acceso de una instantánea de una tabla mediante la consola Google Cloud , el comando bq update o la API tables.patch. Está dirigido a usuarios que conocen las tablas y las instantáneas de tablas de BigQuery.

Permisos y roles

En esta sección se describen los permisos de gestión de identidades y accesos (IAM) que necesitas para actualizar los metadatos de una instantánea de una tabla, así como los roles de IAM predefinidos que conceden esos permisos.

Permisos

Para actualizar los metadatos de una captura de tabla, necesitas el siguiente permiso:

Permiso Recurso
bigquery.tables.update La captura de tabla

Roles

Los roles predefinidos de BigQuery que proporcionan el permiso necesario son los siguientes:

Role Recurso
Cualquiera de las siguientes:

bigquery.dataEditor
bigquery.dataOwner
biguqery.admin
La captura de tabla

Limitaciones

Puedes actualizar los metadatos de una captura de tabla, pero no sus datos, ya que son de solo lectura. Para actualizar los datos de una captura de tabla, primero debes restaurar la captura de tabla en una tabla estándar y, a continuación, actualizar los datos de la tabla estándar. Para obtener más información, consulta Restaurar copias de una tabla.

Actualizar los metadatos de una captura de tabla

Puedes cambiar la descripción, la fecha de vencimiento y las políticas de acceso de una instantánea de tabla de la misma forma que cambias los metadatos de una tabla estándar. En las secciones siguientes se ofrecen algunos ejemplos.

Actualizar la descripción

Para cambiar la descripción de una tabla de resumen, puedes usar una de las siguientes opciones:

Consola

  1. En la Google Cloud consola, ve a la página BigQuery.

    Ir a BigQuery

  2. En el panel Explorador, despliega los nodos del proyecto y del conjunto de datos de la instantánea de tabla que quieras actualizar.

  3. Haga clic en el nombre de la instantánea de la tabla.

  4. En el panel de vista general que aparece, haz clic en la pestaña Detalles y, a continuación, en Editar detalles.

  5. En el campo Descripción, añade o actualiza la descripción de la instantánea de la tabla.

  6. Haz clic en Guardar.

bq

Introduce el siguiente comando en Cloud Shell:

Ir a Cloud Shell

bq update \
--description="DESCRIPTION" \
PROJECT_ID:DATASET_NAME.SNAPSHOT_NAME

Haz los cambios siguientes:

  • DESCRIPTION: texto que describe la captura. Por ejemplo, Snapshot after table schema change X..
  • PROJECT_ID: el ID del proyecto que contiene la captura.
  • DATASET_NAME: el nombre del conjunto de datos que contiene la instantánea.
  • SNAPSHOT_NAME: el nombre de la captura.

API

Llama al método tables.patch con los siguientes parámetros:

Parámetro Valor
projectId El ID del proyecto que contiene la captura.
datasetId Nombre del conjunto de datos que contiene la instantánea.
tableId Nombre de la instantánea.
Campo description del cuerpo de la solicitud Texto que describe la captura. Por ejemplo, Snapshot after table schema change X.

Te recomendamos que uses el método tables.patch en lugar del método tables.update, ya que este último sustituye todo el recurso Table.tables.update

Actualizar la caducidad

Puedes cambiar la fecha de vencimiento de una instantánea de una tabla con una de las siguientes opciones:

Consola

  1. En la Google Cloud consola, ve a la página BigQuery.

    Ir a BigQuery

  2. En el panel Explorador, despliega los nodos del proyecto y del conjunto de datos de la instantánea de tabla que quieras actualizar.

  3. Haga clic en el nombre de la instantánea de la tabla.

  4. En el panel de vista general que aparece, haz clic en la pestaña Detalles y, a continuación, en Editar detalles.

  5. En el campo Tiempo de vencimiento, introduce el nuevo tiempo de vencimiento de la instantánea de la tabla.

  6. Haz clic en Guardar.

bq

Introduce el siguiente comando en Cloud Shell:

Ir a Cloud Shell

bq update \
--expiration=EXPIRATION_TIME \
PROJECT_ID:DATASET_NAME.SNAPSHOT_NAME

Haz los cambios siguientes:

  • EXPIRATION_TIME: el número de segundos que faltan para que caduque desde el momento actual.
  • PROJECT_ID: el ID del proyecto que contiene la captura.
  • DATASET_NAME: el nombre del conjunto de datos que contiene la instantánea.
  • SNAPSHOT_NAME: el nombre de la captura.

API

Llama al método tables.patch con los siguientes parámetros:

Parámetro Valor
projectId El ID del proyecto que contiene la captura.
datasetId Nombre del conjunto de datos que contiene la instantánea.
tableId Nombre de la instantánea.
Campo expirationTime del cuerpo de la solicitud La hora en la que caduca la instantánea, en milisegundos desde el inicio del registro de tiempo.

Te recomendamos que uses el método tables.patch en lugar del método tables.update, ya que este último sustituye todo el recurso Table.tables.update

Actualizar acceso

Puede dar acceso a un usuario para que vea los datos de una instantánea de tabla mediante una de las siguientes opciones:

Consola

  1. En la Google Cloud consola, ve a la página BigQuery.

    Ir a BigQuery

  2. En el panel Explorador, despliega los nodos del proyecto y del conjunto de datos de la instantánea de tabla que quieras actualizar.

  3. Haga clic en el nombre de la instantánea de la tabla.

  4. En el panel de información general que aparece, haz clic en Compartir y, a continuación, en Añadir principal.

  5. En el panel Añadir principales que aparece, introduce el identificador del principal al que quieras dar acceso a la instantánea de la tabla.

  6. En el menú desplegable Seleccionar un rol, elige BigQuery y, a continuación, Lector de datos de BigQuery.

  7. Haz clic en Guardar.

bq

Introduce el siguiente comando en Cloud Shell:

Ir a Cloud Shell

bq add-iam-policy-binding \
    --member="user:PRINCIPAL" \
    --role="roles/bigquery.dataViewer" \
    PROJECT_ID:DATASET_NAME.SNAPSHOT_NAME

Haz los cambios siguientes:

  • PRINCIPAL: el principal al que quieres dar acceso a la captura de la tabla.
  • PROJECT_ID: el ID del proyecto que contiene la captura.
  • DATASET_NAME: el nombre del conjunto de datos que contiene la instantánea.
  • SNAPSHOT_NAME: el nombre de la captura.

API

Llama al método tables.setIamPolicy con los siguientes parámetros:

Parámetro Valor
Resource
projects/PROJECT_ID/datasets/DATASET_NAME/tables/SNAPSHOT_NAME
Cuerpo de la solicitud
{
      "policy": {
        "bindings": [
          {
            "members": [
              "user:PRINCIPAL"
            ],
            "role": "roles/bigquery.dataViewer"
          }
        ]
      }
    }

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto que contiene la captura.
  • DATASET_NAME: el nombre del conjunto de datos que contiene la instantánea.
  • SNAPSHOT_NAME: el nombre de la captura.
  • PRINCIPAL: el principal al que quieres dar acceso a la captura de la tabla.

Siguientes pasos