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, conocerás 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:

Guiarme


Antes de comenzar

  1. Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  4. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  6. Habilita la API de BigQuery.

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el permiso serviceusage.services.enable. Obtén más información para otorgar roles.

    Habilitar la API

    Para los proyectos nuevos, la API de BigQuery se habilita de forma automática.

  7. 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.
  8. En la consola de Google Cloud , activa Cloud Shell.

    Activa Cloud Shell

    En la parte inferior de la consola de Google Cloud , se inicia una sesión de Cloud Shell que muestra una ventana emergente con una línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

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.

  1. 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.zip
    
  2. Extrae el archivo.

    Para obtener más información sobre el esquema del conjunto de datos, consulta el archivo NationalReadMe.pdf que extrajiste.

  3. 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.

  4. Mueve el archivo a tu directorio de trabajo.

    • Si trabajas en Cloud Shell, haz clic en Más Subir, selecciona Elegir archivos, elige el archivo yob2024.txt y haz clic en Subir.

    • Si trabajas en una shell local, copia o mueve el archivo yob2024.txt al directorio en el que ejecutas la herramienta de bq.

Crea un conjunto de datos

  1. 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_ID
    

    Reemplaza PROJECT_ID con el ID del proyecto.

  1. Ingresa el siguiente comando para crear un conjunto de datos llamado babynames:

    bq mk --dataset babynames
    

    El resultado es similar a este:

    Dataset 'babynames' successfully created.
    
  2. Confirma que el conjunto de datos babynames ahora aparezca en tu proyecto:

    bq ls --datasets=true
    

    El resultado es similar a este:

      datasetId
    -------------
      babynames
    

Carga datos en una tabla

  1. En el conjunto de datos babynames, carga el archivo de origen yob2024.txt en una tabla nueva llamada names2024:

    bq load babynames.names2024 yob2024.txt name:string,assigned_sex_at_birth:string,count:integer
    

    El resultado es similar a este:

    Upload complete.
    Waiting on bqjob_r3c045d7cbe5ca6d2_0000018292f0815f_1 ... (1s) Current status: DONE
    
  2. Confirma que la tabla names2024 ahora aparezca en el conjunto de datos babynames:

    bq ls --format=pretty babynames
    

    El resultado es similar al siguiente. Algunas columnas se omiten para simplificar el resultado.

    +-----------+-------+
    |  tableId  | Type  |
    +-----------+-------+
    | names2024 | TABLE |
    +-----------+-------+
    
  3. Confirma que el esquema de la tabla nueva names2024 sea name: string, assigned_sex_at_birth: string y count: integer:

    bq show babynames.names2024
    

    El 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: integer
    

Consultar datos de tablas

  1. Determina 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 |
    +-----------+-------+
    
  2. 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.

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, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.

Borra recursos

Si usaste un proyecto existente, borra los recursos que creaste:

  1. Borra el conjunto de datos babynames

    bq rm --recursive=true babynames
    

    La marca --recursive borra todas las tablas del conjunto de datos, incluida la tabla names2024.

    El resultado es similar a este:

    rm: remove dataset 'myproject:babynames'? (y/N)
    
  2. Para confirmar el comando de eliminación, ingresa y.

¿Qué sigue?