Bigquery 直接查询 Google Storage 中的 csv 文件

Posted

技术标签:

【中文标题】Bigquery 直接查询 Google Storage 中的 csv 文件【英文标题】:Bigquery querying dirtectly over csv files in Google Storage 【发布时间】:2021-08-02 15:24:56 【问题描述】:

我想就 GCP 的技术问题向您寻求指导。

是否可以在 bigquery 中直接从存储中读取和查询 CSV 文件而无需加载表? 例如,如果我在路径 gs://mybucket/file1.csv 和 gs://mybucket/file2.csv 中有 2 个 csv,我可以直接对文件进行查询吗?类似于“从 [myproject.mybucket.file2.csv] 中选择 *”

我的目标是能够根据需要从一组(大型)csv 文件中查询信息,以及这些文件的起始日期。我的目标是不加载不使用的数据,仅在必要时查阅数据。

如果这不可能,你给我什么建议不要永久加载所有数据?

非常感谢您。

【问题讨论】:

【参考方案1】:

是的,这可以做到。您需要做的是定义一个外部表,它允许您在不摄取数据的情况下查询云存储中的数据。更多信息请参见:https://cloud.google.com/bigquery/external-data-cloud-storage

如果您在云存储中的 CSV 文件也以与配置单元分区布局兼容的格式组织,您还可以使用它来帮助减少扫描数据或将其用作表的附加伪列。如果不是,请注意_FILE_NAME 周围的指南,如果 CSV 的文件名与您的查询相关,该指南也很有用。

【讨论】:

以上是关于Bigquery 直接查询 Google Storage 中的 csv 文件的主要内容,如果未能解决你的问题,请参考以下文章

Google BigQuery:将查询结果保存到表时找不到数据集

通过 Google BigQuery API 将查询结果导出为 JSON

使用 Google Composer 运行 Bigquery 查询

Google BigQuery:停止运行查询

使用 google-cloud 库执行 BigQuery 查询时出现异常

BigQuery 中的奇怪错误