Actualiza propiedades de vista

En este documento, se describe cómo actualizar las propiedades de vista o metadatos. Después de crear una vista, puedes actualizar las propiedades de vista siguientes:

Permisos necesarios

Como mínimo, para actualizar una vista, debes tener los permisos bigquery.tables.update y bigquery.tables.get. Si actualizas la consulta de SQL de la vista, también debes tener permisos para consultar las tablas a las que hace referencia la consulta de SQL de la vista.

Las siguientes funciones predefinidas de Cloud IAM incluyen los permisos bigquery.tables.update y bigquery.tables.get:

  • bigquery.dataEditor
  • bigquery.dataOwner
  • bigquery.admin

Además, si un usuario tiene permisos bigquery.datasets.create, cuando cree un conjunto de datos, se le otorgará el permiso bigquery.dataOwner para acceder a este. El acceso bigquery.dataOwner permite al usuario actualizar tablas y vistas en el conjunto de datos.

Para obtener más información sobre las funciones de Cloud IAM y los permisos en BigQuery, consulta Funciones y permisos predefinidos.

Actualiza una consulta de SQL de una vista

Puedes actualizar la consulta de SQL que se usa para definir una vista si sigues estos pasos:

  • Usa Cloud Console o la IU web clásica de BigQuery.
  • Usa el comando bq update de la herramienta de línea de comandos.
  • Realiza una llamada al método de API tables.patch
  • Con las bibliotecas cliente, sigue estos pasos:

Puedes cambiar el dialecto de SQL de SQL heredado a SQL estándar en la CLI o en la API. No puedes actualizar una vista SQL heredada a SQL estándar en Cloud Console o en la IU web clásica de BigQuery.

Para actualizar la consulta de SQL de una vista, sigue estos pasos:

Console

  1. En el panel Recursos, despliega tu proyecto y el conjunto de datos, y selecciona la vista.

  2. Haz clic en la pestaña Detalles.

    Ver detalles

  3. Por encima del cuadro Consulta (Query), haz clic en el botón Editar consulta (Edit query). Haz clic en Abrir (Open) en el cuadro de diálogo que aparece.

    Editar consulta

  4. Edita la consulta de SQL en el cuadro Editor de consultas (Query editor) y, luego, haz clic en Guardar vista (Save view).

    Guardar vista

  5. Asegúrate de que todos los campos sean correctos en el cuadro de diálogo Guardar vista (Save view) y, luego, haz clic en Guardar (Save).

IU clásica

  1. Selecciona la vista.

  2. En el panel View Details (Ver detalles), haz clic en Details (Detalles).

  3. Debajo del cuadro Query (Consulta), haz clic en Edit Query (Editar consulta).

  4. Edita la consulta de SQL en el cuadro Consulta (Query) y, luego, haz clic en Guardar vista (Save view).

    Vista de actualización

CLI

Ejecuta el comando bq update con la marca --view. Si quieres usar SQL estándar o actualizar el dialecto de consulta de SQL heredado a SQL estándar, debes incluir la marca --use_legacy_sql y establecerla en false.

Si tu consulta hace referencia a recursos de funciones externas definidas por el usuario almacenadas en Google Cloud Storage o en archivos locales, usa la marca --view_udf_resource para especificar esos recursos. La marca --view_udf_resource no se muestra aquí. Para obtener más información sobre cómo usar UDF, consulta Funciones definidas por el usuario de SQL estándar.

Si actualizas una vista en un proyecto que no es tu proyecto predeterminado, debes agregar el ID del proyecto al nombre del conjunto de datos en el formato siguiente: project_id:dataset.

bq update \
--use_legacy_sql=false \
--view_udf_resource=path_to_file \
--view='query' \
project_id:dataset.view

Esta es una explicación de los parámetros del ejemplo anterior:

  • path_to_file es la ruta de URI o del sistema de archivos local a un archivo de código que se cargará y evaluará de inmediato como un recurso de función definida por el usuario que usa la vista. Repite la marca para especificar varios archivos.
  • query es una consulta de SQL estándar válida.
  • project_id es el ID del proyecto.
  • dataset es un conjunto de datos que contiene la vista.
  • view es el nombre de la vista que quieres actualizar.

