Crea vistas
En este documento, se describe cómo crear vistas en BigQuery.
Puedes crear una vista en BigQuery de las siguientes maneras:
- Usa la consola de Google Cloud.
- Usa el comando
bq mk
de la herramienta de línea de comandos de bq. - Mediante una llamada al método de la API
tables.insert
- Usa bibliotecas cliente.
- Mediante el envío de una declaración de lenguaje de definición de datos (DDL)
CREATE VIEW
Limitaciones de las vistas
Las vistas de BigQuery están sujetas a las siguientes limitaciones:
- Las vistas son de solo lectura. Por ejemplo, no puedes ejecutar consultas que inserten, actualicen o borren datos.
- El conjunto de datos que contiene la vista y el conjunto de datos que contiene las tablas a las que hace referencia la vista deben estar en la misma ubicación.
- Una referencia dentro de una vista se debe calificar con un conjunto de datos. El conjunto de datos predeterminado no afecta el cuerpo de una vista.
- No puedes usar el método
TableDataList
de la API de JSON para recuperar datos desde una vista. Para obtener más información, consulta Tabledata: list. - No puedes mezclar consultas de SQL y GoogleSQL heredado cuando se usan vistas. Una consulta de GoogleSQL no puede hacer referencia a una vista definida mediante la sintaxis de SQL heredado.
- No puedes hacer referencia a parámetros de consulta en vistas.
- Los esquemas de las tablas subyacentes se almacenan con la vista cuando esta se crea. Si se agregan, borran o cambian columnas después de crear la vista, esta no se actualizará de forma automática y el esquema informado seguirá siendo inexacto hasta que se cambie la definición de SQL de la vista o se vuelva a crear la vista. A pesar de que el esquema informado puede ser inexacto, todas las consultas enviadas producen resultados precisos.
- No puedes actualizar de forma automática una vista de SQL heredado en la sintaxis de GoogleSQL. Para cambiar la consulta usada para definir una vista, puedes usar lo siguiente:
- La opción Editar consulta en la consola de Google Cloud
- El comando
bq update --view
en la herramienta de línea de comandos de bq - Las bibliotecas cliente de BigQuery
- Los métodos de la API de actualización o parche.
- No puedes incluir una función temporal definida por el usuario ni una tabla temporal en la consulta de SQL que define una vista.
- No puedes hacer referencia a una vista en una consulta de tabla comodín.
Para obtener más información sobre las cuotas y los límites que se aplican a las vistas, consulta la página sobre límites de vistas.
Antes de comenzar
Otorga roles de Identity and Access Management (IAM) que les brindan a los usuarios los permisos necesarios para hacer cada tarea de este documento.
Permisos necesarios
Las vistas se tratan como recursos de tabla en BigQuery, por lo que la creación de una vista requiere los mismos permisos que la creación de una tabla. También debes tener permisos para consultar las tablas a las que hace referencia la consulta en SQL de la vista.
Para crear una vista, necesitas el permiso bigquery.tables.create
de IAM. El rol predefinido de IAM roles/bigquery.dataEditor
incluye los permisos que necesitas para crear una configuración.
Además, si tienes el permiso bigquery.datasets.create
, puedes crear vistas en los conjuntos de datos que crees. Si deseas crear una vista para datos que no son de tu propiedad, debes tener el permiso bigquery.tables.getData
para esa tabla.
Para obtener más información sobre los roles y los permisos de IAM en BigQuery, consulta Roles y permisos predefinidos.
Nombres de las vistas
Cuando creas una vista en BigQuery, el nombre de la vista debe ser único por conjunto de datos. El nombre de la vista puede:
- Contiene caracteres con un total de hasta 1,024 bytes UTF-8.
- Caracteres Unicode en la categoría L (letra), M (marca), N (número), Pc (conector, incluido el guion bajo), Pd (raya) y Zs (espacio) Para obtener más información, consulta la Categoría general.
Los siguientes son ejemplos de nombres de vistas válidos: view 01
, ग्राहक
, 00_お客様
y étudiant-01
.
Advertencias:
- Los nombres de tablas distinguen entre mayúsculas y minúsculas de forma predeterminada.
mytable
yMyTable
pueden coexistir en el mismo conjunto de datos, a menos que sean parte de un conjunto de datos con la distinción entre mayúsculas y minúsculas desactivada. - Algunos nombres de vista y prefijos de nombres de vistas están reservados. Si recibes un error que indica que el nombre o prefijo de la vista está reservado, elige un nombre diferente y vuelve a intentarlo.
Si incluyes varios operadores de punto (
.
) en una secuencia, los operadores duplicados se quitan de forma implícita.Por ejemplo, esto:
project_name....dataset_name..table_name
Se convierte en esto:
project_name.dataset_name.table_name
Crear una vista
Puedes crear una vista; para ello, redacta una consulta de SQL que se use con el fin de definir los datos a los que puede acceder la vista. La consulta de SQL debe constar de una instrucción SELECT
.
Otros tipos de declaraciones (como las declaraciones DML) y las consultas de varias declaraciones no están permitidas en las consultas de vista.
Para crear una vista, haz lo siguiente:
Console
Después de ejecutar una consulta, haz clic en el botón Save view (Guardar vista) ubicado por encima de la ventana de resultados de la consulta para guardarla como vista.
En el cuadro de diálogo Guardar vista, haz lo siguiente:
- En Nombre del proyecto, elige un proyecto para almacenar la vista.
- En Nombre del conjunto de datos, elige un conjunto de datos para almacenar la vista. El conjunto de datos que contiene la vista y el conjunto de datos que contiene las tablas a las que hace referencia la vista deben estar en la misma ubicación.
- En Nombre de la tabla, ingresa el nombre de la vista.
- Haz clic en Guardar.
SQL
Usa la sentencia CREATE VIEW
.
En el siguiente ejemplo, se crea una vista llamada usa_male_names
a partir del conjunto de datos públicos de nombres de EE.UU.
En la consola de Google Cloud, ve a la página de BigQuery.
En el editor de consultas, escribe la siguiente sentencia:
CREATE VIEW mydataset.usa_male_names(name, number) AS ( SELECT name, number FROM
bigquery-public-data.usa_names.usa_1910_current
WHERE gender = 'M' ORDER BY number DESC );Haz clic en
Ejecutar.
Si deseas obtener información sobre cómo ejecutar consultas, visita Ejecuta una consulta interactiva.
bq
Usa el comando bq mk
con la marca --view
. Para las consultas de GoogleSQL, agrega la marca --use_legacy_sql
y establécela en false
. Algunos parámetros opcionales incluyen --add_tags
, --expiration
, --description
y --label
Para obtener una lista completa de los parámetros, consulta la referencia del comando bq mk
.
Si tu consulta hace referencia a recursos de funciones externas definidas por el usuario (UDF)
almacenadas en 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 el uso de las UDF, consulta UDF.
Si creas una vista en un proyecto que no es tu proyecto predeterminado, especifica el ID del proyecto con la marca --project_id
.
bq mk \ --use_legacy_sql=false \ --view_udf_resource=PATH_TO_FILE \ --expiration=INTEGER \ --description="DESCRIPTION" \ --label=KEY_1:VALUE_1 \ --add_tags=KEY_2:VALUE_2[,...] \ --view='QUERY' \ --project_id=PROJECT_ID \ DATASET.VIEW
Reemplaza lo siguiente:
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 UDF que usa la vista. Repite la marca para especificar varios archivos.INTEGER
establece la duración (en segundos) de la vista. SiINTEGER
es0
, la vista no vence. Si no incluyes la marca--expiration
, BigQuery crea la vista con la vida útil predeterminada de la tabla del conjunto de datos.DESCRIPTION
es una descripción de la vista entre comillas.KEY_1:VALUE_1
es el par clave-valor que representa una etiqueta. Repite la marca--label
para especificar varias etiquetas.KEY_2:VALUE_2
es el par clave-valor que representa una etiqueta. Agrega varias etiquetas bajo la misma marca con comas entre pares clave-valor.QUERY
es una consulta válida.PROJECT_ID
es el ID del proyecto (si no tienes un proyecto predeterminado configurado).DATASET
es un conjunto de datos en tu proyecto.VIEW
es el nombre de la vista que deseas crear.
Ejemplos:
Ingresa el siguiente comando para crear una vista llamada myview
en mydataset
en tu proyecto predeterminado. El vencimiento se establece en 3,600 segundos (1 hora), la descripción se establece en This is my view
y la etiqueta se establece en organization:development
. La consulta usada para crear los datos de las consultas de vistas desde el conjunto de datos públicos Datos de nombres de EE.UU.
bq mk \
--use_legacy_sql=false \
--expiration 3600 \
--description "This is my view" \
--label organization:development \
--view \
'SELECT
name,
number
FROM
`bigquery-public-data.usa_names.usa_1910_current`
WHERE
gender = "M"
ORDER BY
number DESC' \
mydataset.myview
Ingresa el siguiente comando para crear una vista llamada myview
en mydataset
en myotherproject
. La descripción se configura como
This is my view
, la etiqueta se configura como organization:development
y el vencimiento de la vista se establece en el vencimiento predeterminado de la tabla del
conjunto de datos.
La consulta usada para crear los datos de las consultas de vistas desde el conjunto de datos públicos Datos de nombres de EE.UU.
bq mk \
--use_legacy_sql=false \
--description "This is my view" \
--label organization:development \
--project_id myotherproject \
--view \
'SELECT
name,
number
FROM
`bigquery-public-data.usa_names.usa_1910_current`
WHERE
gender = "M"
ORDER BY
number DESC' \
mydataset.myview
Después de crear la vista, puedes actualizar su hora de vencimiento, descripción y etiquetas. Para obtener más información, consulta Actualiza vistas.
Terraform
Usa el recurso google_bigquery_table
.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
En el siguiente ejemplo, se crea una vista llamada myview
:
Para aplicar tu configuración de Terraform en un proyecto de Google Cloud, completa los pasos de las siguientes secciones.
Prepara Cloud Shell
- Inicia Cloud Shell
-
Establece el proyecto de Google Cloud predeterminado en el que deseas aplicar tus configuraciones de Terraform.
Solo necesitas ejecutar este comando una vez por proyecto y puedes ejecutarlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si configuras valores explícitos en el archivo de configuración de Terraform.
Prepara el directorio
Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).
-
En Cloud Shell, crea un directorio y un archivo nuevo dentro de ese directorio. El nombre del archivo debe tener la extensión
.tf
, por ejemplo,main.tf
. En este instructivo, el archivo se denominamain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si sigues un instructivo, puedes copiar el código de muestra en cada sección o paso.
Copia el código de muestra en el
main.tf
recién creado.De manera opcional, copia el código de GitHub. Esto se recomienda cuando el fragmento de Terraform es parte de una solución de extremo a extremo.
- Revisa y modifica los parámetros de muestra que se aplicarán a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo debes hacerlo una vez por directorio.
terraform init
De manera opcional, incluye la opción
-upgrade
para usar la última versión del proveedor de Google:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y verifica que los recursos que creará o actualizará Terraform coincidan con tus expectativas:
terraform plan
Corrige la configuración según sea necesario.
-
Para aplicar la configuración de Terraform, ejecuta el siguiente comando y, luego, escribe
yes
cuando se te solicite:terraform apply
Espera hasta que Terraform muestre el mensaje “¡Aplicación completa!”.
- Abre tu proyecto de Google Cloud para ver los resultados. En la consola de Google Cloud, navega a tus recursos en la IU para asegurarte de que Terraform los haya creado o actualizado.
API
Llama al método tables.insert
con un recurso de tabla que contenga una propiedad view
.
Go
Antes de probar este ejemplo, sigue las instrucciones de configuración para Go incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Go.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración para Node.js incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Node.js.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Python.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Después de crear la vista, puedes consultarla de la misma manera que consultas una tabla.
Ver la seguridad
Para controlar el acceso a las vistas en BigQuery, consulta Vistas autorizadas.
¿Qué sigue?
- Para obtener información sobre cómo crear una vista autorizada, consulta Crea vistas autorizadas.
- Para conocer el método sobre cómo obtener metadatos de vistas, consulta Obtén información sobre las vistas.
- Para obtener más información sobre cómo administrar vistas, consulta Administra vistas.