在 Google Storage 中,我的文件夹结构如下:
my_bucket---+--file_1.gz # 1MB
|
+--file_2.gz # 1MB
|
+--file_3.gz # 1MB
|
+--file_5.gz # 1MB
|
+-- ...
此文件夹结构包含 50,000 个文件。要使用 my_bucket 在 Google BigQuery 中创建新表需要花费几分钟时间。然后我想我应该将文件夹结构更改为:
my_bucket---+--all_files.gz # 50 GB
现在,当我使用相同的流程来创建作业时,大约需要 2 小时。这是怎么回事?
我将其更改为此文件夹结构的原因是,我将每天上传到 my_bucket,并且我希望减少单个文件的数量,因此在上传到存储之前,我将合并所有 csv
文件合并为一个大 csv
文件,然后将其压缩为 gz
文件。当我完成上传并准备通过重新运行类似 this 的作业来创建表时.
最佳答案
不确定将所有文件合并为一个文件是否是将数据加载到 BigQuery 的好方法。正如您在 answer 中看到的那样根据 Mosha 的说法,BigQuery 不会并行读取压缩文件。
这可以解释为什么在您的情况下需要 2 小时才能完成作业。
不过,我想知道为什么 GCS 文件夹中存在多个文件会出现问题。由于它们都位于同一路径中,因此它的工作方式就像一个压缩文件,在同一文件夹内有几个较小的部分。
关于python - Google BigQuery : After changing folder structure in G Storage, 为什么创建 GBQ 表要慢得多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45220226/