Por ejemplo:

Ingresa el comando siguiente si quieres actualizar la consulta de SQL de una vista llamada myview en mydataset. mydataset está en tu proyecto predeterminado. La consulta de ejemplo que se usa para actualizar los datos de consultas de vista del conjunto de datos públicos Datos de nombres de EE.UU.

bq update \
--use_legacy_sql=false \
--view \
'SELECT
  name,
  number
FROM
  `bigquery-public-data.usa_names.usa_1910_current`
WHERE
  gender = "M"
ORDER BY
  number DESC' \
mydataset.myview

Ingresa el comando siguiente si quieres actualizar la consulta de SQL de una vista llamada myview en mydataset. mydataset está en myotherproject, no en tu proyecto predeterminado. La consulta de ejemplo que se usa para actualizar los datos de consultas de vista del conjunto de datos públicos Datos de nombres de EE.UU.

bq update \
--use_legacy_sql=false \
--view \
'SELECT
  name,
  number
FROM
  `bigquery-public-data.usa_names.usa_1910_current`
WHERE
  gender = "M"
ORDER BY
  number DESC' \
myotherproject:mydataset.myview

API

Puedes actualizar una vista si llamas al método tables.patch con un recurso de tabla que contiene una propiedad view actualizada. Debido a que con el método tables.update se reemplaza todo el recurso de la tabla, es preferible usar el método tables.patch.

Go

Antes de probar este ejemplo, sigue las instrucciones de configuración de Go incluidas en la guía de inicio rápido de BigQuery con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de BigQuery para Go.

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
view := client.Dataset(datasetID).Table(viewID)
meta, err := view.Metadata(ctx)
if err != nil {
	return err
}

newMeta := bigquery.TableMetadataToUpdate{
	// This example updates a view into the shakespeare dataset to exclude works named after kings.
	ViewQuery: "SELECT word, word_count, corpus, corpus_date FROM `bigquery-public-data.samples.shakespeare` WHERE corpus NOT LIKE '%king%'",
}

if _, err := view.Update(ctx, newMeta, meta.ETag); err != nil {
	return err
}

Python

Antes de probar este ejemplo, sigue las instrucciones de configuración de Go incluidas en la guía de inicio rápido de BigQuery con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de BigQuery para Go.

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
view := client.Dataset(datasetID).Table(viewID)
meta, err := view.Metadata(ctx)
if err != nil {
	return err
}

newMeta := bigquery.TableMetadataToUpdate{
	// This example updates a view into the shakespeare dataset to exclude works named after kings.
	ViewQuery: "SELECT word, word_count, corpus, corpus_date FROM `bigquery-public-data.samples.shakespeare` WHERE corpus NOT LIKE '%king%'",
}

if _, err := view.Update(ctx, newMeta, meta.ETag); err != nil {
	return err
}

Actualiza la fecha de vencimiento de una vista

Puedes establecer una fecha de vencimiento de una tabla predeterminada en el nivel de conjunto de datos (que afecta tanto a las tablas como a las vistas) o puedes establecer la fecha de vencimiento de una vista cuando esta se crea. Si estableces el vencimiento cuando se crea la vista, se ignora el vencimiento predeterminado de la tabla del conjunto de datos. Si no estableces un vencimiento de la tabla predeterminada en el nivel de conjunto de datos y no estableces un vencimiento cuando se crea la vista, esta nunca vence y debes borrarla de forma manual.

En cualquier momento posterior a la creación de la vista, puedes actualizar la fecha de vencimiento de la vista si sigues estos pasos:

  • Usa la IU web clásica de BigQuery
    • En este momento, Cloud  Console no admite la modificación de las fechas de vencimiento de las vistas.
  • Usa el comando bq update de la CLI
  • Realiza una llamada al método de API tables.patch
  • Con las bibliotecas cliente, sigue estos pasos:

Para actualizar la fecha de vencimiento de una vista, sigue estos pasos:

