Actualizar metadatos de instantáneas 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 tabla mediante la consola de Google Cloud, el comando bq update o la API de tables.patch. Está dirigido a usuarios familiarizados con tablas e instantáneas de tablas en BigQuery.

Permisos y funciones

En esta sección, se describe los permisos de administración de identidades y accesos (IAM) que necesitas para actualizar los metadatos de una instantánea de tabla y las funciones predefinidas de IAM que otorgan esos permisos.

Permisos

Para actualizar los metadatos de una instantánea de tabla, necesitas el siguiente permiso:

Permiso Recurso
bigquery.tables.update La instantánea de tabla

Funciones

A continuación, se enumeran los roles predefinidos de BigQuery que proporcionan el permiso necesario:

Función Recurso
Cualquiera de los siguientes:

bigquery.dataEditor
bigquery.dataOwner
biguqery.admin
La instantánea de tabla

Limitaciones

Puedes actualizar los metadatos de una instantánea de tabla, pero no puedes actualizar sus datos porque estos son de solo lectura. Para actualizar los datos de una instantánea de tabla, primero debes restablecer la instantánea de la tabla a una tabla estándar y, luego, actualizar los datos de la tabla estándar. Para obtener más información, consulta Restablece instantáneas de tablas.

Obtén los metadatos de una instantánea de tabla

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

Actualiza la descripción

Puedes cambiar la descripción de una instantánea de tabla con una de las siguientes opciones:

Console

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

    Ir a BigQuery

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

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

  4. En el panel de la instantánea que aparece, haz clic en la pestaña Detalles y, luego, en Editar detalles.

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

  6. Haz clic en Guardar.

bq

Escribe el siguiente comando en Cloud Shell:

Ir a Cloud Shell

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

Reemplaza lo siguiente:

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

API

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

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

Es preferible usar el método tables.patch en lugar del método tables.update, ya que el método tables.update reemplaza todo el recurso Table.

Actualiza el vencimiento

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

Console

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

    Ir a BigQuery

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

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

  4. En el panel de la instantánea que aparece, haz clic en la pestaña Detalles y, luego, en Editar detalles.

  5. En el campo Hora de vencimiento, ingresa la hora de vencimiento nueva de la instantánea de la tabla.

  6. Haz clic en Guardar.

bq

Escribe el siguiente comando en Cloud Shell:

Ir a Cloud Shell

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

Reemplaza lo siguiente:

  • EXPIRATION_TIME: Es la cantidad de segundos desde la hora actual hasta la fecha de vencimiento.
  • PROJECT_ID: El ID del proyecto que contiene la instantánea.
  • DATASET_NAME: Es el nombre del conjunto de datos que contiene la instantánea.
  • SNAPSHOT_NAME: Es el nombre de la instantánea.

API

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

Parámetro Valor
projectId El ID del proyecto que contiene la instantánea
datasetId El nombre del conjunto de datos que contiene la instantánea.
tableId El nombre de la instantánea.
Campo de expirationTime del cuerpo de la solicitud El tiempo en que vence la instantánea, en milisegundos desde la época.

Es preferible usar el método tables.patch en lugar del método tables.update, ya que el método tables.update reemplaza todo el recurso Table.

Actualiza el acceso.

Puedes otorgar a un usuario acceso para ver los datos en una instantánea de tabla con una de las siguientes opciones:

Console

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

    Ir a BigQuery

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

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

  4. En el panel de instantánea que aparece, haz clic en Compartir y, luego, en Agregar principal.

  5. En el panel Agregar principales que aparece, ingresa el identificador del principal al que deseas otorgar acceso la instantánea de la tabla.

  6. En el menú desplegable Selecciona un rol, elige BigQuery y, luego, Visualizador de datos de BigQuery.

  7. Haz clic en Guardar.

bq

Escribe 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

Reemplaza lo siguiente:

  • PRINCIPAL: el principal al que deseas otorgar acceso a la instantánea de la tabla.
  • PROJECT_ID: El ID del proyecto que contiene la instantánea.
  • DATASET_NAME: Es el nombre del conjunto de datos que contiene la instantánea.
  • SNAPSHOT_NAME: Es el nombre de la instantánea.

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"
          }
        ]
      }
    }

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto que contiene la instantánea.
  • DATASET_NAME: Es el nombre del conjunto de datos que contiene la instantánea.
  • SNAPSHOT_NAME: Es el nombre de la instantánea.
  • PRINCIPAL: el principal al que deseas otorgar acceso a la instantánea de la tabla.

¿Qué sigue?