BigQuery admite dos dialectos de SQL: SQL estándar y SQL heredado. En este tema, se describe cómo configurar el dialecto de consulta cuando consultas datos de BigQuery. Puedes usar SQL estándar o el dialecto SQL heredado.
Para aprender a consultar datos mediante Google Cloud Console, consulta la guía de inicio rápido sobre el uso de Cloud Console.
Para aprender a consultar datos mediante la herramienta de línea de comandos de bq
, consulta la guía de inicio rápido sobre el uso de la herramienta de línea de comandos de bq
.
Cambia el dialecto predeterminado
La interfaz que usas para consultar tus datos determina qué dialecto de consulta es el predeterminado:
- En Cloud Console y las bibliotecas cliente, el SQL estándar es el predeterminado.
- En la herramienta de línea de comandos de
bq
y la API de REST, SQL heredado es la opción predeterminada.
Para cambiar a un dialecto diferente, sigue estos pasos:
Console
El dialecto predeterminado para Cloud Console es SQL estándar. Para cambiar el dialecto a SQL heredado, haz lo siguiente:
Si es necesario, haz clic en Redactar consulta nueva para abrir la ventana del editor de consultas.
Debajo del editor de consultas, haz clic en Más > Configuración de consulta.
Haz clic en Opciones avanzadas.
En la sección Configuración adicional, para el Dialecto SQL, haz clic en Heredado. Esto establece la opción de SQL heredado para esta consulta. Cuando haces clic en Redactar consulta nueva para crear una consulta nueva, debes volver a seleccionar la opción SQL heredado.
bq
El dialecto predeterminado para las consultas en la herramienta de línea de comandos de bq
es SQL heredado. Para cambiar al dialecto SQL estándar, agrega las marcas --use_legacy_sql=false
o --nouse_legacy_sql
a tu declaración de línea de comandos.
Por ejemplo:
bq query \ --use_legacy_sql=false \ 'SELECT word FROM `bigquery-public-data.samples.shakespeare`'
C#
Antes de probar este ejemplo, sigue las instrucciones de configuración para C# incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de C# de BigQuery.
Cuando se ejecuta una consulta, se usa SQL estándar de forma predeterminada.
Usa SQL heredado
Para usar SQL heredado en la ejecución de consultas, configura el parámetro “UseLegacySql” como “true”.
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. Si deseas obtener más información, consulta la documentación de referencia de la API de Go de BigQuery.
De forma predeterminada, la biblioteca cliente de Go usa SQL estándar.
Usa SQL heredado
Para cambiar una consulta a SQL heredado, aprovecha la propiedad UseLegacySQL
dentro de la configuración de la consulta.
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.
Según la configuración predeterminada, la biblioteca cliente de Java usa SQL estándar.
Usa SQL heredado
Configura el parámetro useLegacySql
como true
para usar la sintaxis de SQL heredado en un trabajo de consulta.
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 Node.js de BigQuery.
De forma predeterminada, la biblioteca cliente de Node.js usa SQL estándar.
Usa SQL heredado
Configura el parámetro useLegacySql
como true
para usar la sintaxis de SQL heredado en un trabajo de consulta.
PHP
Antes de probar este ejemplo, sigue las instrucciones de configuración para PHP que se encuentran en la Guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de PHP de BigQuery.
De forma predeterminada, la biblioteca cliente de PHP usa SQL estándar.
Usa SQL heredado
Configura el parámetro useLegacySql
como true
para usar la sintaxis de SQL heredado en un trabajo de consulta.
Python
Antes de probar esta muestra, 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. Si deseas obtener más información, consulta la documentación de referencia de la API de Python de BigQuery.
De forma predeterminada, la biblioteca cliente de Python usa SQL estándar.
Usa SQL heredado
Configura el parámetro use_legacy_sql
como True
para usar la sintaxis de SQL heredado en un trabajo de consulta.
Ruby
Antes de probar este ejemplo, sigue las instrucciones de configuración para Ruby incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. A fin de obtener más información, consulta la documentación de referencia de la API de BigQuery para Ruby.
De forma predeterminada, la biblioteca cliente de Ruby usa SQL estándar.
Usa un prefijo de consulta en Cloud Console
También puedes configurar el dialecto de SQL en Cloud Console si incluyes uno en tu consulta.
Los siguientes prefijos te permiten configurar el dialecto SQL:
Prefijo | Descripción |
---|---|
#legacySQL |
Ejecuta la consulta con SQL heredado. |
#standardSQL |
Ejecuta la consulta con SQL estándar. |
En Cloud Console, cuando usas un prefijo de consulta, la opción Dialecto SQL está inhabilitada en la Configuración de consulta.
Por ejemplo, si copias y pegas la siguiente consulta en Cloud Console, BigQuery ejecuta la consulta con SQL heredado y, también, ignora la configuración predeterminada. La configuración predeterminada para Cloud Console es SQL estándar.
#legacySQL
SELECT
weight_pounds, state, year, gestation_weeks
FROM
[bigquery-public-data:samples.natality]
ORDER BY weight_pounds DESC
LIMIT 10;
Los prefijos de consulta #legacySQL
y #standardSQL
tienen las siguientes características:
- NO distinguen entre mayúsculas y minúsculas.
- Deben preceder a la consulta.
- Deben estar separados de la consulta por un carácter de línea nueva.
Es posible que algunas herramientas de terceros no admitan este prefijo si, por ejemplo, modifican el texto de la consulta antes de enviarla a BigQuery.
Establece SQL estándar como la configuración predeterminada de la herramienta de línea de comandos
Puedes establecer SQL estándar como la sintaxis predeterminada de la herramienta de línea de comandos y la shell interactiva si editas el archivo de configuración de la herramienta de línea de comandos: .bigqueryrc
.
Si deseas obtener más información sobre .bigqueryrc
, consulta Configura los valores predeterminados para marcas de línea de comandos.
Para configurar --use_legacy_sql=false
en .bigqueryrc
, haz lo siguiente:
Abre
.bigqueryrc
en un editor de texto. De forma predeterminada,.bigqueryrc
debe aparecer en el directorio de usuarios, por ejemplo,$HOME/.bigqueryrc
.Agrega el siguiente texto al archivo. En este ejemplo, se establece SQL estándar como la sintaxis predeterminada para las consultas y el comando
mk
(que se usa cuando se crea una vista). Si ya configuraste los valores predeterminados para las marcas de comandoquery
omk
, no es necesario que vuelvas a agregar[query]
o[mk]
.[query] --use_legacy_sql=false [mk] --use_legacy_sql=false
Guarda y cierra el archivo.
Si usas la shell interactiva, debes salir y reiniciar para que se apliquen los cambios.
Si deseas obtener información sobre las marcas de línea de comandos disponibles, consulta Referencia de la herramienta de línea de comandos.