En esta página, se explica cómo usar la herramienta de línea de comandos de bq
para ejecutar consultas y cargar 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.
- Accede a tu Cuenta de Google.
Si todavía no tienes una cuenta, regístrate para obtener una nueva.
-
En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.
- Instala e inicializa el SDK de Cloud.
- BigQuery se habilita de forma automática en proyectos nuevos. Para activar BigQuery en un proyecto existente, ve a Habilita la API BigQuery. .
- 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 cómo habilitar la facturación.
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.
Para examinar el esquema de una tabla específica, ejecuta el siguiente comando. Si los ID del proyecto y del conjunto de datos son los valores predeterminados para tu herramienta de bq
, puedes omitir los ID del proyecto y del conjunto de datos.
bq show PROJECT_ID:DATASET_ID.TABLE_ID
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
Ejecute 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\
, oUsa 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. En el siguiente ejemplo, la búsqueda de huzzah
no muestra resultados.
bq query --use_legacy_sql=false \ 'SELECT word FROM `bigquery-public-data`.samples.shakespeare WHERE word = "huzzah"'
Salida:
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.
Extrae el archivo:
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.
Abre el archivo llamado
yob2010.txt
para ver su aspecto. Este es un archivo CSV que contiene las siguientes tres columnas: nombre, sexo (M
oF
) y la cantidad de niños que tienen ese nombre. El archivo no tiene fila de encabezado.Copia o mueve 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
. Consulta Administra archivos con Cloud Shell.
Paso 2: Crea un conjunto de datos nuevo
-
Usa el comando
bq ls
para ver si tu proyecto predeterminado ya tiene conjuntos de datos.bq ls
Resultado de muestra:
datasetId ------------- olddataset
- 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 proyectopublicdata
.bq ls publicdata:
Resultado:
datasetId ----------- samples
-
Usa el comando
bq mk
para crear un conjunto de datos nuevo llamadobabynames
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.
- 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.
-
Ejecuta el comando
bq load
para cargar tu archivo de origen en una tabla nueva llamadanames2010
en el conjunto de datosbabynames
que creaste. De forma predeterminada, este comando se ejecuta de forma síncrona y tarda unos segundos en completarse.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
- ID del conjunto de datos:
-
Ejecuta
bq ls
para confirmar que la tabla ahora aparece en el conjunto de datos:bq ls babynames
Resultado:
tableId Type ----------- ------- names2010 TABLE
-
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 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.
Paso 4: Ejecuta consultas
-
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 | +----------+-------+
-
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 | +----------+-------+
Limpia
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.
Ejecuta el comando
bq rm
para quitar el conjunto de datosbabynames
. Usa la marca-r
para borrar todas las tablas en el conjunto de datos, incluida la tablanames2010
.bq rm -r babynames
Escribe
y
para confirmar el comando de eliminación.
¿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 la API de BigQuery.