Console

  1. En el panel de navegación, selecciona tu vista.

  2. En la página de detalles de la vista, haz clic en la pestaña Detalles.

  3. A la derecha de Ver información, haz clic en el ícono de edición (lápiz).

  4. En el cuadro de diálogo Información de la vista, en Vencimiento de la vista, haz clic en Especificar fecha.

  5. En el selector de fecha, ingresa la fecha y hora de vencimiento y, luego, haz clic en Aceptar.

  6. Haz clic en Actualizar. La fecha de vencimiento actualizada aparecerá en la sección Información de la vista.

DDL

Las declaraciones del lenguaje de definición de datos (DDL) te permiten crear y modificar tablas y vistas con la sintaxis de consulta de SQL estándar.

Obtén más información sobre el Uso de declaraciones de lenguaje de definición de datos.

Para usar una declaración de DDL en Cloud Console, haz lo siguiente:

  1. Haz clic en Redactar consulta nueva.

  2. Escribe tu declaración de DDL en el área de texto Editor de consultas.

    ALTER VIEW mydataset.myview
    SET OPTIONS (
    -- Sets view expiration to timestamp 2025-02-03 12:34:56 in the America/Los Angeles time zone
    expiration_timestamp=TIMESTAMP("2025-02-03 12:34:56", "America/Los Angeles")
    );
    
  3. Haz clic en Ejecutar consulta.

IU clásica

  1. En el panel de navegación, selecciona tu vista.

  2. En la página View Details, haz clic en Details.

  3. Para Expiration Time (Hora de vencimiento), haz clic en Edit (Editar).

  4. En el cuadro de diálogo Actualizar vencimiento (Update expiration), haz clic en En (In) y, luego, ingresa la fecha de vencimiento en días.

  5. Haz clic en Aceptar (OK). La fecha de vencimiento actualizada aparecerá en la página Detalles (Details).

    Vencimiento de la vista

CLI

Ejecuta el comando bq update con la marca --expiration. Si actualizas una vista en un proyecto que no es tu proyecto predeterminado, debes agregar el ID del proyecto al nombre del conjunto de datos en el formato siguiente: project_id:dataset.

bq update \
--expiration integer \
project_id:dataset.view

Esta es una explicación de los parámetros del ejemplo anterior:

  • integer es la duración predeterminada (en segundos) de la tabla. El valor mínimo es 3,600 segundos (una hora). La fecha de vencimiento se evalúa según la hora actual más el valor del número entero.
  • project_id es el ID del proyecto.
  • dataset es el nombre del conjunto de datos que contiene la vista que actualizas.
  • view es el nombre de la vista que actualizas.

Por ejemplo:

Ingresa el comando siguiente a fin de actualizar la fecha de vencimiento de myview en mydataset a 5 días (432,000 segundos). mydataset está en tu proyecto predeterminado.

bq update --expiration 432000 mydataset.myview

Ingresa el comando siguiente a fin de actualizar la fecha de vencimiento de myview en mydataset a 5 días (432,000 segundos). mydataset está en myotherproject, no en tu proyecto predeterminado.

bq update --expiration 432000 myotherproject:mydataset.myview

API

Realiza una llamada al método tables.patch y usa la propiedad expirationTime en el recurso de tabla. Debido a que con el método tables.update se reemplaza todo el recurso de la tabla, es preferible usar el método tables.patch. Cuando usas la API de REST, el vencimiento de la vista se expresa en milisegundos.

Go

Antes de probar este ejemplo, sigue las instrucciones de configuración de Go incluidas en la Guía de inicio rápido de BigQuery con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de BigQuery para Go.

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
view := client.Dataset(datasetID).Table(viewID)
meta, err := view.Metadata(ctx)
if err != nil {
	return err
}

newMeta := bigquery.TableMetadataToUpdate{
	// This example updates a view into the shakespeare dataset to exclude works named after kings.
	ViewQuery: "SELECT word, word_count, corpus, corpus_date FROM `bigquery-public-data.samples.shakespeare` WHERE corpus NOT LIKE '%king%'",
}

if _, err := view.Update(ctx, newMeta, meta.ETag); err != nil {
	return err
}

Node.js

