Google BigQuery:在更改G Storage中的文件夹结构后,为什么创建GBQ表要慢得多?

时间:2017-07-20 16:19:54

标签: python google-bigquery google-cloud-storage

在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等作业来创建表格时。

1 个答案:

答案 0 :(得分:2)

不确定将所有文件合并为一个文件是将数据加载到BigQuery的好方法。正如您在Mosha的这个answer中看到的那样,BigQuery不会并行读取压缩文件。

这就解释了为什么你的工作需要花费2个小时来完成工作。

不过,我想知道为什么在GCS文件夹中有多个文件会有问题。由于它们都位于相同的路径中,因此它就像一个压缩文件,在同一个文件夹中有几个较小的部分。