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
En la consola de Google Cloud, ve a la página de BigQuery.
En el panel Explorador, expande los nodos del proyecto y del conjunto de datos de la instantánea de la tabla que deseas actualizar.
Haz clic en el nombre de la instantánea de la tabla.
En el panel de la instantánea que aparece, haz clic en la pestaña Detalles y, luego, en Editar detalles.
En el campo Descripción, agrega o actualiza la descripción de la instantánea de tabla.
Haz clic en Guardar.
bq
Escribe el siguiente comando en 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
En la consola de Google Cloud, ve a la página de BigQuery.
En el panel Explorador, expande los nodos del proyecto y del conjunto de datos de la instantánea de la tabla que deseas actualizar.
Haz clic en el nombre de la instantánea de la tabla.
En el panel de la instantánea que aparece, haz clic en la pestaña Detalles y, luego, en Editar detalles.
En el campo Hora de vencimiento, ingresa la hora de vencimiento nueva de la instantánea de la tabla.
Haz clic en Guardar.
bq
Escribe el siguiente comando en 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
En la consola de Google Cloud, ve a la página de BigQuery.
En el panel Explorador, expande los nodos del proyecto y del conjunto de datos de la instantánea de la tabla que deseas actualizar.
Haz clic en el nombre de la instantánea de la tabla.
En el panel de instantánea que aparece, haz clic en Compartir y, luego, en Agregar principal.
En el panel Agregar principales que aparece, ingresa el identificador del principal al que deseas otorgar acceso la instantánea de la tabla.
En el menú desplegable Selecciona un rol, elige BigQuery y, luego, Visualizador de datos de BigQuery.
Haz clic en Guardar.
bq
Escribe el siguiente comando en 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?
- Enumera instantáneas de tablas en un conjunto de datos.
- Visualiza los metadatos de una instantánea de tabla.
- Borra una instantánea de tabla