Gestionar vistas lógicas
En este documento se describe cómo gestionar las vistas en BigQuery. Puedes gestionar tus vistas de BigQuery de las siguientes formas:
Antes de empezar
Concede roles de gestión de identidades y accesos (IAM) que proporcionen a los usuarios los permisos necesarios para realizar cada tarea de este documento. Los permisos necesarios para realizar una tarea (si los hay) se indican en la sección "Permisos necesarios" de la tarea.
Actualizar una vista
Una vez que haya creado una vista, podrá actualizar las siguientes propiedades:
Permisos obligatorios
Para actualizar una vista, necesitas los siguientes permisos de gestión de identidades y accesos:
bigquery.tables.update
bigquery.tables.get
Cada uno de los siguientes roles de gestión de identidades y accesos predefinidos incluye los permisos que necesitas para actualizar una vista:
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.admin
Además, si tienes el permiso bigquery.datasets.create
, puedes actualizar las tablas y las vistas de los conjuntos de datos que crees.
Para actualizar la consulta de SQL de una vista, también debe tener permisos para consultar cualquier tabla a la que haga referencia la consulta de SQL de la vista.
Para obtener más información sobre los roles y permisos de IAM en BigQuery, consulta el artículo sobre funciones y permisos predefinidos.
Actualizar la consulta de SQL de una vista
Para actualizar la consulta de SQL que se usa para definir una vista, puedes hacer lo siguiente:
- Usar la Google Cloud consola
- Usar el comando
bq update
de la herramienta de línea de comandos bq - Llamar al método de API
tables.patch
- Usar las bibliotecas de cliente
Puedes cambiar el dialecto de SQL de Legacy SQL a GoogleSQL en la API o en la herramienta de línea de comandos bq. No puedes actualizar una vista de SQL antiguo a GoogleSQL en la consolaGoogle Cloud .
Para actualizar la consulta SQL de una vista, sigue estos pasos:
Consola
En el panel Explorador, expande tu proyecto y tu conjunto de datos, y selecciona la vista.
Haga clic en la pestaña Detalles.
Encima del cuadro Consulta, haz clic en el botón Editar consulta. En el cuadro de diálogo que aparece, haz clic en Abrir.
Edita la consulta de SQL en el cuadro Editor de consultas y, a continuación, haz clic en Guardar vista.
Comprueba que todos los campos del cuadro de diálogo Guardar vista sean correctos y, a continuación, haz clic en Guardar.
bq
Ejecuta el comando bq update
con la marca --view
. Para usar GoogleSQL o actualizar el dialecto de la consulta de SQL antiguo a GoogleSQL, incluye la marca --use_legacy_sql
y asígnale el valor false
.
Si tu consulta hace referencia a recursos de funciones definidas por el usuario externas almacenadas en Cloud Storage o en archivos locales, usa la marca --view_udf_resource
para especificar esos recursos. Aquí no se muestra la marca --view_udf_resource
. Para obtener más información sobre cómo usar las funciones definidas por el usuario, consulta el artículo Funciones definidas por el usuario de GoogleSQL.
Si vas a actualizar una vista en un proyecto que no sea el predeterminado, añade el ID del proyecto al nombre del conjunto de datos con el siguiente formato:
project_id:dataset
.
bq update \ --use_legacy_sql=false \ --view_udf_resource=path_to_file \ --view='query' \ project_id:dataset.view
Haz los cambios siguientes:
- path_to_file: el URI o la ruta del sistema de archivos local a un archivo de código que se va a cargar y evaluar inmediatamente como un recurso de función definida por el usuario que usa la vista. Repite la marca para especificar varios archivos.
- query: una consulta de GoogleSQL válida
- project_id: tu ID de proyecto
- dataset: el nombre del conjunto de datos que contiene la vista que estás actualizando
- view: el nombre de la vista que quieres actualizar
Ejemplos
Introduce el siguiente comando para actualizar la consulta de SQL de una vista llamada myview
en mydataset
. mydataset
está en tu proyecto predeterminado. La consulta de ejemplo que se ha usado para actualizar la vista consulta datos del conjunto de datos público USA Name Data.
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
Introduce el siguiente comando para 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 la vista consulta datos del conjunto de datos público USA Name Data.
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
Para actualizar una vista, llama al método tables.patch
con un recurso de tabla que contenga una propiedad view
actualizada. Como el método tables.update
sustituye todo el recurso de la tabla, se recomienda usar el método tables.patch
.
Go
Antes de probar este ejemplo, sigue las Goinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Java
Antes de probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Node.js
Antes de probar este ejemplo, sigue las Node.jsinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Python
Antes de probar este ejemplo, sigue las Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Actualizar la fecha de vencimiento de una vista
Puedes definir una fecha de vencimiento predeterminada para las tablas a nivel del conjunto de datos (lo que afecta tanto a las tablas como a las vistas) o puedes definir la fecha de vencimiento de una vista cuando se crea. Si define la fecha de vencimiento al crear la vista, se ignorará la fecha de vencimiento predeterminada de la tabla del conjunto de datos. Si no define una caducidad de tabla predeterminada a nivel del conjunto de datos y no define una caducidad al crear la vista, la vista nunca caducará y deberá eliminarla manualmente.
En cualquier momento después de crear la vista, puede actualizar su tiempo de vencimiento de las siguientes formas:
- Usar la Google Cloud consola
- Usar una instrucción del lenguaje de definición de datos (DDL) escrita con la sintaxis de GoogleSQL
- Usar el comando
bq update
de la herramienta de línea de comandos bq - Llamar al método de API
tables.patch
- Usar las bibliotecas de cliente
Para actualizar el tiempo de vencimiento de una vista, sigue estos pasos:
Consola
En el panel de navegación, selecciona la vista que quieras.
En la página Ver detalles, haga clic en la pestaña Detalles.
A la derecha de Ver información, haz clic en el icono de edición (lápiz).
En el cuadro de diálogo Ver información, en Caducidad de la vista, haz clic en Especificar fecha.
En el selector de fecha, introduce la fecha y la hora de vencimiento y, a continuación, haz clic en Aceptar.
Haz clic en Actualizar. La hora de vencimiento actualizada aparece en la sección Ver información.
SQL
Usa la ALTER VIEW SET OPTIONS
declaración de DDL:
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
ALTER VIEW DATASET_ID.MY_VIEW SET OPTIONS ( expiration_timestamp = TIMESTAMP('NEW_TIMESTAMP'));
Haz los cambios siguientes:
- DATASET_ID: el ID del conjunto de datos que contiene la vista
- MY_VIEW: el nombre de la vista que se va a actualizar
- NEW_TIMESTAMP: un valor TIMESTAMP
Haz clic en
Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.
bq
Ejecuta el comando bq update
con la marca --expiration
. Si vas a actualizar una vista en un proyecto que no sea el predeterminado, añade el ID del proyecto al nombre del conjunto de datos con el siguiente formato:
project_id:dataset
.
bq update \ --expiration integer \ project_id:dataset.view
Sustituye lo siguiente:
- integer: el tiempo de vida predeterminado (en segundos) de la tabla. El valor mínimo es de 3600 segundos (una hora). La hora de vencimiento se calcula como la hora actual más el valor entero.
- project_id: tu ID de proyecto
- dataset: el nombre del conjunto de datos que contiene la vista que quieres actualizar
- view: el nombre de la vista que quieres actualizar
Ejemplos
Introduce el siguiente comando para actualizar el tiempo 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
Introduce el siguiente comando para actualizar el tiempo 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
Llama al método tables.patch
y usa la propiedad expirationTime
en el recurso de tabla. Como el método tables.update
sustituye todo el recurso de la tabla, se recomienda usar el método tables.patch
. Cuando usas la API REST, el vencimiento de la vista se expresa en milisegundos.
Go
Antes de probar este ejemplo, sigue las Goinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Java
Antes de probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Node.js
Antes de probar este ejemplo, sigue las Node.jsinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Python
El proceso para actualizar la fecha de vencimiento de una vista es el mismo que el de una tabla.
Antes de probar este ejemplo, sigue las Pythoninstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Actualizar la descripción de una vista
Para actualizar la descripción de una vista, sigue estos pasos:
- Usar la Google Cloud consola
- Usar una instrucción del lenguaje de definición de datos (DDL) escrita con la sintaxis de GoogleSQL
- Usar el comando
bq update
de la herramienta de línea de comandos bq - Llamar al método de API
tables.patch
- Usar las bibliotecas de cliente
Para actualizar la descripción de una vista, sigue estos pasos:
Consola
No puedes añadir una descripción cuando creas una vista con la consola Google Cloud . Una vez creada la vista, puede añadir una descripción en la página Detalles.
En el panel Explorador, expande tu proyecto y tu conjunto de datos, y selecciona la vista.
Haga clic en la pestaña Detalles.
Haz clic en el icono de lápiz situado junto a Descripción.
Escribe una descripción en el cuadro de diálogo. Haz clic en Actualizar para guardar la nueva descripción.
SQL
Usa la ALTER VIEW SET OPTIONS
declaración de DDL:
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
ALTER VIEW DATASET_ID.MY_VIEW SET OPTIONS ( description = 'NEW_DESCRIPTION');
Haz los cambios siguientes:
- DATASET_ID: el ID del conjunto de datos que contiene la vista
- MY_VIEW: el nombre de la vista que se va a actualizar
- NEW_DESCRIPTION: la nueva descripción de la vista
Haz clic en
Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.
bq
Ejecuta el comando bq update
con la marca --description
. Si vas a actualizar una vista en un proyecto que no sea el predeterminado, añade el ID del proyecto al nombre del conjunto de datos con el siguiente formato:
[PROJECT_ID]:[DATASET]
.
bq update \ --description "description" \ project_id:dataset.view
Haz los cambios siguientes:
- description: el texto que describe la vista entre comillas
- project_id: tu ID de proyecto.
- dataset: el nombre del conjunto de datos que contiene la vista que quieres actualizar
- view: el nombre de la vista que quieres actualizar
Ejemplos
Introduce el siguiente comando para cambiar la descripción de myview
en mydataset
a "Descripción de myview". mydataset
está en tu proyecto predeterminado.
bq update \
--description "Description of myview" \
mydataset.myview
Introduce el siguiente comando para cambiar la descripción de myview
en mydataset
a "Descripción de myview". mydataset
está en myotherproject
,
no en tu proyecto predeterminado.
bq update \
--description "Description of myview" \
myotherproject:mydataset.myview
API
Llama al método tables.patch
y usa la propiedad description
para actualizar la descripción de la vista
en el recurso de tabla. Como el método tables.update
sustituye todo el recurso de tabla, se recomienda usar el método tables.patch
.
Go
Antes de probar este ejemplo, sigue las Goinstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la