将查询结果导出到文件

本文档介绍如何将查询结果保存为 CSV 或 JSON 等文件。

将查询结果下载到本地文件

bq 命令行工具或 API 不支持将查询结果下载到本地文件。

如需以 CSV 格式或换行符分隔的 JSON 文件格式下载查询结果,请使用 Google Cloud 控制台:

控制台

  1. 在 Google Cloud 控制台中,打开 BigQuery 页面。

    转到 BigQuery

  2. 点击编写新查询

  3. 查询编辑器文本区域中输入有效的 SQL 查询。

  4. 可选:如需更改处理位置,请点击更多并选择查询设置。对于数据位置,选择您的数据所在的位置

  5. 点击运行

  6. 返回结果后,点击保存结果,并选择要保存结果的格式或位置。

    此时文件会下载到您浏览器的默认下载位置。

将查询结果保存到 Google 云端硬盘

bq 命令行工具或 API 不支持将查询结果保存到 Google 云端硬盘。

在尝试将 BigQuery 结果保存到 Google 云端硬盘时,您可能会收到错误。发生此错误是因为 Drive SDK API 无法访问 Google Workspace。要解决此问题,您必须启用用户账号,以便使用 Drive SDK API 访问 Google 云端硬盘

如需将查询结果保存到 Google 云端硬盘,请使用 Google Cloud 控制台:

控制台

  1. 在 Google Cloud 控制台中,打开 BigQuery 页面。

    转到 BigQuery

  2. 查询编辑器文本区域中输入有效的 SQL 查询。

  3. 点击运行

  4. 返回结果后,点击保存结果

    “保存结果”按钮的屏幕截图

  5. 选择 CSV(Google 云端硬盘)JSON(Google 云端硬盘)。将结果保存到 Google 云端硬盘时,您无法选择位置。结果始终会保存到根目录“My Drive”位置。

  6. 将结果保存到 Google 云端硬盘可能需要几分钟时间。结果保存后,您会收到包含以下文件名的对话框消息:bq-results-[TIMESTAMP]-[RANDOM_CHARACTERS].[CSV or JSON]

    “保存结果”按钮的屏幕截图

  7. 在对话框消息中,点击打开以打开该文件,或导航到 Google 云端硬盘并点击我的云端硬盘

将查询结果保存到 Google 表格

bq 命令行工具或 API 不支持将查询结果保存到 Google 表格。

当您尝试打开 Google 表格中的 BigQuery 结果时,可能会遇到错误。发生此错误是因为 Drive SDK API 无法访问 Google Workspace。如需解决此问题,您必须启用用户账号以使用 Drive SDK API 访问 Google 表格

如需将查询结果保存到 Google 表格,请使用 Google Cloud 控制台:

控制台

  1. 在 Google Cloud 控制台中,打开 BigQuery 页面。

    转到 BigQuery

  2. 点击编写新查询

  3. 查询编辑器文本区域中输入有效的 SQL 查询。

  4. 可选:如需更改处理位置,请点击更多并选择查询设置。对于数据位置,选择您的数据所在的位置

  5. 点击运行

  6. 返回结果后,点击保存结果,并选择 Google 表格

  7. 如有必要,请按照系统提示登录到您的 Google 账号,然后点击允许以授予 BigQuery 相应的权限,使其能够将数据写入您的 Google 云端硬盘的 MY Drive 文件夹。

    按照系统提示操作后,您应该会收到一封主题为“BigQuery 客户端工具已连接到您的 Google 账号”(BigQuery Client Tools connected to your Google Account) 的电子邮件。这封电子邮件包含有关您已授予的权限的信息以及移除权限的步骤。

  8. 保存结果后,Google Cloud 控制台中的查询结果下方会显示类似如下的消息:Saved to Sheets as "results-20190225-103531. Open。您可以点击此消息中的链接以在 Google 表格中查看您的结果,也可以导航到 My Drive 文件夹并手动打开文件。

    当您将查询结果保存到 Google 表格时,文件名会以 results-[DATE] 开头,其中 [DATE] 是今天的日期(格式为 YYYYMMDD)。

排查文件导出问题

将数据从 BigQuery 导出到 Google 表格时,您可能会发现工作表中的某些单元格为空。当您向单元格写入的数据超过 Google 表格的 50,000 个字符的限制时,会发生这种情况。如需解决此问题,请在 SQL 查询中使用字符串函数,将包含长数据的列拆分为两列或更多列,然后将结果再次保存到工作表。

后续步骤