Introducción a SQL en BigQuery
En este documento se ofrece una descripción general de las instrucciones y los dialectos de SQL admitidos en BigQuery.
GoogleSQL es un lenguaje de consulta estructurada (SQL) que cumple el estándar ANSI y que incluye los siguientes tipos de instrucciones admitidas:
- Las instrucciones de consulta, también conocidas como instrucciones del lenguaje de consulta de datos (DQL), son el método principal para analizar datos en BigQuery. Analizan una o varias tablas o expresiones y devuelven las filas de resultados calculadas. Las instrucciones de consulta pueden incluir sintaxis de tuberías.
- Las instrucciones de lenguaje de procedimiento son extensiones de procedimiento de GoogleSQL que te permiten ejecutar varias instrucciones SQL en una sola solicitud. Las instrucciones de procedimiento pueden usar variables e instrucciones de flujo de control, y pueden tener efectos secundarios.
Las instrucciones del lenguaje de definición de datos (DDL) te permiten crear y modificar objetos como los siguientes:
- Conjuntos de datos
- Tablas, incluidos sus esquemas y tipos de columna
- Clones y capturas de tablas
- Vistas
- Functions
- Índices
- Compromisos, reservas y asignaciones de capacidad
- Políticas de acceso a nivel de fila
Las instrucciones del lenguaje de manipulación de datos (DML) te permiten actualizar, insertar y eliminar datos de tus tablas de BigQuery.
Las instrucciones del lenguaje de control de datos (DCL) te permiten controlar los recursos del sistema de BigQuery, como el acceso y la capacidad.
Las instrucciones del lenguaje de control de transacciones (TCL) te permiten gestionar las transacciones de modificaciones de datos.
Instrucciones de carga e instrucciones de exportación para gestionar los datos que entran y salen de BigQuery.
Dialectos de SQL de BigQuery
BigQuery admite el dialecto GoogleSQL, pero también está disponible un dialecto SQL antiguo. Si no tienes mucha experiencia con BigQuery, te recomendamos que uses GoogleSQL, ya que admite la mayor variedad de funciones. Por ejemplo, las funciones como las instrucciones DDL y DML solo se admiten con GoogleSQL. El SQL antiguo se mantiene para ofrecer compatibilidad con versiones anteriores. Recomendamos a los clientes que migrate si están usando SQL antiguo.
Cambiar de dialecto predeterminado
La interfaz que uses para consultar tus datos determinará qué dialecto de consulta se usará de forma predeterminada. Para cambiar a otro dialecto, sigue estos pasos:
Consola
El dialecto predeterminado de la consola de Google Cloud es GoogleSQL. Para cambiar el dialecto a SQL antiguo, sigue estos pasos:
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, haz clic en el botón Más > Configuración de consultas.
En la sección Opciones avanzadas, en Dialecto SQL, haz clic en Antiguo y, a continuación, en Guardar. De esta forma, se define la opción de SQL antiguo para esta consulta. Cuando hagas clic en add_box Consulta SQL para crear una consulta, debes volver a seleccionar la opción de SQL antiguo.
SQL
El dialecto SQL predeterminado es GoogleSQL.
Puedes definir el dialecto de SQL incluyendo el prefijo #standardSQL
o #legacySQL
como parte de tu consulta.
Estos prefijos de consulta no distinguen entre mayúsculas y minúsculas, deben preceder a la consulta y separarse de ella con un carácter de salto de línea. En el siguiente ejemplo se define el dialecto como SQL antiguo y se consulta el conjunto de datos natality:
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
#legacySQL SELECT weight_pounds, state, year, gestation_weeks FROM [bigquery-public-data:samples.natality] ORDER BY weight_pounds DESC LIMIT 10;
Haz clic en
Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.
bq
El dialecto de consulta predeterminado de la herramienta de línea de comandos bq
es el SQL antiguo. Para cambiar al dialecto GoogleSQL, añade la marca --use_legacy_sql=false
o --nouse_legacy_sql
a tu instrucción de línea de comandos.
Cambiar al dialecto GoogleSQL
Para usar la sintaxis de GoogleSQL en un trabajo de consulta, asigna el valor false
al parámetro use_legacy_sql
.
bq query \
--use_legacy_sql=false \
'SELECT
word
FROM
`bigquery-public-data.samples.shakespeare`'
Definir GoogleSQL como dialecto predeterminado
Puedes definir GoogleSQL como dialecto predeterminado para la herramienta de línea de comandos y el shell interactivo editando el archivo de configuración de la herramienta de línea de comandos:
.bigqueryrc
.
Para obtener más información sobre .bigqueryrc
, consulta Definir valores predeterminados para las marcas específicas de un comando.
Para definir --use_legacy_sql=false
en .bigqueryrc
, haz lo siguiente:
- Abre
.bigqueryrc
en un editor de texto. De forma predeterminada,.bigqueryrc
debe estar en tu directorio de usuario, por ejemplo,$HOME/.bigqueryrc
. Añade el siguiente texto al archivo. En este ejemplo, se define GoogleSQL como la sintaxis predeterminada de las consultas y del comando
mk
(que se usa al crear una vista). Si ya has configurado valores predeterminados para las marcas de comandoquery
omk
, no es necesario que vuelvas a añadir[query]
o[mk]
.[query] --use_legacy_sql=false [mk] --use_legacy_sql=false
Guarda y cierra el archivo.
Si estás usando la shell interactiva, debes salir y volver a iniciarla para que se apliquen los cambios.
Para obtener información sobre las marcas de línea de comandos disponibles, consulta la referencia de la herramienta de línea de comandos bq.
C#
Antes de probar este ejemplo, sigue las C#instrucciones 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 C# 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.
De forma predeterminada, la biblioteca de C# usa GoogleSQL.Cambiar al dialecto SQL antiguo
Para usar la sintaxis de SQL antiguo en un trabajo de consulta, asigna el valor true
al parámetro UseLegacySql
.
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.
De forma predeterminada, la biblioteca de cliente de Go usa GoogleSQL.Cambiar al dialecto SQL antiguo
Para usar la sintaxis de SQL antiguo en una tarea de consulta, asigna el valor true
a la propiedad UseLegacySQL
en la configuración de la consulta.
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.
De forma predeterminada, la biblioteca de cliente de Java usa GoogleSQL.Cambiar al dialecto SQL antiguo
Para usar la sintaxis de SQL antiguo en un trabajo de consulta, asigna el valor true
al parámetro useLegacySql
.
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.
De forma predeterminada, la biblioteca de cliente de Node.js usa GoogleSQL.Cambiar al dialecto SQL antiguo
Para usar la sintaxis de SQL antiguo en un trabajo de consulta, asigna el valor true
al parámetro useLegacySql
.
PHP
Antes de probar este ejemplo, sigue las PHPinstrucciones 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 PHP 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.
De forma predeterminada, la biblioteca de cliente de PHP usa GoogleSQL.Cambiar al dialecto SQL antiguo
Para usar la sintaxis de SQL antiguo en un trabajo de consulta, asigna el valor true
al parámetro useLegacySql
.
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.
De forma predeterminada, la biblioteca de cliente de Python usa GoogleSQL.Cambiar al dialecto SQL antiguo
Para usar la sintaxis de SQL antiguo en un trabajo de consulta, asigna el valor True
al parámetro use_legacy_sql
.
Ruby
Antes de probar este ejemplo, sigue las Rubyinstrucciones 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 Ruby 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.
De forma predeterminada, la biblioteca de cliente de Ruby usa GoogleSQL.Cambiar al dialecto SQL antiguo
Para usar la sintaxis de SQL antiguo en un trabajo de consulta, incluye la opción legacy_sql: true
en la consulta.
Siguientes pasos
- Para obtener información sobre cómo ejecutar una consulta SQL en BigQuery, consulta Ejecutar trabajos de consulta interactivos y por lotes.
- Para obtener más información sobre la optimización de consultas en general, consulta el artículo Introducción a la optimización del rendimiento de las consultas.
- Para obtener información sobre la sintaxis de GoogleSQL que se usa para consultar datos en BigQuery, consulte Sintaxis de las consultas.
- Para obtener más información sobre cómo usar la sintaxis de barra vertical en tus consultas, consulta el artículo sobre la sintaxis de barra vertical.