Guía de inicio rápido: Carga datos en BigQuery con la herramienta de bq

Carga datos en BigQuery con la herramienta de bq

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

Antes de comenzar

Para explorar BigQuery, primero debes acceder a la consola y crear un proyecto. A menos que elijas conectar una cuenta de facturación, la zona de pruebas de BigQuery te permite explorar BigQuery sin costo. Para obtener más información, consulta Habilita la zona de pruebas de BigQuery.

  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. Opcional: Si seleccionas un proyecto existente, asegúrate de habilitar la API de BigQuery. La API de BigQuery se habilita de forma automática en proyectos nuevos.
  3. En la consola, 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 la consola.

Ejecuta consultas

En esta sección, se muestra cómo escribir consultas y obtener ayuda.

Examina una tabla

Examina el esquema de una tabla específica:

bq show PROJECT_ID:DATASET_ID.TABLE_ID

Reemplaza lo siguiente:

  • PROJECT_ID: El ID de tu proyecto
  • DATASET_ID: ID del conjunto de datos
  • TABLE_ID: El ID de la tabla

Si los ID del proyecto y del conjunto de datos son los valores predeterminados para la herramienta de línea de comandos de bq, puedes omitir los ID del proyecto y del conjunto de datos:

bq show TABLE_ID

BigQuery ofrece una variedad de tablas de muestra que puedes consultar. En esta guía de inicio rápido, ejecutarás 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

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)

Visualiza la ayuda de la herramienta de bq

La ayuda de la herramienta de bq proporciona una lista de comandos y argumentos disponibles para la herramienta de línea de comandos de bq.

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

    bq help
  2. Visualiza 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.

Busca strings

El comando bq query te permite ejecutar consultas en SQL en los datos.

  1. Ejecuta una consulta para ver cuántas veces aparece la substring raisin en las obras de Shakespeare 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. Ejecuta una consulta para ver cuántas veces aparece la substring huzzah en las obras de Shakespeare con el comando bq query:

    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 y carga datos

En las siguientes secciones, crearás una tabla nueva y la colocarás en un conjunto de datos nuevo. Cada tabla se almacena dentro de un conjunto de datos. Un conjunto de datos es un conjunto de recursos, como tablas y vistas.

Descarga los datos de muestra

Sigue estos pasos para descargar los datos de muestra. Los datos de muestra son proporcionados por la Administración de Seguridad Social de EE.UU. y contienen aproximadamente 7 MB de datos sobre nombres populares de bebés.

  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. Es un archivo de valores separados por comas (CSV) que contiene 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 traslada 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

A continuación, crea un conjunto de datos nuevo.

  1. Para ver si tu proyecto predeterminado tiene conjuntos de datos existentes, usa el comando bq ls.

    bq ls
        

    El resultado es similar al siguiente:

      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 del 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 y estar compuesto por letras de la A a la Z (mayúsculas o minúsculas), números del 0 al 9 y guiones bajos. El nombre no puede comenzar con un número ni 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 ahora aparece como parte del proyecto predeterminado:
    bq ls

    El resultado es similar a este:

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

Carga los datos

  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 aparece 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.

Consulta los datos de muestra

  1. Consulta los datos de 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. Consulta los datos para ver 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.

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

¿Qué sigue?