Antes de probar este ejemplo, sigue las instrucciones de configuración de Go incluidas en la Guía de inicio rápido de BigQuery con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de BigQuery para Go.

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
view := client.Dataset(datasetID).Table(viewID)
meta, err := view.Metadata(ctx)
if err != nil {
	return err
}

newMeta := bigquery.TableMetadataToUpdate{
	// This example updates a view into the shakespeare dataset to exclude works named after kings.
	ViewQuery: "SELECT word, word_count, corpus, corpus_date FROM `bigquery-public-data.samples.shakespeare` WHERE corpus NOT LIKE '%king%'",
}

if _, err := view.Update(ctx, newMeta, meta.ETag); err != nil {
	return err
}

Python

El método para actualizar el vencimiento de una vista es el mismo que se usa a fin de actualizar el vencimiento de una tabla.

Antes de probar este ejemplo, sigue las instrucciones de configuración de Go incluidas en la Guía de inicio rápido de BigQuery con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de BigQuery para Go.

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
view := client.Dataset(datasetID).Table(viewID)
meta, err := view.Metadata(ctx)
if err != nil {
	return err
}

newMeta := bigquery.TableMetadataToUpdate{
	// This example updates a view into the shakespeare dataset to exclude works named after kings.
	ViewQuery: "SELECT word, word_count, corpus, corpus_date FROM `bigquery-public-data.samples.shakespeare` WHERE corpus NOT LIKE '%king%'",
}

if _, err := view.Update(ctx, newMeta, meta.ETag); err != nil {
	return err
}

Actualiza la descripción de una vista

Puedes actualizar la descripción de una vista si sigues estos pasos:

  • Usa Cloud Console o la IU web clásica de BigQuery.
  • Usa el comando bq update de CLI
  • Realiza una llamada al método de API tables.patch
  • Con las bibliotecas cliente, sigue estos pasos:

Para actualizar la descripción de una vista, sigue estos pasos:

Console

Cuando creas una vista con la IU web de BigQuery, no puedes agregar una descripción. Después de crear la vista, puedes agregar una descripción en la página Detalles (Detalles).

  1. En la lista Recursos (Resources), selecciona tu vista.

  2. Haz clic en la pestaña Detalles (Details).

    Ver detalles

  3. Haz clic en el ícono de lápiz junto a Descripción (Description).

    Edita la descripción de la vista

  4. Ingresa una descripción en el cuadro de diálogo. Haz clic en Actualizar (Update) para guardar la descripción nueva.

DDL

Las declaraciones del lenguaje de definición de datos (DDL) te permiten crear y modificar tablas y vistas con la sintaxis de consulta de SQL estándar.

Obtén más información sobre el Uso de declaraciones de lenguaje de definición de datos.

Para usar una declaración de DDL en Cloud Console, haz lo siguiente:

  1. Haz clic en Redactar consulta nueva.

  2. Escribe tu declaración de DDL en el área de texto Editor de consultas.

     ALTER VIEW mydataset.myview
     SET OPTIONS (
       description="Description of myview"
     );
     

  3. Haz clic en Ejecutar consulta.

IU clásica

  1. En el panel de navegación, selecciona tu vista.

  2. En la página View Details, haz clic en Details.

  3. En la sección Description (Descripción), haz clic en Describe this view (Describir esta vista) para abrir el cuadro de descripción.

  4. Ingresa una descripción en el cuadro. Cuando haces clic fuera del cuadro, el texto se guarda.

    Descripción de la tabla

CLI

Ejecuta el comando bq update con la marca --description. Si actualizas una vista en un proyecto que no es tu proyecto predeterminado, debes agregar el ID del proyecto al nombre del conjunto de datos en el formato siguiente: [PROJECT_ID]:[DATASET].

bq update \
--description "description" \
project_id:dataset.view

Esta es una explicación de los parámetros del ejemplo anterior:

  • description es el texto que describe la vista entre comillas.
  • project_id es el ID del proyecto.
  • dataset es el nombre del conjunto de datos que contiene la vista que actualizas.
  • view es el nombre de la vista que actualizas.

Por ejemplo:

Ingresa el comando siguiente para cambiar la descripción de myview en mydataset a “Descripción de mi vista” (Description of myview). mydataset está en tu proyecto predeterminado.

