使用 bq 工具查询公共数据集

了解如何使用 bq 命令行工具检查和查询公共数据集。


如需在 Google Cloud 控制台中直接遵循有关此任务的分步指导,请点击操作演示

操作演示


准备工作

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  4. 确保您的 Google Cloud 项目已启用结算功能

  5. 如果您没有为本教程中使用的 Google Cloud 项目启用结算功能,则需要在 BigQuery 沙盒中处理数据。借助 BigQuery 沙盒,您可以免费使用限定的 BigQuery 功能,了解 BigQuery。

  6. 确保已启用 BigQuery API。

    启用 API

    如果您创建了一个新项目,则系统会自动启用 BigQuery API。

  7. 在 Google Cloud 控制台中,激活 Cloud Shell。

    激活 Cloud Shell

    Cloud Shell 会话随即会在 Google Cloud 控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟时间来完成初始化。

检查公共数据集

BigQuery 在 bigquery-public-data.samples 数据集中提供了多个示例表,您可以对这些示例表执行查询操作。在本教程中,您将对 shakespeare 表运行查询;对于莎士比亚每部戏剧中的每一个词语,该表都包含一个对应的条目。

检查 samples 数据集中的 shakespeare 表:

bq show bigquery-public-data:samples.shakespeare

输出类似于以下内容:为简化输出,省略了某些列。

  Last modified                  Schema                 Total Rows   Total Bytes
----------------- ------------------------------------ ------------ ------------
 14 Mar 17:16:45   |- word: string (required)           164656       6432064
                   |- word_count: integer (required)
                   |- corpus: string (required)
                   |- corpus_date: integer (required)

查询公共数据集

使用 bq query 命令对数据运行 SQL 查询。

  1. 确定子字符串 raisin 在莎士比亚作品集中出现的次数:

    bq query --use_legacy_sql=false \
        'SELECT
          word,
          SUM(word_count) AS count
        FROM
          `bigquery-public-data.samples.shakespeare`
        WHERE
          word LIKE "%raisin%"
        GROUP BY
          word;'
    

    输出类似于以下内容:

    +---------------+-------+
    |     word      | count |
    +---------------+-------+
    | praising      |     8 |
    | Praising      |     4 |
    | raising       |     5 |
    | dispraising   |     2 |
    | dispraisingly |     1 |
    | raisins       |     1 |
    +---------------+-------+
    
  2. 在莎士比亚作品集中搜索子字符串 huzzah

    bq query --use_legacy_sql=false \
        'SELECT
          word
        FROM
          `bigquery-public-data.samples.shakespeare`
        WHERE
          word = "huzzah";'
    

    由于该子字符串未出现在莎士比亚作品集中,因此不会返回任何结果。

清理

为避免因本页面中使用的资源导致您的 Google Cloud 账号产生费用,请删除包含这些资源的 Google Cloud 项目。

删除项目

如果您使用 BigQuery 沙盒查询公共数据集,则您的项目不会启用结算功能。

为了避免产生费用,最简单的方法是删除您为本教程创建的项目。

如需删除项目,请执行以下操作:

  1. 在 Google Cloud 控制台中,进入管理资源页面。

    转到“管理资源”

  2. 在项目列表中,选择要删除的项目,然后点击删除
  3. 在对话框中输入项目 ID,然后点击关闭以删除项目。

后续步骤