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 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.
-
Selecciona o crea un proyecto de GCP.
- Realiza la instalación y la inicialización del SDK de Cloud.
- BigQuery se habilita de forma automática en proyectos nuevos. Para activar BigQuery en un proyecto preexistente, dirígete a Habilita las BigQuery API necesarias.
- 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 serie 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 del autor.
Para examinar el esquema de una tabla específica, ejecuta lo siguiente:
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 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 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 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\
, oUsa un tipo de comillas distinto a las circundantes (
"
o'
).
La siguiente consulta de SQL estándar hace 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. Por ejemplo, la siguiente búsqueda de "huzzah" no muestra ninguna coincidencia.
bq query --use_legacy_sql=false \ 'SELECT word FROM `bigquery-public-data`.samples.shakespeare WHERE word = "huzzah"'
Resultado:
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é populares proporcionados por la Administración del Seguro Social de los EE.UU.
Descomprime el archivo.
El archivo ZIP contiene un archivo de instrucciones 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 cómo es. El archivo es un archivo de valores separados por comas (CSV) con las siguientes tres columnas: nombre, sexo (M
oF
) y número de hijos con ese nombre. El archivo no tiene fila de encabezado.Copia o mueve el archivo
yob2010.txt
al directorio que estás usando para ejecutar los comandos debq
.
Paso 2: Crea un nuevo conjunto de datos
-
Usa el comando
bq ls
para ver si tu proyecto predeterminado tiene conjuntos de datos existentes.bq ls
Resultado de muestra:
datasetId ------------- olddataset
-
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 proyectopublicdata
.bq ls publicdata:
Resultado:
datasetId ----------- samples
-
Usa el comando
bq mk
para crear un conjunto de datos nuevo con el nombrebabynames
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: Carga 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 el archivo de origen en una tabla nueva llamadanames2010
en el conjunto de datosbabynames
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
- 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
- datasetID:
-
Ejecuta
bq ls
para confirmar que la tabla aparezca en el conjunto de datos:bq ls babynames
Resultado:
tableId Type ----------- ------- names2010 TABLE
-
Ejecuta
bq show
para ver el esquema:bq show babynames.names2010
Resultado:
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
-
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 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"
Resultado:
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:
Ejecuta el comando
bq rm
para eliminar el conjunto de datosbabynames
. Usa la marca-r
para eliminar todas las tablas en el conjunto de datos, incluida la tablanames2010
.bq rm -r babynames
Escribe
y
para confirmar el comando de eliminación.
Pasos siguientes
Para obtener más información sobre la herramienta de línea de comandos de bq, consulta la página sobre la herramienta de línea de comandos de
bq
.Para obtener más información sobre la carga de datos, consulta la página sobre cómo cargar datos en BigQuery.
Para obtener más información sobre la consulta de datos, visita la página sobre cómo consultar datos.
Para aprender a exportar datos fuera de BigQuery, visita la página sobre cómo exportar datos desde BigQuery.
Para obtener más información sobre cómo crear una aplicación con la API de Google BigQuery, visita la página sobre cómo crear una aplicación simple con la API.