使用 BigQuery Node.js 客户端库查询公共数据集

使用 BigQuery Node.js 客户端库查询公共数据集

了解如何:

  1. 在 Google Cloud 项目中激活 Cloud Shell。
  2. 打开 Cloud Shell 编辑器。
  3. 准备执行查询操作所需的文件。
  4. 在 BigQuery 中查询公共数据集。
  5. 清理。

预计完成时间:

点击开始即可开始。

在 Google Cloud 项目中激活 Cloud Shell

  1. 如果您没有为项目启用结算功能,系统将自动使用 BigQuery 沙盒。借助 BigQuery 沙盒,您可以免费使用限定的 BigQuery 功能,以此了解 BigQuery。如果您不打算在本文档之外使用您的项目,建议您使用 BigQuery 沙盒。

  2. 点击激活 Cloud Shell点击查看

如需了解如何打开 Cloud Shell 编辑器,请点击下一步

打开 Cloud Shell Editor

  1. 在 Cloud Shell 中,创建新的 Node.js 项目和文件:

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

    此命令会创建一个名为 bigquery-node-quickstart 的 Node.js 项目和一个名为 app.js 的文件。

  2. 打开 Cloud Shell 编辑器:

    cloudshell workspace bigquery-node-quickstart
    

如需了解如何准备执行查询操作所需的文件,请点击下一步

准备执行查询操作所需的文件

  1. 如需在 Cloud Shell 编辑器中打开终端,请点击打开终端

  2. 打开项目目录:

    cd bigquery-node-quickstart
    
  3. 安装 Node.js 版 BigQuery 客户端库:

    npm install @google-cloud/bigquery
    

    输出类似于以下内容:

    added 63 packages in 2s
    

如需了解如何在 BigQuery 中查询公共数据集,请点击下一步

在 BigQuery 中查询公共数据集

  1. 点击打开编辑器

  2. 探索器窗格中,找到您的 BIGQUERY-NODE-QUICKSTART 项目。

  3. 点击 app.js 文件以将其打开。

  4. 如需针对 bigquery-public-data.stackoverflow 数据集创建查询以返回前 10 个最常查看的 Stack Overflow 页面及其查看次数,请将以下代码复制到 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();

  5. 点击打开终端

  6. 在终端运行 app.js 脚本。如果系统提示您授权 Cloud Shell 并同意相应条款,请点击授权

    node app.js
    

    结果类似于以下内容:

    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
    

您已成功使用 BigQuery Node.js 客户端库查询公共数据集。

为避免系统向您的账号收取费用以及了解后续步骤,请点击下一步

后续步骤

您可以保留您创建的资源并利用 BigQuery 执行更多操作,也可以清理这些资源以避免产生结算费用。

利用 BigQuery 执行更多操作

清理

为避免系统向您的 Google Cloud 账号收取费用,请删除您的 Google Cloud 项目,或删除您在本演示中创建的资源。

删除项目

如果您为了解 BigQuery 创建了一个新项目,但现在不再需要该项目,请删除项目。请注意,删除项目会同时删除项目中的所有内容,并且自定义项目 ID 也会丢失。

删除资源

如果您使用的是现有项目,请删除您创建的 bigquery-node-quickstart 文件夹:

  1. 在 Cloud Shell 中,转到上一级目录:

    cd ..
    
  2. 删除您创建的资源:

    rm -R bigquery-node-quickstart
    

    -R 标志表示删除文件夹中的所有资产。