Appearance
Uso de BigQuery desde Cloud Shell
BigQuery puede utilizarse desde la interfaz web de Google Cloud Platform, pero también desde la terminal integrada llamada Cloud Shell. Esta es una guía paso a paso para crear un dataset, cargar datos en una tabla y realizar consultas usando comandos desde Cloud Shell.
Comenzaremos por crear y consultar nuestra propia tabla y, luego, aprenderemos a acceder a datos públicos.
1️⃣ Activar Cloud Shell
Haz clic en el ícono de terminal en la esquina superior derecha de la consola de Google Cloud Platform para abrir Cloud Shell.
2️⃣ Verificar cuenta activa
Muestra la cuenta de usuario actualmente autenticada:
bash
gcloud auth list
3️⃣ Verificar y preparar el entorno de trabajo
Antes de crear un dataset, asegúrate de estar en el proyecto correcto:
bash
gcloud config list project
Si necesitas cambiar de proyecto:
bash
gcloud config set project [PROJECT_ID]
Luego, puedes verificar si ya existen datasets dentro del proyecto:
bash
bq ls
Ejemplo de salida si no existen datasets:
Dataset list for project [tu-proyecto]:
Ejemplo de salida si existe al menos un dataset:
Dataset list for project [tu-proyecto]:
+------------+
| datasetId |
+------------+
| babynames |
+------------+
4️⃣ Crear un nuevo dataset
Crea un dataset llamado babynames:
bash
bq mk babynames
5️⃣ Crear una tabla y cargar datos
Descargar el archivo ZIP con datos reales:
bash
wget http://www.ssa.gov/OACT/babynames/names.zip
Descomprimir el archivo:
bash
unzip names.zip
Cargar los datos en una nueva tabla llamada names2010:
bash
bq load babynames.names2010 yob2010.txt name:string,gender:string,count:integer
6️⃣ Crear tabla e insertar datos manualmente
Puedes crear una tabla vacía y luego ingresar datos manualmente desde Cloud Shell:
Crear la tabla:
bash
bq mk --table babynames.names2010 name:STRING,gender:STRING,count:INTEGER
Insertar registros manuales:
bash
bq insert babynames.names2010 name="Luna",gender="F",count=1500
bq insert babynames.names2010 name="Mateo",gender="M",count=1350
💡 Ten en cuenta que
bq insertpuede requerir el componente beta degcloudy tiene limitaciones. Alternativamente puedes usar la consola web.
7️⃣ Crear tabla e importar CSV desde tu computador
Si tienes un archivo CSV local (por ejemplo, nombres.csv), puedes cargarlo así:
- Sube el archivo a Cloud Shell usando el botón Upload file.
- Luego, crea la tabla manualmente:
bash
bq mk --table babynames.names2010 name:STRING,gender:STRING,count:INTEGER
- Finalmente, carga el contenido del archivo:
bash
bq load --skip_leading_rows=1 --source_format=CSV babynames.names2010 ./nombres.csv
Asegúrate de que el archivo tenga encabezados (
name,gender,count) y esté codificado en UTF-8.
8️⃣ Verificar si existe una tabla dentro de un dataset
Para listar todas las tablas dentro del dataset babynames y confirmar que se haya creado correctamente:
bash
bq ls babynames
Ejemplo de salida esperada:
Tables in dataset [tu-proyecto:babynames]:
+------------+--------+
| tableId | Type |
+------------+--------+
| names2010 | TABLE |
+------------+--------+
9️⃣ Consultar la tabla creada
Nombres femeninos más comunes:
bash
bq query "SELECT name, count FROM babynames.names2010 WHERE gender = 'F' ORDER BY count DESC LIMIT 5"
Resultado esperado:
+-----------+--------+
| name | count |
+-----------+--------+
| Isabella | 22951 |
| Sophia | 20612 |
| Emma | 17289 |
| Olivia | 17091 |
| Ava | 15300 |
+-----------+--------+
Nombres masculinos menos comunes:
bash
bq query "SELECT name, count FROM babynames.names2010 WHERE gender = 'M' ORDER BY count ASC LIMIT 5"
Resultado esperado:
+----------+-------+
| name | count |
+----------+-------+
| Adron | 5 |
| Agapito | 5 |
| Alix | 5 |
| Anel | 5 |
| Ardie | 5 |
+----------+-------+
🔟 Examinar la tabla creada (estructura y metadatos)
Para ver los detalles de la tabla names2010, incluyendo el esquema, la cantidad de filas y la fecha de modificación:
bash
bq show babynames.names2010
Ejemplo de salida esperada:
Table babynames:names2010
Last modified Schema Total Rows
----------------- ------------------------ -------------
2025-08-01 21:00 |- name: string 34000
|- gender: string
|- count: integer
También puedes ver los metadatos en formato JSON:
bash
bq show --format=prettyjson babynames.names2010
Esto es útil si necesitas procesar los resultados programáticamente o integrarlos con otras herramientas.
1️⃣1️⃣ Eliminar dataset y sus tablas
bash
bq rm -r babynames
⚠️ Esto eliminará el dataset
babynamesy todas las tablas asociadas. Úsalo con precaución.