将 CSV 从 GCS 批量加载到 BigQuery 时,表数据是增量查看还是仅在所有文件加载后才可查看?

Posted

技术标签:

【中文标题】将 CSV 从 GCS 批量加载到 BigQuery 时,表数据是增量查看还是仅在所有文件加载后才可查看?【英文标题】:When batch loading CSVs from GCS to BigQuery, is the table data viewable incrementally, or only once all files are loaded? 【发布时间】:2021-11-26 17:52:45 【问题描述】:

我希望使用通配符将 CSV 数据从 Google Cloud Storage 批量加载到 BigQuery 表(请参阅docs)(请参阅docs),我想知道是否:

    表中的数据只有在所有 CSV 已加载(即文件在加载到 BigQuery 之前以某种方式进行整理)后才可用 表中的数据将随着每个加载的 CSV增量更新(即每个 CSV 单独加载,作为单独的作业)

在某些情况下,我正在尝试确定如果用户在加载批量 CSV 的作业完成之前访问表,是否可以查看不完整的表数据。

之前有人问过here 类似的问题,但我没有足够的声誉来发表评论:'(

感谢您的帮助!

【问题讨论】:

【参考方案1】:

当作业完成时,数据是可见的,因此在所有文件被摄取之后。

确实,当您定义作业时,您可以指定 WriteTruncate 处置。这意味着所有当前数据都将被新数据替换。如果作业失败,当前数据保持不变。在增加负载的情况下,这种行为是不可能的。

如果您想提出增量加载,您可以使用效率不高的流程:使用数据流读取文件并将内容流式传输到 BigQuery。这一次,用户将能够通过请求查看增量数据(不是使用控制台中的预览功能,因为流式数据会在 BigQuery 的缓冲区中停留一段时间(最长 90 分钟))

【讨论】:

以上是关于将 CSV 从 GCS 批量加载到 BigQuery 时,表数据是增量查看还是仅在所有文件加载后才可查看?的主要内容,如果未能解决你的问题,请参考以下文章

GCP将数据作为字符串从GCS中的CSV文件加载到BigQuery表中

从 GCS 获取海量 csv 文件到 BQ

将 GCS 存储桶中的 .csv 文件中的数据加载到 Cloud SQL 表中:

将 csv 文件从云存储批量加载到 bigquery

如何将 API 调用返回的数据直接加载到 BigQuery 中而不存储在 GCS 中?

从外部表读取与加载数据并在 Bigquery 中读取