Inicio rápido mediante la herramienta de línea de comandos de bq

En esta guía de inicio rápido, se explica cómo usar la herramienta de línea de comandos de bq para ejecutar consultas y cargar datos en BigQuery.

Antes de comenzar

  1. En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  2. Si usas un proyecto preexistente, habilita la API de BigQuery. BigQuery se habilita automáticamente en proyectos nuevos.

    Habilita la API

  3. Opcional: Habilita la facturación para el proyecto. Si no deseas habilitar la facturación ni proporcionar una tarjeta de crédito, los pasos que se indican en este documento seguirán funcionando. BigQuery proporciona una zona de pruebas para realizar los pasos.
  4. En Cloud Console, activa Cloud Shell.

    Activar Cloud Shell

    En esta guía de inicio rápido, ejecutarás todos los comandos de la herramienta de bq en Cloud Shell desde Cloud Console.

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 de Shakespeare.

  • Examina la tabla shakespeare en el conjunto de datos samples:

     bq show bigquery-public-data:samples.shakespeare

    Este comando de ejemplo examina el esquema de una tabla específica. Si los ID del proyecto y del conjunto de datos son los valores predeterminados para tu herramienta de bq, puedes omitirlos en el comando bq show y solo especificar el ID de la tabla:

     bq show shakespeare

    El resultado es similar a este:

    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

  1. Visualiza la información detallada sobre la herramienta bq:

    bq help
  2. Ve la información sobre un comando específico:

    bq help query

    En este ejemplo, la llamada a bq help recupera información sobre el comando bq query.

Ejecute una consulta

  1. Para ver cuántas veces aparece la substring raisin en las obras de Shakespeare, ejecuta una consulta con el comando bq query:

    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'

    El resultado es similar a este:

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

  2. Para ver cuántas veces aparece la substring huzzah en las obras de Shakespeare, ejecuta la siguiente consulta:

    bq query --use_legacy_sql=false \
    'SELECT
     word
    FROM
     `bigquery-public-data`.samples.shakespeare
    WHERE
     word = "huzzah"'
    
    Como la substring no aparece en las obras de Shakespeare, no se muestran resultados.

    El resultado es similar a este:

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

Crea una tabla nueva

En las siguientes secciones, crearás una tabla nueva y la reemplazarás en un conjunto de datos nuevo.

Descarga los datos de muestra

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

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

    El archivo ZIP contiene un archivo llamado NationalReadMe.pdf que describe el esquema del conjunto de datos. Obtenga más información sobre el conjunto de datos.

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

  3. Copia o mueve el archivo yob2010.txt al directorio en el que ejecutas la herramienta de línea de comandos de bq. Si ejecutas la herramienta de línea de comandos de bq en Cloud Shell, sube el archivo yob2010.txt. Para obtener más información, consulta Administra archivos con Cloud Shell.

Cree un conjunto de datos nuevo

  1. Verifica si tu proyecto predeterminado ya tiene conjuntos de datos:

    bq ls
        

    El resultado es similar a este:

      datasetId
     -------------
      olddataset
  2. Para enumerar los conjuntos de datos en un proyecto específico, incluye el ID del proyecto seguido de dos puntos (:):
    bq ls publicdata:

    En este ejemplo, se enumeran los conjuntos de datos en el proyecto publicdata.

    El resultado es similar a este:

      datasetId
     -----------
      samples
  3. En el proyecto que seleccionaste para esta guía de inicio rápido, crea un conjunto de datos nuevo llamado babynames:
    bq mk babynames

    El nombre de un conjunto de datos puede tener hasta 1,024 caracteres de mayúsculas, minúsculas, números del 0 al 9 y guiones bajos. El nombre no puede comenzar con un número o un guion bajo, y no puede tener espacios.

    El resultado es similar a este:

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

    El resultado es similar a este:

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

Suba la tabla

  1. En el conjunto de datos babynames que creaste, carga tu archivo de origen yob2010.txt en una tabla nueva llamada names2010:

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

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

    El comando incluye los siguientes argumentos:

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

    El resultado es similar a este:

    Upload complete.
    Waiting on job_4f0c0878f6184119abfdae05f5194e65 ... (35s)
    Current status: DONE
  2. Confirma que la tabla ahora aparezca en el conjunto de datos:

    bq ls babynames

    El resultado es similar a este:

       tableId    Type
     ----------- -------
      names2010   TABLE
    
  3. Visualiza el esquema:

    bq show babynames.names2010

    El resultado es similar al que se muestra a continuación:

    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 carga 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, indícale a BigQuery que trate a los datos como Latin-1 mediante la marca -E. Para obtener más información, consulta Codificación.

Ejecuta consultas

  1. Muestra 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"

    El resultado es similar a este:

    Waiting on job_58c0f5ca52764ef1902eba611b71c651 ... (0s) Current status: DONE
    +----------+-------+
    |   name   | COUNT |
    +----------+-------+
    | Isabella | 22731 |
    | Sophia   | 20477 |
    | Emma     | 17179 |
    | Olivia   | 16860 |
    | Ava      | 15300 |
    +----------+-------+
    
  2. Conoce los nombres de niños más inusuales:
    bq query "SELECT name,count FROM babynames.names2010 WHERE gender = 'M' ORDER BY count ASC LIMIT 5"

    El conteo mínimo es de 5 porque los datos de origen omiten los nombres que aparecen menos de 5 veces.

    El resultado es similar a este:

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

Limpia

Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página.

  1. Quita el conjunto de datos babynames:

    bq rm --recursive=true babynames

    La marca --recursive borra todas las tablas del conjunto de datos, incluida la tabla names2010.

  2. Para confirmar el comando de eliminación, escribe y.

Sin embargo, si seguiste esta guía de inicio rápido en un proyecto nuevo, puedes borrar el proyecto.

¿Qué sigue?