Guía de inicio rápido con la herramienta de línea de comandos de bq

En esta página, se explica cómo usar la línea de comandos de bq para ejecutar consultas, cargar datos y exportar datos.

Antes de comenzar

Antes de comenzar con esta guía de inicio rápido, usa Google Cloud Console para crear o seleccionar un proyecto y, también, 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. En GCP Console, en la página de selección de proyecto, selecciona o crea un proyecto de GCP.

    Ir a la página de selección de proyecto

  3. Instala e inicializa el SDK de Cloud.
  4. BigQuery se habilita de manera automática en proyectos nuevos. Para activar BigQuery en un proyecto preexistente, dirígete a Habilita lasBigQueryAPI.

    Habilita lasAPI

  5. BigQuery proporciona una zona de pruebas si no deseas proporcionar una tarjeta de crédito o habilitar la facturación del proyecto. Los pasos de este tema funcionan para un proyecto, más allá de si el proyecto tiene o no habilitada la facturación. Si prefieres habilitar la facturación, consulta Modifica la configuración de facturación de un proyecto.

Examina una tabla

BigQuery ofrece una variedad de tablas de muestra que puedes consultar. En esta guía de inicio rápido, se ejecutarán algunas consultas en la tabla shakespeare, que contiene una entrada por cada palabra que aparece en cada obra del autor.

Para examinar el esquema de una tabla específica, ejecuta lo siguiente:

bq show projectId:datasetId.tableId

en la que se pueden omitir los ID del proyecto y del conjunto de datos, si son los valores predeterminados para tu herramienta de bq. En el siguiente ejemplo, se analiza la tabla shakespeare en el conjunto de datos samples:

bq show bigquery-public-data:samples.shakespeare

Resultado:

Table bigquery-public-data:samples.shakespeare

   Last modified                  Schema                 Total Rows   Total Bytes   Expiration
 ----------------- ------------------------------------ ------------ ------------- ------------
  26 Aug 14:43:49   |- word: string (required)           164656       6432064
                    |- word_count: integer (required)
                    |- corpus: string (required)
                    |- corpus_date: integer (required)

Ejecuta el comando de ayuda

Usa bq help para obtener información detallada sobre la herramienta de línea de comandos de bq.

bq help

Incluye un nombre de comando para obtener información sobre un comando específico. Por ejemplo, la siguiente llamada a bq help recupera información sobre el comando query.

bq help query

Ejecuta una consulta

Ejecuta una consulta para ver cuántas veces aparece la substring “raisin” en las obras de Shakespeare.

