Usa la herramienta de línea de comandos bq

bq es una herramienta de línea de comandos basada en Python para BigQuery. En esta página, se proporciona información general sobre el uso de la herramienta de línea de comandos bq.

Para obtener una referencia completa de todos los comandos y marcas de bq, consulta la referencia de la herramienta de línea de comandos bq.

Antes de comenzar

Antes de poder usar la herramienta de línea de comandos de BigQuery, debes usar Google Cloud Platform Console para crear o seleccionar un proyecto y, luego, instalar el SDK de Cloud.

  1. Accede a tu Cuenta de Google.

    Si todavía no tienes una cuenta, regístrate para obtener una nueva.

  2. Selecciona o crea un proyecto de GCP.

    Ir a la página Administrar recursos

  3. Realiza la instalación y la inicialización del SDK de Cloud.
  4. BigQuery se habilita de forma automática en proyectos nuevos. Para activar BigQuery en un proyecto preexistente, dirígete a Habilita las BigQuery API necesarias.

    Habilita las API

    .
  5. BigQuery proporciona una zona de pruebas si no deseas proporcionar una tarjeta de crédito o habilitar la facturación en tu proyecto. Los pasos de este tema funcionan para un proyecto sin importar si tiene habilitada la facturación o no. Si prefieres habilitar la facturación, consulta la sección sobre cómo habilitar la facturación.

En lugar de descargar el SDK de Cloud para instalarlo, puedes usar una versión preinstalada del SDK de Cloud en Google Cloud Shell.

Uso general

Posicionamiento de marcas

bq admite dos tipos de marcas: marcas globales y marcas de comando. Deben usarse en el orden que se muestra aquí:

bq --global_flag argument bq_command --command-specific_flag argument
  • Las marcas globales (o marcas comunes) se pueden usar en todos los comandos.
  • Las marcas específicas de comando se aplican a un comando específico.

Separa múltiples marcas globales o específicas de comando con un espacio. Por ejemplo:

bq \
--global_flag argument \
--global_flag argument \
bq_command \
--command-specific_flag argument \
--command-specific_flag argument

Puedes especificar argumentos de comando de una de las siguientes maneras:

  • --flag=argument
  • --flag='argument'
  • --flag="argument"
  • --flag argument
  • --flag 'argument'
  • --flag "argument"

Cada uno de estos métodos se usa durante toda la documentación de BigQuery.

Algunos comandos requieren el uso de comillas simples o dobles alrededor de los argumentos. Esto suele ser verdadero cuando el argumento contiene espacios, comas o algunos otros caracteres especiales. Por ejemplo:

bq query --nouse_legacy_sql \
'SELECT
   COUNT(*)
 FROM
   `bigquery-public-data`.samples.shakespeare'

Las marcas con valores booleanos se pueden especificar sin un argumento. Si especificas true o false, debes especificar =argument.

Por ejemplo, el siguiente comando especifica falso para la marca booleana --use_legacy_sql cuando colocas no antes de la marca:

bq query --nouse_legacy_sql \
'SELECT
   COUNT(*)
 FROM
   `bigquery-public-data`.samples.shakespeare'

De manera alternativa, para especificar false como el argumento de la marca, debes ingresar el siguiente comando:

bq query --use_legacy_sql=false \
'SELECT
   COUNT(*)
 FROM
   `bigquery-public-data`.samples.shakespeare'

Para obtener una lista de las marcas globales y específicas de comando disponibles, consulta la referencia de la herramienta de línea de comandos bq.

Obtén ayuda

Puedes ingresar los siguientes comandos para obtener ayuda relacionada con la herramienta de línea de comandos bq:

  • Para obtener la versión instalada de bq, ingresa bq version.
  • Para obtener una lista completa de comandos, ingresa bq help.
  • Para obtener una lista de las marcas globales, ingresa bq --help.
  • Para obtener ayuda sobre un comando específico, ingresa bq help command.
  • Para obtener ayuda sobre un comando específico y, también, una lista de las marcas globales, ingresa bq command --help.

Depuración

Puedes ingresar los siguientes comandos para depurar bq:

  • Para ver solicitudes enviadas y recibidas, realiza lo siguiente:
    Agrega la marca --apilog=path_to_file para guardar un registro de operaciones en un archivo local. bq funciona mediante llamadas a la API basada en REST estándar, que pueden ser útiles de ver. También es útil adjuntar este registro cuando se informa sobre problemas. El uso de - o stdout en lugar de una ruta de archivo imprimirá el registro en la consola. La configuración de --apilog como stderr da como resultado el archivo de error estándar.
  • Para ayudar a solucionar errores, realiza lo siguiente:
    Ingresa la marca --format=prettyjson cuando obtengas el estado de un trabajo o cuando veas información detallada sobre recursos, como tablas y conjuntos de datos. El uso de esta marca genera la respuesta en formato JSON, incluida la propiedad reason. Puedes usar la propiedad reason a fin de buscar los pasos para la solución de problemas.

