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.
-
En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.
- 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.
-
En la consola, activa 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 proyectoDATASET_ID
: ID del conjunto de datosTABLE_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
.
Visualiza información detallada sobre la herramienta
bq
:bq help
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 comandobq query
.
Busca strings
El comando bq query
te permite ejecutar consultas en SQL en los datos.
Ejecuta una consulta para ver cuántas veces aparece la substring
raisin
en las obras de Shakespeare con el comandobq 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 | +---------------+-------+
Ejecuta una consulta para ver cuántas veces aparece la substring
huzzah
en las obras de Shakespeare con el comandobq 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.
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.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
oF
) y cantidad de niños con ese nombre. El archivo no tiene una fila de encabezado.Copia o traslada el archivo
yob2010.txt
al directorio en el que ejecutas la herramienta de línea de comandos debq
. Si ejecutas la herramienta de línea de comandos debq
en Cloud Shell, sube el archivoyob2010.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.
-
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
- 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
-
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.
- 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
-
En el conjunto de datos
babynames
que creaste, carga tu archivo de origenyob2010.txt
en una tabla nueva llamadanames2010
: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
- Para conocer los nombres de los tipos de datos admitidos, consulta Tipos de datos de SQL estándar.
El resultado es similar a este:
Upload complete. Waiting on job_4f0c0878f6184119abfdae05f5194e65 ... (35s) Current status: DONE
- ID del conjunto de datos:
-
Confirma que la tabla ahora aparece en el conjunto de datos:
bq ls babynames
El resultado es similar a este:
tableId Type ----------- ------- names2010 TABLE
-
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
-
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 | +----------+-------+
-
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.
Quita el conjunto de datos
babynames
:bq rm --recursive=true babynames
La marca
--recursive
borra todas las tablas del conjunto de datos, incluida la tablanames2010
.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?
Para obtener más información sobre la herramienta de línea de comandos de
bq
, consulta Usa la herramienta de línea de comandos debq
.Para obtener más información sobre la carga de datos en BigQuery, consulta Introducción a la carga de datos.
Si deseas obtener más información sobre cómo consultar datos, lee la Descripción general de consultas de datos de BigQuery.
Para aprender a exportar datos fuera de BigQuery, consulta Exporta datos de tablas.
Para obtener más información sobre cómo acceder a BigQuery de manera programática, consulta la referencia de la API de REST o la página Bibliotecas cliente de BigQuery.