Para ejecutar una consulta, ejecuta el comando bq query "[SQL_STATEMENT]".

  • Reemplaza cualquier comilla dentro de [SQL_STATEMENT] por la marca \, o

  • Usa un tipo de comillas diferente al de las marcas circundantes (" en comparación con ').

En la siguiente consulta de SQL estándar, se realiza un conteo de palabras para la cantidad de veces que aparece la substring “raisin” en todas las obras de Shakespeare.

bq query --use_legacy_sql=false \
'SELECT
   word,
   SUM(word_count) AS count
 FROM
   `bigquery-public-data`.samples.shakespeare
 WHERE
   word LIKE "%raisin%"
 GROUP BY
   word'

Resultado:

Waiting on job_dcda37c0bbed4c669b04dfd567859b90 ... (0s) Current status:
DONE
+---------------+-------+
|     word      | count |
+---------------+-------+
| Praising      |   4   |
| raising       |   5   |
| raisins       |   1   |
| praising      |   8   |
| dispraising   |   2   |
| dispraisingly |   1   |
+---------------+-------+

Si buscas una palabra que no está en las obras de Shakespeare, no se mostrarán resultados. Por ejemplo, la siguiente búsqueda de “huzzah” no muestra ninguna coincidencia.

bq query --use_legacy_sql=false \
'SELECT
  word
FROM
  `bigquery-public-data`.samples.shakespeare
WHERE
  word = "huzzah"'

Resultado:

Waiting on job_e19 ... (4s) Current status: DONE
$

Crea una tabla nueva

Ahora, crea tu propia tabla. Cada tabla se almacena dentro de un conjunto de datos. Un conjunto de datos es un conjunto de recursos, como tablas y vistas.

Paso 1: Descarga los datos de muestra

Los datos de muestra contienen alrededor de 7 MB de datos sobre nombres de bebés populares proporcionados por la Administración del Seguro Social de EE.UU.

  1. Descarga el archivo ZIP de nombres de bebés

  2. Descomprime el archivo.

    El archivo ZIP contiene un archivo de instrucciones que describe el esquema del conjunto de datos. Obtén más información sobre el conjunto de datos.

  3. Abre el archivo llamado yob2010.txt para ver su aspecto. Es un archivo de valores separados por comas (CSV) con las siguientes tres columnas: nombre, sexo (M o F) y cantidad de niños con ese nombre. El archivo no tiene fila de encabezado.

  4. Copia o mueve el archivo yob2010.txt al directorio que estás usando para ejecutar los comandos de bq.

Paso 2: Crea un conjunto de datos nuevo

  1. Usa el comando bq ls para ver si tu proyecto predeterminado ya tiene conjuntos de datos.

    bq ls

    Resultado de muestra:

      datasetId
     -------------
      olddataset
  2. Ejecuta bq ls otra vez para generar una lista de los conjuntos de datos en un proyecto específico y, luego, incluye el ID del proyecto seguido de dos puntos (:). En el siguiente ejemplo, se genera una lista de los conjuntos de datos en el proyecto publicdata.
    bq ls publicdata:

    Resultado:

      datasetId
     -----------
      samples
  3. Usa el comando bq mk para crear un conjunto de datos nuevo llamado babynames en tu proyecto predeterminado. El nombre de un conjunto de datos puede tener hasta 1,024 caracteres y llevar mayúsculas, minúsculas, números del 0 al 9 y guion bajo, pero no puede comenzar con un número o un guion bajo ni tener espacios.
    bq mk babynames

    Resultado de muestra:

    Dataset 'myprojectid:babynames' successfully created.
  4. Ejecuta bq ls para confirmar que el conjunto de datos aparece como parte del proyecto predeterminado:
    bq ls

    Resultado de muestra:

      datasetId
     -------------
      olddataset
      babynames

Paso 3: Sube la tabla

El comando bq load crea o actualiza una tabla y carga los datos en un solo paso.

  1. Ejecuta el comando bq load para cargar tu archivo de origen en una tabla nueva llamada names2010 en el conjunto de datos babynames que acabas de crear. De forma predeterminada, este proceso se ejecuta de manera sincrónica y tarda unos segundos.

    bq load babynames.names2010 yob2010.txt name:string,gender:string,count:integer

    Los argumentos del comando bq load son los siguientes:

    • ID del conjunto de datos: babynames
    • ID de tabla: names2010
    • Fuente: yob2010.txt: si es necesario, incluye la ruta completa al archivo.
    • Esquema: name:string,gender:string,count:integer

    Resultado de muestra:

    Waiting on job_4f0c0878f6184119abfdae05f5194e65 ... (35s) Current status: DONE
  2. Ejecuta bq ls para confirmar que la tabla ahora aparece en el conjunto de datos:

    bq ls babynames

    Resultado:

       tableId    Type
     ----------- -------
      names2010   TABLE
    
  3. Ejecuta bq show para ver el esquema:

    bq show babynames.names2010

    Resultado:

    Table myprojectid:babynames.names2010
    
       Last modified         Schema         Total Rows   Total Bytes   Expiration
     ----------------- ------------------- ------------ ------------- ------------
      13 Mar 15:31:00   |- name: string     34041        653855
                        |- gender: string
                        |- count: integer
    

De manera predeterminada, cuando cargas datos, BigQuery espera que sean datos codificados en UTF-8. Si tienes datos que están codificados en ISO-8859-1 (o Latin-1) y tienes problemas con los datos cargados, puedes indicarle de forma explícita a BigQuery que trate tus datos como Latin-1 con la marca -E. Para obtener más información, consulta Usa la herramienta de línea de comandos bq.

Paso 4: Ejecuta consultas

  1. Ejecuta el siguiente comando para mostrar los nombres de niñas más populares:

    bq query "SELECT name,count FROM babynames.names2010 WHERE gender = 'F' ORDER BY count DESC LIMIT 5"

    Resultado:

    Waiting on job_58c0f5ca52764ef1902eba611b71c651 ... (0s) Current status: DONE
    +----------+-------+
    |   name   | COUNT |
    +----------+-------+
    | Isabella | 22731 |
    | Sophia   | 20477 |
    | Emma     | 17179 |
    | Olivia   | 16860 |
    | Ava      | 15300 |
    +----------+-------+
    
  2. Ejecuta el siguiente comando para ver los nombres de niños más inusuales. El conteo mínimo es de 5 porque los datos de origen omiten los nombres que aparecen menos de 5 veces.
    bq query "SELECT name,count FROM babynames.names2010 WHERE gender = 'M' ORDER BY count ASC LIMIT 5"

    Resultado:

    Waiting on job_556ba2e5aad340a7b2818c3e3280b7a3 ... (1s) Current status: DONE
    +----------+-------+
    |   name   | COUNT |
    +----------+-------+
    | Aarian   |     5 |
    | Aaidan   |     5 |
    | Aamarion |     5 |
    | Aadhavan |     5 |
    | Aaqib    |     5 |
    +----------+-------+
    

Limpieza

Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta guía de inicio rápido:

  1. Ejecuta el comando bq rm para quitar el conjunto de datos babynames. Usa la marca -r para borrar todas las tablas en el conjunto de datos, incluida la tabla names2010.

    bq rm -r babynames
    
  2. Escribe y para confirmar el comando de eliminación.

Próximos pasos

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

Enviar comentarios sobre...

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