Configura los valores predeterminados para marcas de línea de comandos

A fin de establecer valores predeterminados para las marcas de línea de comandos, inclúyelos en el archivo de configuración de la herramienta de línea de comandos .bigqueryrc. Antes de configurar tus opciones predeterminadas, primero debes crear un archivo .bigqueryrc. Puedes usar tu editor de texto preferido para crear el archivo. Después de crear el archivo .bigqueryrc, puedes especificar la ruta al archivo usando la marca global --bigqueryrc.

Si la marca --bigqueryrc no se especifica, se usa la variable de entorno BIGQUERYRC. Si eso no se especifica, se usa la ruta ~/.bigqueryrc. La ruta de acceso predeterminada es $HOME/.bigqueryrc.

Agrega marcas a .bigqueryrc

A fin de agregar valores predeterminados para las marcas de línea de comandos .bigqueryrc:

  • Coloca las marcas globales en la parte superior del archivo sin un encabezado.
  • Para las marcas específicas de comando, ingresa el nombre del comando (entre paréntesis) y agrega las marcas específicas de comando (una por línea) debajo de este en el siguiente formato:
command
--command-specific_flag=argument
--command-specific_flag=argument

Cuando ingresas las marcas de línea de comandos en .bigqueryrc, debes especificar el argumento de la marca en el siguiente formato: =argument.

.bigqueryrc se lee cada vez que ejecutas bq, por lo que los cambios se deben actualizar de inmediato. Cuando ejecutas bq en modo interactivo (bq shell), debes reiniciar el shell para que los cambios se apliquen.

Ejemplo

Este ejemplo configura valores predeterminados para los siguientes marcadores globales:

  • --apilog está configurado en stdout para imprimir la salida de depuración en la consola.
  • --format está configurado en prettyjson para mostrar el resultado del comando en un formato JSON legible.
  • --location está configurado en la ubicación multirregión US.

En este ejemplo, se establecen valores predeterminados para las siguientes marcas específicas de comando de query:

  • --use_legacy_sql está configurado en false para hacer que SQL estándar sea la sintaxis de consulta predeterminada.

  • --max_rows está configurado en 100 para controlar el número de filas en el resultado de la consulta.

  • --maximum_bytes_billed está configurado en 10,000,000 bytes (10 MB) para fallar las consultas que leen más de 10 MB de datos.

En este ejemplo, se configura un valor predeterminado para la siguiente marca específica de comando load:

  • --destination_kms_key está configurado en projects/myproject/locations/mylocation/keyRings/myRing/cryptoKeys/myKey.
credential_file = path_to_credential_file
--apilog=stdout
--format=prettyjson
--location=US

[query]
--use_legacy_sql=false
--max_rows=100
--maximum_bytes_billed=10000000

[load]
--destination_kms_key=projects/myproject/locations/mylocation/keyRings/myRing/cryptoKeys/myKey

Para confirmar tu configuración, ingresa el siguiente comando:

cat ~/.bigqueryrc

Ejecuta bq en un shell interactivo

Puedes ejecutar bq en un shell interactivo donde no necesitas prefijar los comandos con bq. Para iniciar el modo interactivo, ingresa bq shell. Después de iniciar el shell, la solicitud cambia al ID de tu proyecto predeterminado. Para salir del modo interactivo, ingresa exit.

Ejemplos

Puedes encontrar ejemplos de línea de comandos en la sección de guías prácticas de la documentación de BigQuery. A continuación, se encuentran vínculos a tareas comunes de la línea de comandos, como crear, obtener, enumerar, borrar y modificar recursos de BigQuery.

Crea recursos

A fin de obtener información sobre el uso de la herramienta de línea de comandos para crear recursos, consulta:

Para ver ejemplos de cómo crear una tabla con un archivo de datos, consulta Carga datos.

Obtén información sobre los recursos

A fin de obtener información sobre el uso de la herramienta de línea de comandos para obtener información sobre los recursos, consulta:

Muestra una lista de recursos

A fin de obtener información sobre el uso de la herramienta de línea de comandos para listar recursos, consulta:

Actualiza recursos

Si deseas obtener información sobre el uso de la herramienta de línea de comandos para actualizar recursos, consulta los siguientes vínculos:

Carga datos

Si deseas obtener información sobre el uso de la herramienta de línea de comandos para cargar datos, consulta los siguientes vínculos:

Consulta datos

A fin de obtener información sobre el uso de la herramienta de línea de comandos para consultar datos, consulta:

Usa fuentes de datos externas

A fin de obtener información sobre el uso de la herramienta de línea de comandos para consultar datos en fuentes de datos externos, consulta:

Exporta datos

A fin de obtener información sobre el uso de la herramienta de línea de comandos para exportar datos, consulta:

Usa el Servicio de transferencia de datos de BigQuery

Si deseas obtener información sobre el uso de la herramienta de línea de comandos con el Servicio de transferencia de datos de BigQuery, consulta los siguientes vínculos:

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

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