2013-04-24 172 views
0

我有大約28GB的Data-In,存儲在Windows Azure Table Storage中的行數超過1,350萬行。優化Windows Azure表存儲?

6列,除1小數和1日期時間以外的所有整數。 分區密鑰長約10個字符。 RowKey是一個guid。

這是爲了我的理智檢查 - 這似乎是正確的嗎?

SQL數據庫我從遷移的數據有WAY更多的數據,只有4.9GB。

有沒有縮小尺寸的方法?我不懷疑重命名的屬性會對此產生巨大的影響。

*請注意,這只是數據的採樣估計的長途費用。

+0

也許這不是說這個的時候,但是你確定你使用適當類型的存儲爲你的信息?看起來你得到了一個固定的模式和其他更適合關係數據庫服務的東西...... – Leonardo 2013-04-24 20:15:34

+0

是的,我忘了提及這個遷移只是測試我可以預期的成本。架構不固定,數據本質上是非關係型的。 – asunrey 2013-04-24 20:29:53

+1

@Leonardo - 我不同意;關係數據庫與關係數據一起發光,但如果數據可以通過分區+行直接查找,則表存儲是一個非常棒的替代方案,不需要大量的SQL(並且可以擴展到200TB,SQL Az不能在Azure中實現)。無論如何:沒有詳細瞭解數據如何被訪問的信息,絕對沒有辦法做出這種決定。 – 2013-04-25 02:37:10

回答

1

嗯......事情似乎沒有加起來正確的數據不只是改變。

  • 每個屬性都是一個鍵/值對,所以在計算中包含屬性名稱。
  • 數據本身可能在75-100字節左右,包括屬性名稱平均每個10個字符。 4個int等於16個字節,小數點(double?)8個字節,時間戳8個字節。因此,我們只需要爲每個實體添加100個字節。
  • 在1400萬個實體中,您將擁有100 * 1350萬或約1.35 GB的實體。

你的數字是約。一個數量級以上(每個實體大約2,000字節)。即使從序列化中考慮批量,我也沒有看到你是如何獲得這麼大的尺寸的。只是好奇:你是如何計算當前表格大小的?還有......你是否做過多次測試,從而得到更多以前運行的數據?您是隻測量表格大小,還是存儲帳戶中使用的總存儲空間?如果是後者,可能會有其他表格(如診斷)也佔用空間。

+0

我手工計算並得到相同的估計。但是當我查看門戶摘要時,我看到Data Transfer In是27GB。我在一個免費的帳戶,並已被禁用,因爲我無法進一步測試(雖然我可能會改變帳戶類型)。 – asunrey 2013-04-25 18:33:31

+0

我確實啓用了日誌記錄。這是否包括存儲?哦,我敢打賭,它確實。我還使用Cloud Storage Studio從Sql數據庫遷移數據。我不知道該程序是否會在存儲中增加一些開銷。 – asunrey 2013-04-25 18:34:04

0

重命名在那些堅持應該有大小有一定影響的實體屬性。不幸的是,這隻會用於未來保存的數據。現有因爲你已經更名的屬性