使用 BigQuery Python 客户端库查询公共数据集

使用 BigQuery Python 客户端库查询公共数据集

了解如何:

  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 中,创建新的 Python 项目和文件:

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

    此命令会创建一个名为 bigquery-python-quickstart 的 Python 项目和一个名为 app.py 的文件。

  2. 打开 Cloud Shell 编辑器:

    cloudshell workspace bigquery-python-quickstart
    

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

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

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

  2. 打开项目目录:

    cd bigquery-python-quickstart
    
  3. 安装 Python 版 BigQuery 客户端库:

    pip install --upgrade google-cloud-bigquery
    

    输出类似于以下内容:为了简化输出,此处省略了数行代码。

    Installing collected packages: google-cloud-bigquery
    ...
    Successfully installed google-cloud-bigquery-3.9.0
    ...
    

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

在 BigQuery 中查询公共数据集

  1. 点击打开编辑器

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

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

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

  5. 点击打开终端

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

    python app.py
    

    结果类似于以下内容:

    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
    

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

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

后续步骤

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

利用 BigQuery 执行更多操作

清理

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

删除项目

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

删除资源

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

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

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

    rm -R bigquery-python-quickstart
    

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