2013-07-02 71 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