2016-01-23 58 views
3

在我的一個項目中,我在每月中旬收到客戶訂單詳情,這是一個約140億行文件。我需要在1周內將它們上傳到我的系統(每條記錄1行),然後用戶可以查詢。在Azure Table Storage中插入140億條記錄

我決定使用表存儲基於價格和性能考慮進行存儲。但我發現表存儲的性能是「每個分區每秒2000個實體」和「每個帳戶每秒20,000個實體」。 https://azure.microsoft.com/en-us/documentation/articles/storage-scalability-targets/

這意味着如果我使用1個存儲帳戶,我需要大約1個月才能上傳它們,這是不可接受的。

有什麼解決方案我可以加快在1周內完成上傳任務?

+0

你可能想看看DynamoDB,而不是Azure的 – Androme

+1

2個問題:1)有多大的尺寸爲1項紀錄(1KB,2KB等)? 2)用戶如何查詢這些數據? Id簡單地查找訂單嗎? –

+0

@DoomStone我的應用程序建立在天青之上,所以我必須使用它。 –

回答

2

對此的簡單回答是使用多個存儲帳戶。如果您對數據進行分區並將其分段到多個存儲帳戶,則可以根據需要獲得儘可能多的性能。之後您只需要另一個圖層來聚合數據。

您可能會有一個較慢的進程在後臺創建一個大的主表。

您可能已經發現了這一點,但有關導入大型數據集到Azure的表極好article

+0

是的,使用多個存儲帳戶是候選解決方案,但它可能需要將一個客戶的數據拆分爲多個帳戶。由於我使用客戶ID作爲分區鍵,用戶將根據客戶ID進行查詢,這可能會降低查詢性能。 –