2013-07-02 66 views
3

我正在使用Big Query进行测试。基本上我有50,000个文件,平均每个文件大小为27MB。一些较大,一些较小。从Google云端存储加载到Big Query似乎很慢

定时上传的每个档案显示:

真正0m49.868s 用户0m0.297s SYS 0m0.173s

使用类似于:

时间BQ负载--encoding =“UTF -8" --field_delimiter = “〜” 数据集GS://project/b_20130630_0003_1/20130630_0003_4565900000.tsv schema.json

运行命令: “LS BQ -j”,并随后运行 “BQ显示-j” 揭示了我有任务执行过程中遇到

作业类型国家开始时间持续字节加工


加载失败7月01日22点21分18秒0:00:00

错误:E采用错误。超过配额:每张表对于此表过多的进口数

检查完数据库后,行似乎已加载正常,这令人费解,因为出现错误,我预计没有任何内容会被加载。问题是,我真的不明白我是如何达到配额限制的,因为我刚刚刚刚开始上传文件 ,并认为限制为200,000个请求。

所有数据当前都在Google云端存储上,所以我期望数据加载的发生相当快,因为​​云存储和Big Query之间的交互都在云端。

按我的计算,整个负荷将会是:(50,000 * 49秒)28天。

有点希望这些数字是错的。

谢谢。

+2

回头仔细阅读BQ命令行实用程序帮助。看来我正在将每个文件作为单独的加载作业加载。我认为这是造成这个问题的原因。对于我来说,你可以使用globbing而不是加载每个文件,即bq load --encoding =“UTF-8”--field_delimiter =“〜”数据集gs:// cs/b_20130630_0003_1/* schema.json。注意通配符。将尝试使用最多10,000个文件执行加载作业。 – richjcooper

+0

我很想知道这究竟是什么!那是一个疯狂的文件数量 –

回答

3

每个表的配额限制是每天1000个负载。这是为了鼓励人们批量加载,因为如果我们能够一次看到更多的数据,我们就可以生成更高效的表格表示。

BigQuery可以并行执行加载作业。根据您的负载大小,会有一些工作人员分配到您的工作中。如果你的文件很大,这些文件将在工作人员中分割;或者如果您传递多个文件,则每个工作人员可能会处理不同的文件。所以一个文件所花费的时间并不代表用多个文件运行加载作业所需的时间。

+0

我终于明白了这一点。之前我曾为其他一些Google计算机设置了一些计算机,并且按照您正确指出的方式进行了并行加载。加载的这个方面是我以前错过的东西。无论如何,在一天结束时,我已经上传了100亿行。干杯。 – richjcooper