Inicio rápido mediante 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 esta guía de inicio rápido, usa Google Cloud Platform Console para crear o seleccionar un proyecto y habilitar la facturación. También necesitas instalar el SDK de Google Cloud.

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. Select or create a GCP project.

    Go to the Project selector page

  3. Asegúrate de tener habilitada la facturación para tu proyecto.

    Aprende a habilitar la facturación

  4. Install and initialize the Cloud SDK.
  5. BigQuery se habilita automáticamente en proyectos nuevos. Para activar BigQuery en un proyecto preexistente, ve a Habilita las BigQuery API necesarias.

    Habilita las API

Examina una tabla

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

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

bq show projectId:datasetId.tableId

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

bq show publicdata:samples.shakespeare

Salida:

Table publicdata: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 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 subcadena "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 \, o

  • Usa un tipo de comillas distinto a las circundantes (" versus ').

El siguiente ejemplo hace un recuento de palabras para el número de veces que la subcadena "raisin" aparece en todas las obras de Shakespeare. La consulta que se muestra distingue entre mayúsculas y minúsculas, al igual que las comparaciones de strings, a menos que utilices la característica IGNORE CASE de SQL.

bq query "SELECT word, SUM(word_count) as count FROM publicdata:samples.shakespeare WHERE word CONTAINS 'raisin' GROUP BY word"

Salida:

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 "SELECT word FROM publicdata:samples.shakespeare WHERE word = 'huzzah' IGNORE CASE"

Salida:

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

Crea una tabla nueva

Ahora, crea tu propia tabla. Cada tabla debe existir dentro de un conjunto de datos, que no es más que un grupo de tablas. Un conjunto de datos se asigna a un único proyecto.

Paso 1: Descarga datos personalizados

Los datos personalizados contienen aproximadamente 7 MB de datos sobre nombres de bebés populares proporcionados por la Administración de Seguridad Social de EE.UU.

  1. Descarga el archivo zip de nombres para bebés

  2. Descomprime el archivo en tu disco duro.

    El archivo zip contiene un archivo de lectura 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 cómo es. El archivo es un archivo de valores separados por comas (CSV) con las siguientes tres columnas: nombre, sexo (M o F) y número de hijos con ese nombre. El archivo no tiene fila de encabezado.

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

Paso 2: Crea un nuevo conjunto de datos

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

    bq ls

    Resultado de muestra:

      datasetId
     -------------
      olddataset
  2. Ejecuta bq ls nuevamente para obtener la lista de conjuntos de datos en un proyecto específico incluyendo el ID del proyecto seguido de dos puntos (:). El siguiente ejemplo enumera los conjuntos de datos en el proyecto publicdata.
    bq ls publicdata:

    Salida:

      datasetId
     -----------
      samples
  3. Usa el comando bq mk para crear un conjunto de datos nuevo con el nombre 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: Carga 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 el archivo de origen en una tabla nueva llamada names2010 en el conjunto de datos babynames que acabas de crear. De manera 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:

    • datasetID: babynames
    • tableID: names2010
    • origen: yob2010.txt
    • 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 aparezca en el conjunto de datos:

    bq ls babynames

    Salida:

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

    bq show babynames.names2010

    Salida:

    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 cargaste datos codificados en formato ISO-8859-1 (o Latin-1) y tienes problemas, puedes pedirle a BigQuery que los procese en formato Latin-1 explícitamente mediante la marca -E. Para obtener más información, consulta la Codificación de caracteres.

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"

    Salida:

    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 extraños. El conteo mínimo es de 5 porque los datos de origen omiten los nombres con menos de 5 apariciones.
    bq query "SELECT name,count FROM babynames.names2010 WHERE gender = 'M' ORDER BY count ASC LIMIT 5"

    Salida:

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

Limpieza

Para evitar que se generen cargos en tu cuenta de GCP por los recursos que usas en esta guía de inicio rápido, haz lo siguiente:

  1. Ejecuta el comando bq rm para eliminar el conjunto de datos babynames. Usa la marca -r para eliminar 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.

Pasos siguientes

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

¿Necesitas ayuda? Visita nuestra página de asistencia.