Usa la herramienta de bq
En este instructivo, aprenderás a usar bq, la herramienta de interfaz de línea de comandos (CLI) basada en Python para BigQuery, para crear un conjunto de datos, cargar datos de muestra y consultar tablas. Después de completar este instructivo, sabrás qué es bq y cómo trabajar con BigQuery usando una CLI.
Para obtener una referencia completa de todos los comandos y marcas de bq, consulta la referencia de la herramienta de línea de comandos de bq.
Para seguir la guía paso a paso sobre esta tarea directamente en la consola Google Cloud , haz clic en Guiarme:
Antes de comenzar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Si usas un proyecto existente en esta guía, verifica que tengas los permisos necesarios para completarla. Si creaste un proyecto nuevo, ya tienes los permisos necesarios.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Si usas un proyecto existente en esta guía, verifica que tengas los permisos necesarios para completarla. Si creaste un proyecto nuevo, ya tienes los permisos necesarios.
-
Enable the BigQuery API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.Para los proyectos nuevos, la API de BigQuery se habilita de forma automática.
- Opcional: Habilita la facturación para el proyecto. Si no deseas habilitar la facturación ni proporcionar una tarjeta de crédito, los pasos que se indican en este documento seguirán funcionando. BigQuery proporciona una zona de pruebas para realizar los pasos. Para obtener más información, consulta Habilita la zona de pruebas de BigQuery.
-
Ejecutar trabajos de carga y trabajos de consulta:
Usuario de trabajo de BigQuery (
roles/bigquery.jobUser) -
Crear un conjunto de datos, crear una tabla, cargar datos en una tabla y consultar una tabla:
Editor de datos de BigQuery (
roles/bigquery.dataEditor) Descarga los datos de la Administración de Seguridad Social de EE.UU. Para ello, abre la siguiente URL en una nueva pestaña del navegador:
https://www.ssa.gov/OACT/babynames/names.zipExtrae el archivo.
Para obtener más información sobre el esquema del conjunto de datos, consulta el archivo
NationalReadMe.pdfque extrajiste.Para ver cómo son los datos, abre el archivo
yob2024.txt. Contiene valores separados por comas de nombre, genero asignado al nacer y la cantidad de niños con ese nombre. El archivo no tiene una fila de encabezado.Mueve el archivo a tu directorio de trabajo.
Si trabajas en Cloud Shell, haz clic en
Más Subir, selecciona Elegir archivos, elige el archivoyob2024.txty haz clic en Subir.Si trabajas en una shell local, copia o mueve el archivo
yob2024.txtal directorio en el que ejecutas la herramienta de bq.
Si iniciaste Cloud Shell desde la documentación, ingresa el siguiente comando para establecer tu ID del proyecto. Esto evita que tengas que especificar el ID del proyecto en cada comando de la CLI.
gcloud config set project PROJECT_IDReemplaza PROJECT_ID con el ID del proyecto.
Ingresa el siguiente comando para crear un conjunto de datos llamado
babynames:bq mk --dataset babynamesEl resultado es similar a este:
Dataset 'babynames' successfully created.Confirma que el conjunto de datos
babynamesahora aparezca en tu proyecto:bq ls --datasets=trueEl resultado es similar a este:
datasetId ------------- babynamesEn el conjunto de datos
babynames, carga el archivo de origenyob2024.txten una tabla nueva llamadanames2024:bq load babynames.names2024 yob2024.txt name:string,assigned_sex_at_birth:string,count:integerEl resultado es similar a este:
Upload complete. Waiting on bqjob_r3c045d7cbe5ca6d2_0000018292f0815f_1 ... (1s) Current status: DONEConfirma que la tabla
names2024ahora aparezca en el conjunto de datosbabynames:bq ls --format=pretty babynamesEl resultado es similar al siguiente. Algunas columnas se omiten para simplificar el resultado.
+-----------+-------+ | tableId | Type | +-----------+-------+ | names2024 | TABLE | +-----------+-------+Confirma que el esquema de la tabla nueva
names2024seaname: string,assigned_sex_at_birth: stringycount: integer:bq show babynames.names2024El resultado es similar al siguiente. Algunas columnas se omiten para simplificar el resultado.
Last modified Schema Total Rows Total Bytes ----------------- ------------------------------- ------------ ------------ 14 Mar 17:16:45 |- name: string 31904 607494 |- assigned_sex_at_birth: string |- count: integerDetermina los nombres de niñas más populares en los datos:
bq query \ 'SELECT name, count FROM babynames.names2024 WHERE assigned_sex_at_birth = "F" ORDER BY count DESC LIMIT 5'El resultado es similar a este:
+-----------+-------+ | name | count | +-----------+-------+ | Olivia | 14718 | | Emma | 13485 | | Amelia | 12740 | | Charlotte | 12552 | | Mia | 12113 | +-----------+-------+Determina los nombres de niños menos populares en los datos:
bq query \ 'SELECT name, count FROM babynames.names2024 WHERE assigned_sex_at_birth = "M" ORDER BY count ASC LIMIT 5'El resultado es similar a este:
+---------+-------+ | name | count | +---------+-------+ | Aaran | 5 | | Aadiv | 5 | | Aadarsh | 5 | | Aarash | 5 | | Aadrik | 5 | +---------+-------+El conteo mínimo es de 5 porque los datos de origen omiten los nombres que aparecen menos de 5 veces.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Borra el conjunto de datos
babynamesbq rm --recursive=true babynamesLa marca
--recursiveborra todas las tablas del conjunto de datos, incluida la tablanames2024.El resultado es similar a este:
rm: remove dataset 'myproject:babynames'? (y/N)Para confirmar el comando de eliminación, ingresa
y.- Obtén más información para usar la herramienta de bq.
- Obtén más información sobre la zona de pruebas de BigQuery.
- Obtén más información para cargar datos en BigQuery.
- Obtén más información sobre cómo consultar datos en BigQuery.
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Roles obligatorios
Para obtener los permisos que necesitas para crear un conjunto de datos, crear una tabla, cargar datos y consultar datos, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Descarga el archivo que contiene los datos de origen
El archivo que descargarás contiene alrededor de 7 MB de datos sobre nombres populares de bebés. Lo proporciona la Administración del Seguro Social de EE.UU.
Para obtener más información sobre los datos, consulta la información general sobre nombres populares de la Administración del Seguro Social.
Crea un conjunto de datos
Carga datos en una tabla
Consultar datos de tablas
Realiza una limpieza
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página, borra el proyecto de Google Cloud que tiene los recursos.
Borra el proyecto
Si usaste la zona de pruebas de BigQuery para consultar el conjunto de datos públicos, la facturación no estará habilitada para tu proyecto y no es necesario que lo borres.La manera más fácil de eliminar la facturación es borrar el proyecto que creaste para el instructivo.
Para borrar el proyecto, haz lo siguiente:
Borra recursos
Si usaste un proyecto existente, borra los recursos que creaste: