在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等作业来创建表格时。
答案 0 :(得分:2)
不确定将所有文件合并为一个文件是将数据加载到BigQuery的好方法。正如您在Mosha的这个answer中看到的那样,BigQuery不会并行读取压缩文件。
这就解释了为什么你的工作需要花费2个小时来完成工作。
不过,我想知道为什么在GCS文件夹中有多个文件会有问题。由于它们都位于相同的路径中,因此它就像一个压缩文件,在同一个文件夹中有几个较小的部分。