Consultar un conjunto de datos público con las bibliotecas de cliente de BigQuery

Consulta cómo hacer una consulta en un conjunto de datos público con las bibliotecas de cliente de BigQuery.


Para seguir las instrucciones paso a paso de esta tarea directamente en la consola, selecciona el lenguaje de programación que prefieras:Google Cloud


Antes de empezar

  1. Create or select 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 (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  2. Elige si quieres usar el entorno aislado de BigQuery sin coste económico o habilitar la facturación en tu Google Cloud proyecto.

    Si no habilitas la facturación de un proyecto, trabajarás automáticamente en el entorno aislado de BigQuery. El entorno aislado de BigQuery te permite aprender a usar BigQuery con un conjunto limitado de funciones de BigQuery sin coste económico. Si no tienes previsto usar tu proyecto más allá de este documento, te recomendamos que uses el entorno aislado de BigQuery.

  3. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/serviceusage.serviceUsageAdmin, roles/bigquery.jobUser

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Replace the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  4. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable bigquery

    En los proyectos nuevos, la API de BigQuery se habilita automáticamente.

  5. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

  6. Activa tu Google Cloud proyecto en Cloud Shell:

    gcloud config set project PROJECT_ID
    

    Sustituye PROJECT_ID por el proyecto que has seleccionado para esta guía.

    El resultado debería ser similar al siguiente:

    Updated property [core/project].
    
  7. Consultar un conjunto de datos público

    Selecciona uno de los siguientes idiomas:

    C#

    1. En Cloud Shell, crea un proyecto y un archivo de C#:

      dotnet new console -n BigQueryCsharpDemo

      La salida es similar a la siguiente. Se han omitido varias líneas para simplificar el resultado.

      Welcome to .NET 6.0!
      ---------------------
      SDK Version: 6.0.407
      ...
      The template "Console App" was created successfully.
      ...
      

      Este comando crea un proyecto de C# llamado BigQueryCsharpDemo y un archivo llamado Program.cs.

    2. Abre el editor de Cloud Shell:

      cloudshell workspace BigQueryCsharpDemo
    3. Para abrir un terminal en el editor de Cloud Shell, haz clic en Abrir terminal.

    4. Abre el directorio de tu proyecto:

      cd BigQueryCsharpDemo
    5. Instala la biblioteca de cliente de BigQuery para C#:

      dotnet add package Google.Cloud.BigQuery.V2

      La salida es similar a la siguiente. Se han omitido varias líneas para simplificar el resultado.

      Determining projects to restore...
      Writing /tmp/tmpF7EKSd.tmp
      ...
      info : Writing assets file to disk.
      ...
      
    6. Asigna el valor GOOGLE_CLOUD_PROJECT a la variable GOOGLE_PROJECT_ID y exporta la variable:

      export GOOGLE_PROJECT_ID=$GOOGLE_CLOUD_PROJECT
    7. Haz clic en Abrir editor.

    8. En el panel Explorador, busca tu BIGQUERYCSHARPDEMO proyecto.

    9. Haz clic en el archivo Program.cs para abrirlo.

    10. Para crear una consulta en el conjunto de datos bigquery-public-data.stackoverflow que devuelva las 10 páginas de Stack Overflow más vistas y el número de vistas de cada una, sustituye el contenido del archivo por el siguiente código:

      
      using System;
      using Google.Cloud.BigQuery.V2;
      
      namespace GoogleCloudSamples
      {
          public class Program
          {
              public static void Main(string[] args)
              {
                  string projectId = Environment.GetEnvironmentVariable("GOOGLE_PROJECT_ID");
                  var client = BigQueryClient.Create(projectId);
                  string query = @"SELECT
                      CONCAT(
                          'https://stackoverflow.com/questions/',
                          CAST(id as STRING)) as url, view_count
                      FROM `bigquery-public-data.stackoverflow.posts_questions`
                      WHERE tags like '%google-bigquery%'
                      ORDER BY view_count DESC
                      LIMIT 10";
                  var result = client.ExecuteQuery(query, parameters: null);
                  Console.Write("\nQuery Results:\n------------\n");
                  foreach (var row in result)
                  {
                      Console.WriteLine($"{row["url"]}: {row["view_count"]} views");
                  }
              }
          }
      }
      

    11. Haz clic en Abrir terminal.

    12. En el terminal, ejecuta la secuencia de comandos Program.cs. Si se te pide que autorices Cloud Shell y aceptes los términos, haz clic en Autorizar.

      dotnet run

      El resultado es similar al siguiente:

      Query Results:
      ------------
      https://stackoverflow.com/questions/35159967: 170023 views
      https://stackoverflow.com/questions/22879669: 142581 views
      https://stackoverflow.com/questions/10604135: 132406 views
      https://stackoverflow.com/questions/44564887: 128781 views
      https://stackoverflow.com/questions/27060396: 127008 views
      https://stackoverflow.com/questions/12482637: 120766 views
      https://stackoverflow.com/questions/20673986: 115720 views
      https://stackoverflow.com/questions/39109817: 108368 views
      https://stackoverflow.com/questions/11057219: 105175 views
      https://stackoverflow.com/questions/43195143: 101878 views
      

    Has consultado correctamente un conjunto de datos público con la biblioteca de cliente de C# de BigQuery.

    Go

    1. En Cloud Shell, crea un proyecto y un archivo de Go:

      mkdir bigquery-go-quickstart \
          && touch \
          bigquery-go-quickstart/app.go

      Este comando crea un proyecto de Go llamado bigquery-go-quickstart y un archivo llamado app.go.

    2. Abre el editor de Cloud Shell:

      cloudshell workspace bigquery-go-quickstart
    3. Para abrir un terminal en el editor de Cloud Shell, haz clic en Abrir terminal.

    4. Abre el directorio de tu proyecto:

      cd bigquery-go-quickstart
    5. Crea un archivo go.mod:

      go mod init quickstart

      El resultado debería ser similar al siguiente:

      go: creating new go.mod: module quickstart
      go: to add module requirements and sums:
              go mod tidy
      
    6. Instala la biblioteca de cliente de BigQuery para Go:

      go get cloud.google.com/go/bigquery

      La salida es similar a la siguiente. Se han omitido varias líneas para simplificar el resultado.

      go: downloading cloud.google.com/go/bigquery v1.49.0
      go: downloading cloud.google.com/go v0.110.0
      ...
      go: added cloud.google.com/go/bigquery v1.49.0
      go: added cloud.google.com/go v0.110.0
      
    7. Haz clic en Abrir editor.

    8. En el panel Explorador, busca tu BIGQUERY-GO-QUICKSTART proyecto.

    9. Haz clic en el archivo app.go para abrirlo.

    10. Para crear una consulta en el conjunto de datos bigquery-public-data.stackoverflow que devuelva las 10 páginas de Stack Overflow más vistas y el número de veces que se han visto, copia el siguiente código en el archivo app.go:

      
      // Command simpleapp queries the Stack Overflow public dataset in Google BigQuery.
      package main
      
      import (
      	"context"
      	"fmt"
      	"io"
      	"log"
      	"os"
      
      	"cloud.google.com/go/bigquery"
      	"google.golang.org/api/iterator"
      )
      
      
      func main() {
      	projectID := os.Getenv("GOOGLE_CLOUD_PROJECT")
      	if projectID == "" {
      		fmt.Println("GOOGLE_CLOUD_PROJECT environment variable must be set.")
      		os.Exit(1)
      	}
      
      	ctx := context.Background()
      
      	client, err := bigquery.NewClient(ctx, projectID)
      	if err != nil {
      		log.Fatalf("bigquery.NewClient: %v", err)
      	}
      	defer client.Close()
      
      	rows, err := query(ctx, client)
      	if err != nil {
      		log.Fatal(err)
      	}
      	if err := printResults(os.Stdout, rows); err != nil {
      		log.Fatal(err)
      	}
      }
      
      // query returns a row iterator suitable for reading query results.
      func query(ctx context.Context, client *bigquery.Client) (*bigquery.RowIterator, error) {
      
      	query := client.Query(
      		`SELECT
      			CONCAT(
      				'https://stackoverflow.com/questions/',
      				CAST(id as STRING)) as url,
      			view_count
      		FROM ` + "`bigquery-public-data.stackoverflow.posts_questions`" + `
      		WHERE tags like '%google-bigquery%'
      		ORDER BY view_count DESC
      		LIMIT 10;`)
      	return query.Read(ctx)
      }
      
      type StackOverflowRow struct {
      	URL       string `bigquery:"url"`
      	ViewCount int64  `bigquery:"view_count"`
      }
      
      // printResults prints results from a query to the Stack Overflow public dataset.
      func printResults(w io.Writer, iter *bigquery.RowIterator) error {
      	for {
      		var row StackOverflowRow
      		err := iter.Next(&row)
      		if err == iterator.Done {
      			return nil
      		}
      		if err != nil {
      			return fmt.Errorf("error iterating through results: %w", err)
      		}
      
      		fmt.Fprintf(w, "url: %s views: %d\n", row.URL, row.ViewCount)
      	}
      }
      

    11. Haz clic en Abrir terminal.

    12. En el terminal, ejecuta la secuencia de comandos app.go. Si se te pide que autorices Cloud Shell y aceptes los términos, haz clic en Autorizar.

      go run app.go

      El resultado es similar al siguiente:

      https://stackoverflow.com/questions/35159967 : 170023 views
      https://stackoverflow.com/questions/22879669 : 142581 views
      https://stackoverflow.com/questions/10604135 : 132406 views
      https://stackoverflow.com/questions/44564887 : 128781 views
      https://stackoverflow.com/questions/27060396 : 127008 views
      https://stackoverflow.com/questions/12482637 : 120766 views
      https://stackoverflow.com/questions/20673986 : 115720 views
      https://stackoverflow.com/questions/39109817 : 108368 views
      https://stackoverflow.com/questions/11057219 : 105175 views
      https://stackoverflow.com/questions/43195143 : 101878 views
      

    Has consultado correctamente un conjunto de datos público con la biblioteca de cliente de Go de BigQuery.

    Java

    1. En Cloud Shell, crea un proyecto de Java con Apache Maven:

      mvn archetype:generate \
          -DgroupId=com.google.app \
          -DartifactId=bigquery-java-quickstart \
          -DinteractiveMode=false

      Este comando crea un proyecto de Maven llamado bigquery-java-quickstart.

      La salida es similar a la siguiente. Se han omitido varias líneas para simplificar el resultado.

      [INFO] Scanning for projects...
      ...
      [INFO] Building Maven Stub Project (No POM) 1
      ...
      [INFO] BUILD SUCCESS
      ...
      

      Hay muchos sistemas de gestión de dependencias que puedes usar además de Maven. Para obtener más información, consulta cómo configurar un entorno de desarrollo de Java para usarlo con bibliotecas de cliente.

    2. Cambia el nombre del archivo App.java que crea Maven de forma predeterminada:

      mv \
          bigquery-java-quickstart/src/main/java/com/google/app/App.java \
          bigquery-java-quickstart/src/main/java/com/google/app/SimpleApp.java
    3. Abre el editor de Cloud Shell:

      cloudshell workspace bigquery-java-quickstart
    4. Si se te pregunta si quieres sincronizar la ruta de clases o la configuración de Java, haz clic en Siempre.

      Si no se te pide que lo hagas y se produce un error relacionado con la ruta de clases durante este proceso, haz lo siguiente:

      1. Haz clic en Archivo > Preferencias > Abrir ajustes (interfaz de usuario).
      2. Haz clic en Extensiones > Java.
      3. Desplázate hasta Configuración: actualizar configuración de compilación y selecciona automática.
    5. En el panel Explorador, busca tu BIGQUERY-JAVA-QUICKSTART proyecto.

    6. Haz clic en el archivo pom.xml para abrirlo.

    7. Dentro de la etiqueta <dependencies>, añade la siguiente dependencia después de las que ya haya. No sustituyas ninguna dependencia.

      <dependency>
        <groupId>com.google.cloud</groupId>
        <artifactId>google-cloud-bigquery</artifactId>
      </dependency>
      
    8. En la línea que sigue a la etiqueta de cierre (</dependencies>), añade lo siguiente:

      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>com.google.cloud</groupId>
            <artifactId>libraries-bom</artifactId>
            <version>26.1.5</version>
            <type>pom</type>
            <scope>import</scope>
          </dependency>
        </dependencies>
      </dependencyManagement>
      
    9. En el panel Explorador, en tu proyecto BIGQUERY-JAVA-QUICKSTART, haz clic en src > main/java/com/google/app > SimpleApp.java. El archivo se abre.

    10. Para crear una consulta en el conjunto de datos bigquery-public-data.stackoverflow, deje la primera línea del archivo (package com.google.app;) y sustituya el resto del contenido del archivo por el siguiente código:

      
      import com.google.cloud.bigquery.BigQuery;
      import com.google.cloud.bigquery.BigQueryException;
      import com.google.cloud.bigquery.BigQueryOptions;
      import com.google.cloud.bigquery.FieldValueList;
      import com.google.cloud.bigquery.Job;
      import com.google.cloud.bigquery.JobId;
      import com.google.cloud.bigquery.JobInfo;
      import com.google.cloud.bigquery.QueryJobConfiguration;
      import com.google.cloud.bigquery.TableResult;
      
      
      public class SimpleApp {
      
        public static void main(String... args) throws Exception {
          // TODO(developer): Replace these variables before running the app.
          String projectId = "MY_PROJECT_ID";
          simpleApp(projectId);
        }
      
        public static void simpleApp(String projectId) {
          try {
            BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
            QueryJobConfiguration queryConfig =
                QueryJobConfiguration.newBuilder(
                        "SELECT CONCAT('https://stackoverflow.com/questions/', "
                            + "CAST(id as STRING)) as url, view_count "
                            + "FROM `bigquery-public-data.stackoverflow.posts_questions` "
                            + "WHERE tags like '%google-bigquery%' "
                            + "ORDER BY view_count DESC "
                            + "LIMIT 10")
                    // Use standard SQL syntax for queries.
                    // See: https://cloud.google.com/bigquery/sql-reference/
                    .setUseLegacySql(false)
                    .build();
      
            JobId jobId = JobId.newBuilder().setProject(projectId).build();
            Job queryJob = bigquery.create(JobInfo.newBuilder(queryConfig).setJobId(jobId).build());
      
            // Wait for the query to complete.
            queryJob = queryJob.waitFor();
      
            // Check for errors
            if (queryJob == null) {
              throw new RuntimeException("Job no longer exists");
            } else if (queryJob.getStatus().getExecutionErrors() != null
                && queryJob.getStatus().getExecutionErrors().size() > 0) {
              // TODO(developer): Handle errors here. An error here do not necessarily mean that the job
              // has completed or was unsuccessful.
              // For more details: https://cloud.google.com/bigquery/troubleshooting-errors
              throw new RuntimeException("An unhandled error has occurred");
            }
      
            // Get the results.
            TableResult result = queryJob.getQueryResults();
      
            // Print all pages of the results.
            for (FieldValueList row : result.iterateAll()) {
              // String type
              String url = row.get("url").getStringValue();
              String viewCount = row.get("view_count").getStringValue();
              System.out.printf("%s : %s views\n", url, viewCount);
            }
          } catch (BigQueryException | InterruptedException e) {
            System.out.println("Simple App failed due to error: \n" + e.toString());
          }
        }
      }

      La consulta devuelve las 10 páginas de Stack Overflow más vistas y el número de visualizaciones de cada una.

    11. Haz clic con el botón derecho en SimpleApp.java y, luego, en Ejecutar Java. Si se te pide que autorices Cloud Shell y aceptes los términos, haz clic en Autorizar.

      El resultado es similar al siguiente:

      https://stackoverflow.com/questions/35159967 : 170023 views
      https://stackoverflow.com/questions/22879669 : 142581 views
      https://stackoverflow.com/questions/10604135 : 132406 views
      https://stackoverflow.com/questions/44564887 : 128781 views
      https://stackoverflow.com/questions/27060396 : 127008 views
      https://stackoverflow.com/questions/12482637 : 120766 views
      https://stackoverflow.com/questions/20673986 : 115720 views
      https://stackoverflow.com/questions/39109817 : 108368 views
      https://stackoverflow.com/questions/11057219 : 105175 views
      https://stackoverflow.com/questions/43195143 : 101878 views
      

    Has consultado correctamente un conjunto de datos público con la biblioteca cliente de Java de BigQuery.

    Node.js

    1. En Cloud Shell, crea un proyecto y un archivo de Node.js:

      mkdir bigquery-node-quickstart \
          && touch \
          bigquery-node-quickstart/app.js

      Este comando crea un proyecto de Node.js llamado bigquery-node-quickstart y un archivo llamado app.js.

    2. Abre el editor de Cloud Shell:

      cloudshell workspace bigquery-node-quickstart
    3. Para abrir un terminal en el editor de Cloud Shell, haz clic en Abrir terminal.

    4. Abre el directorio de tu proyecto:

      cd bigquery-node-quickstart
    5. Instala la biblioteca de cliente de BigQuery para Node.js:

      npm install @google-cloud/bigquery

      El resultado debería ser similar al siguiente:

      added 63 packages in 2s
      
    6. Haz clic en Abrir editor.

    7. En el panel Explorador, busca tu BIGQUERY-NODE-QUICKSTART proyecto.

    8. Haz clic en el archivo app.js para abrirlo.

    9. Para crear una consulta en el conjunto de datos bigquery-public-data.stackoverflow que devuelva las 10 páginas de Stack Overflow más vistas y el número de veces que se han visto, copia el siguiente código en el archivo app.js:

      // Import the Google Cloud client library
      const {BigQuery} = require('@google-cloud/bigquery');
      
      async function queryStackOverflow() {
        // Queries a public Stack Overflow dataset.
      
        // Create a client
        const bigqueryClient = new BigQuery();
      
        // The SQL query to run
        const sqlQuery = `SELECT
          CONCAT(
            'https://stackoverflow.com/questions/',
            CAST(id as STRING)) as url,
          view_count
          FROM \`bigquery-public-data.stackoverflow.posts_questions\`
          WHERE tags like '%google-bigquery%'
          ORDER BY view_count DESC
          LIMIT 10`;
      
        const options = {
          query: sqlQuery,
          // Location must match that of the dataset(s) referenced in the query.
          location: 'US',
        };
      
        // Run the query
        const [rows] = await bigqueryClient.query(options);
      
        console.log('Query Results:');
        rows.forEach(row => {
          const url = row['url'];
          const viewCount = row['view_count'];
          console.log(`url: ${url}, ${viewCount} views`);
        });
      }
      queryStackOverflow();

    10. Haz clic en Abrir terminal.

    11. En el terminal, ejecuta la secuencia de comandos app.js. Si se te pide que autorices Cloud Shell y aceptes los términos, haz clic en Autorizar.

      node app.js

      El resultado es similar al siguiente:

      Query Results:
      url: https://stackoverflow.com/questions/35159967, 170023 views
      url: https://stackoverflow.com/questions/22879669, 142581 views
      url: https://stackoverflow.com/questions/10604135, 132406 views
      url: https://stackoverflow.com/questions/44564887, 128781 views
      url: https://stackoverflow.com/questions/27060396, 127008 views
      url: https://stackoverflow.com/questions/12482637, 120766 views
      url: https://stackoverflow.com/questions/20673986, 115720 views
      url: https://stackoverflow.com/questions/39109817, 108368 views
      url: https://stackoverflow.com/questions/11057219, 105175 views
      url: https://stackoverflow.com/questions/43195143, 101878 views
      

    Has consultado correctamente un conjunto de datos público con la biblioteca de cliente de Node.js de BigQuery.

    PHP

    1. En Cloud Shell, crea un proyecto y un archivo PHP:

      mkdir bigquery-php-quickstart \
          && touch \
          bigquery-php-quickstart/app.php

      Este comando crea un proyecto de PHP llamado bigquery-php-quickstart y un archivo llamado app.php.

    2. Abre el editor de Cloud Shell:

      cloudshell workspace bigquery-php-quickstart
    3. Para abrir un terminal en el editor de Cloud Shell, haz clic en Abrir terminal.

    4. Abre el directorio de tu proyecto:

      cd bigquery-php-quickstart
    5. Instala la biblioteca de cliente de BigQuery para PHP:

      composer require google/cloud-bigquery

      La salida es similar a la siguiente. Se han omitido varias líneas para simplificar el resultado.

      Running composer update google/cloud-bigquery
      Loading composer repositories with package information
      Updating dependencies
      ...
      No security vulnerability advisories found
      Using version ^1.24 for google/cloud-bigquery
      
    6. Haz clic en Abrir editor.

    7. En el panel Explorador, busca tu BIGQUERY-PHP-QUICKSTART proyecto.

    8. Haz clic en el archivo app.php para abrirlo.

    9. Para crear una consulta en el conjunto de datos bigquery-public-data.stackoverflow que devuelva las 10 páginas de Stack Overflow más vistas y el número de veces que se han visto, copia el siguiente código en el archivo app.php:

      <?php
      # ...
      
      require __DIR__ . '/vendor/autoload.php';
      
      use Google\Cloud\BigQuery\BigQueryClient;
      
      
      $bigQuery = new BigQueryClient();
      $query = <<<ENDSQL
      SELECT
        CONCAT(
          'https://stackoverflow.com/questions/',
          CAST(id as STRING)) as url,
        view_count
      FROM `bigquery-public-data.stackoverflow.posts_questions`
      WHERE tags like '%google-bigquery%'
      ORDER BY view_count DESC
      LIMIT 10;
      ENDSQL;
      $queryJobConfig = $bigQuery->query($query);
      $queryResults = $bigQuery->runQuery($queryJobConfig);
      
      if ($queryResults->isComplete()) {
          $i = 0;
          $rows = $queryResults->rows();
          foreach ($rows as $row) {
              printf('--- Row %s ---' . PHP_EOL, ++$i);
              printf('url: %s, %s views' . PHP_EOL, $row['url'], $row['view_count']);
          }
          printf('Found %s row(s)' . PHP_EOL, $i);
      } else {
          throw new Exception('The query failed to complete');
      }

    10. Haz clic en Abrir terminal.

    11. En el terminal, ejecuta la secuencia de comandos app.php. Si se te pide que autorices Cloud Shell y aceptes los términos, haz clic en Autorizar.

      php app.php

      El resultado es similar al siguiente:

      --- Row 1 ---
      url: https://stackoverflow.com/questions/35159967, 170023 views
      --- Row 2 ---
      url: https://stackoverflow.com/questions/22879669, 142581 views
      --- Row 3 ---
      url: https://stackoverflow.com/questions/10604135, 132406 views
      --- Row 4 ---
      url: https://stackoverflow.com/questions/44564887, 128781 views
      --- Row 5 ---
      url: https://stackoverflow.com/questions/27060396, 127008 views
      --- Row 6 ---
      url: https://stackoverflow.com/questions/12482637, 120766 views
      --- Row 7 ---
      url: https://stackoverflow.com/questions/20673986, 115720 views
      --- Row 8 ---
      url: https://stackoverflow.com/questions/39109817, 108368 views
      --- Row 9 ---
      url: https://stackoverflow.com/questions/11057219, 105175 views
      --- Row 10 ---
      url: https://stackoverflow.com/questions/43195143, 101878 views
      Found 10 row(s)
      

    Has consultado correctamente un conjunto de datos público con la biblioteca cliente de PHP de BigQuery.

    Python

    1. En Cloud Shell, crea un proyecto y un archivo de Python:

      mkdir bigquery-python-quickstart \
          && touch \
          bigquery-python-quickstart/app.py

      Este comando crea un proyecto de Python llamado bigquery-python-quickstart y un archivo llamado app.py.

    2. Abre el editor de Cloud Shell:

      cloudshell workspace bigquery-python-quickstart
    3. Para abrir un terminal en el editor de Cloud Shell, haz clic en Abrir terminal.

    4. Abre el directorio de tu proyecto:

      cd bigquery-python-quickstart
    5. Instala la biblioteca de cliente de BigQuery para Python:

      pip install --upgrade google-cloud-bigquery

      La salida es similar a la siguiente. Se han omitido varias líneas para simplificar el resultado.

      Installing collected packages: google-cloud-bigquery
      ...
      Successfully installed google-cloud-bigquery-3.9.0
      ...
      
    6. Haz clic en Abrir editor.

    7. En el panel Explorador, busca tu BIGQUERY-PYTHON-QUICKSTART proyecto.

    8. Haz clic en el archivo app.py para abrirlo.

    9. Para crear una consulta en el conjunto de datos bigquery-public-data.stackoverflow que devuelva las 10 páginas de Stack Overflow más vistas y el número de veces que se han visto, copia el siguiente código en el archivo app.py:

      from google.cloud import bigquery
      
      
      
      def query_stackoverflow() -> None:
          client = bigquery.Client()
          results = client.query_and_wait(
              """
              SELECT
                CONCAT(
                  'https://stackoverflow.com/questions/',
                  CAST(id as STRING)) as url,
                view_count
              FROM `bigquery-public-data.stackoverflow.posts_questions`
              WHERE tags like '%google-bigquery%'
              ORDER BY view_count DESC
              LIMIT 10"""
          )  # Waits for job to complete.
      
          for row in results:
              print("{} : {} views".format(row.url, row.view_count))
      
      
      if __name__ == "__main__":
          query_stackoverflow()

    10. Haz clic en Abrir terminal.

    11. En el terminal, ejecuta la secuencia de comandos app.py. Si se te pide que autorices Cloud Shell y aceptes los términos, haz clic en Autorizar.

      python app.py

      El resultado es similar al siguiente:

      https://stackoverflow.com/questions/35159967 : 170023 views
      https://stackoverflow.com/questions/22879669 : 142581 views
      https://stackoverflow.com/questions/10604135 : 132406 views
      https://stackoverflow.com/questions/44564887 : 128781 views
      https://stackoverflow.com/questions/27060396 : 127008 views
      https://stackoverflow.com/questions/12482637 : 120766 views
      https://stackoverflow.com/questions/20673986 : 115720 views
      https://stackoverflow.com/questions/39109817 : 108368 views
      https://stackoverflow.com/questions/11057219 : 105175 views
      https://stackoverflow.com/questions/43195143 : 101878 views
      

    Has consultado correctamente un conjunto de datos público con la biblioteca de cliente de Python de BigQuery.

    Ruby

    1. En Cloud Shell, crea un proyecto y un archivo de Ruby:

      mkdir bigquery-ruby-quickstart \
          && touch \
          bigquery-ruby-quickstart/app.rb

      Este comando crea un proyecto de Ruby llamado bigquery-ruby-quickstart y un archivo llamado app.rb.

    2. Abre el editor de Cloud Shell:

      cloudshell workspace bigquery-ruby-quickstart
    3. Para abrir un terminal en el editor de Cloud Shell, haz clic en Abrir terminal.

    4. Abre el directorio de tu proyecto:

      cd bigquery-ruby-quickstart
    5. Instala la biblioteca de cliente de BigQuery para Ruby:

      gem install google-cloud-bigquery

      La salida es similar a la siguiente. Se han omitido varias líneas para simplificar el resultado.

      23 gems installed
      
    6. Haz clic en Abrir editor.

    7. En el panel Explorador, busca tu BIGQUERY-RUBY-QUICKSTART proyecto.

    8. Haz clic en el archivo app.rb para abrirlo.

    9. Para crear una consulta en el conjunto de datos bigquery-public-data.stackoverflow que devuelva las 10 páginas de Stack Overflow más vistas y el número de veces que se han visto, copia el siguiente código en el archivo app.rb:

      require "google/cloud/bigquery"
      
      # This uses Application Default Credentials to authenticate.
      # @see https://cloud.google.com/bigquery/docs/authentication/getting-started
      bigquery = Google::Cloud::Bigquery.new
      
      sql     = "SELECT " \
                "CONCAT('https://stackoverflow.com/questions/', CAST(id as STRING)) as url, view_count " \
                "FROM `bigquery-public-data.stackoverflow.posts_questions` " \
                "WHERE tags like '%google-bigquery%' " \
                "ORDER BY view_count DESC LIMIT 10"
      results = bigquery.query sql
      
      results.each do |row|
        puts "#{row[:url]}: #{row[:view_count]} views"
      end

    10. Haz clic en Abrir terminal.

    11. En el terminal, ejecuta la secuencia de comandos app.rb. Si se te pide que autorices Cloud Shell y aceptes los términos, haz clic en Autorizar.

      ruby app.rb

      El resultado es similar al siguiente:

      https://stackoverflow.com/questions/35159967: 170023 views
      https://stackoverflow.com/questions/22879669: 142581 views
      https://stackoverflow.com/questions/10604135: 132406 views
      https://stackoverflow.com/questions/44564887: 128781 views
      https://stackoverflow.com/questions/27060396: 127008 views
      https://stackoverflow.com/questions/12482637: 120766 views
      https://stackoverflow.com/questions/20673986: 115720 views
      https://stackoverflow.com/questions/39109817: 108368 views
      https://stackoverflow.com/questions/11057219: 105175 views
      https://stackoverflow.com/questions/43195143: 101878 views
      

    Has consultado correctamente un conjunto de datos público con la biblioteca de cliente de Ruby de BigQuery.

    Limpieza

    Para evitar que se apliquen cargos en tu Google Cloud cuenta, elimina tu Google Cloud proyecto o los recursos que has creado en este tutorial.

    Eliminar el proyecto

    La forma más fácil de evitar que te cobren es eliminar el proyecto que has creado para el tutorial.

    Para ello, sigue las instrucciones que aparecen a continuación:

    1. In the Google Cloud console, go to the Manage resources page.

      Go to Manage resources

    2. In the project list, select the project that you want to delete, and then click Delete.
    3. In the dialog, type the project ID, and then click Shut down to delete the project.

    Eliminar los recursos

    Si has usado un proyecto que ya existía, elimina los recursos que hayas creado:

    C#

    1. En Cloud Shell, sube un directorio:

      cd ..
    2. Elimina la carpeta BigQueryCsharpDemo que has creado:

      rm -R BigQueryCsharpDemo

      La marca -R elimina todos los recursos de una carpeta.

    Go

    1. En Cloud Shell, sube un directorio:

      cd ..
    2. Elimina la carpeta bigquery-go-quickstart que has creado:

      rm -R bigquery-go-quickstart

      La marca -R elimina todos los recursos de una carpeta.

    Java

    1. En Cloud Shell, sube un directorio:

      cd ..
    2. Elimina la carpeta bigquery-java-quickstart que has creado:

      rm -R bigquery-java-quickstart

      La marca -R elimina todos los recursos de una carpeta.

    Node.js

    1. En Cloud Shell, sube un directorio:

      cd ..
    2. Elimina la carpeta bigquery-node-quickstart que has creado:

      rm -R bigquery-node-quickstart

      La marca -R elimina todos los recursos de una carpeta.

    PHP

    1. En Cloud Shell, sube un directorio:

      cd ..
    2. Elimina la carpeta bigquery-php-quickstart que has creado:

      rm -R bigquery-php-quickstart

      La marca -R elimina todos los recursos de una carpeta.

    Python

    1. En Cloud Shell, sube un directorio:

      cd ..
    2. Elimina la carpeta bigquery-python-quickstart que has creado:

      rm -R bigquery-python-quickstart

      La marca -R elimina todos los recursos de una carpeta.

    Ruby

    1. En Cloud Shell, sube un directorio:

      cd ..
    2. Elimina la carpeta bigquery-ruby-quickstart que has creado:

      rm -R bigquery-ruby-quickstart

      La marca -R elimina todos los recursos de una carpeta.

    Siguientes pasos