bq update --description "Description of myview" mydataset.myview

Ingresa el comando siguiente para cambiar la descripción de myview en mydataset a “Descripción de mi vista” (Description of myview). mydataset está en myotherproject, no en tu proyecto predeterminado.

bq update \
--description "Description of myview" \
myotherproject:mydataset.myview

API

Realiza una llamada al método tables.patch y usa la propiedad description para actualizar la descripción de la vista en el recurso de tabla. Debido a que con el método tables.update se reemplaza todo el recurso de la tabla, es preferible usar el método tables.patch.

Go

Antes de probar este ejemplo, sigue las instrucciones de configuración de Go incluidas en la Guía de inicio rápido de BigQuery con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de BigQuery para Go.

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
view := client.Dataset(datasetID).Table(viewID)
meta, err := view.Metadata(ctx)
if err != nil {
	return err
}

newMeta := bigquery.TableMetadataToUpdate{
	// This example updates a view into the shakespeare dataset to exclude works named after kings.
	ViewQuery: "SELECT word, word_count, corpus, corpus_date FROM `bigquery-public-data.samples.shakespeare` WHERE corpus NOT LIKE '%king%'",
}

if _, err := view.Update(ctx, newMeta, meta.ETag); err != nil {
	return err
}

Java

Actualizar la descripción de una vista es el mismo proceso que actualizar la descripción de una tabla.

Antes de probar este ejemplo, sigue las instrucciones de configuración de Go incluidas en la Guía de inicio rápido de BigQuery con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de BigQuery para Go.

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
view := client.Dataset(datasetID).Table(viewID)
meta, err := view.Metadata(ctx)
if err != nil {
	return err
}

newMeta := bigquery.TableMetadataToUpdate{
	// This example updates a view into the shakespeare dataset to exclude works named after kings.
	ViewQuery: "SELECT word, word_count, corpus, corpus_date FROM `bigquery-public-data.samples.shakespeare` WHERE corpus NOT LIKE '%king%'",
}

if _, err := view.Update(ctx, newMeta, meta.ETag); err != nil {
	return err
}

Node.js

Antes de probar este ejemplo, sigue las instrucciones de configuración de Go incluidas en la Guía de inicio rápido de BigQuery con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de BigQuery para Go.

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
view := client.Dataset(datasetID).Table(viewID)
meta, err := view.Metadata(ctx)
if err != nil {
	return err
}

newMeta := bigquery.TableMetadataToUpdate{
	// This example updates a view into the shakespeare dataset to exclude works named after kings.
	ViewQuery: "SELECT word, word_count, corpus, corpus_date FROM `bigquery-public-data.samples.shakespeare` WHERE corpus NOT LIKE '%king%'",
}

if _, err := view.Update(ctx, newMeta, meta.ETag); err != nil {
	return err
}

Python

Actualizar la descripción de una vista es el mismo proceso que actualizar la descripción de una tabla.

Antes de probar este ejemplo, sigue las instrucciones de configuración de Go incluidas en la Guía de inicio rápido de BigQuery con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de BigQuery para Go.

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
view := client.Dataset(datasetID).Table(viewID)
meta, err := view.Metadata(ctx)
if err != nil {
	return err
}

newMeta := bigquery.TableMetadataToUpdate{
	// This example updates a view into the shakespeare dataset to exclude works named after kings.
	ViewQuery: "SELECT word, word_count, corpus, corpus_date FROM `bigquery-public-data.samples.shakespeare` WHERE corpus NOT LIKE '%king%'",
}

if _, err := view.Update(ctx, newMeta, meta.ETag); err != nil {
	return err
}

Pasos siguientes

  • Si quieres obtener más información sobre la administración de vistas, incluso su copia y borrado, consulta Administra vistas.
  • Para obtener información sobre cómo crear vistas, consulta Crea vistas.
  • Para obtener información sobre cómo crear una vista autorizada, consulta Crea vistas autorizadas.
  • Para obtener información sobre las vistas de lista, consulta la página sobre listas de vistas.
  • Para obtener más información sobre cómo obtener metadatos de vistas, consulta Obtén información sobre las vistas.
¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.