2009-07-31 53 views
2

我將開始一個新項目。我需要處理.NET應用程序中的數百個數據。現在就提供有關這個項目的詳細信息是非常早的階段。一些概述如下:處理千兆字節的數據

  1. 大量寫入和地段上相同的表讀取,非常實時
  2. 縮放是非常重要的,因爲客戶堅持數據庫服務器的擴展非常頻繁,因此,應用服務器以及
  3. 前瞻,很多很多用法的聚合查詢的條件可以實施
  4. 每行數據可能包含大量的屬性來處理

我建議/公頃詠以下作爲溶液:

  1. 使用分佈式持久性的哈希表的排序(未S3而是點播服務的一個)
  2. 使用的Hadoop /蜂房喜歡(在.NET任何替換?)用於跨過所述節點的任何分析過程
  3. GUI教學貫徹在ASP.NET/Silverlight(有很多ajaxification的,只要需要)

你們有什麼覺得?我在這裏有什麼意義嗎?

+0

「非常實時」不是一個有用的陳述。如果你需要跟蹤冰川的運動,那麼'實時'是'真的很慢'。 – 2009-07-31 11:43:52

回答

2

您的目標是性能,可維護性,提高成功機率,成爲先鋒嗎?

不要過早放棄關係數據庫。使用100美元的外部硬盤和樣本數據生成器(RedGate的很好),您可以很容易地模擬這種工作負載。

在非關係型和雲數據庫上模擬工作負載,您可能正在編寫自己的工具。

+0

我的目的是看看使用非關係數據庫和分佈式查詢處理有多好。我不確定關係數據庫或類似的架構如何在這種情況下工作 – asyncwait 2009-07-31 11:38:47

2

「前瞻,很多很多用法的聚合查詢的條件可以實施」

這是一個數據倉庫的標誌。

這是DW處理的技巧。

  1. 數據是FLAT。事實和維度。最小的結構,因爲它大部分是加載和不更新。

  2. 要做聚合,每個查詢必須是一個簡單的SELECT SUM() or COUNT() FROM fact JOIN dimension GROUP BY dimension attribute。如果你正確地做到這一點,以便每個查詢都有這種形式,性能可以非常非常好。

  3. 數據可以存儲在平面文件中,直到您想要聚合爲止。然後加載人們實際打算使用的數據,並從主數據集創建「數據智能」。

沒有什麼比簡單的平面文件更快。您不需要任何複雜的工作就可以處理加載到RDBMS數據集中用於彙總和報告的TB級平面文件(根據需要)。

簡單的維度和事實表的簡單批量加載可以非常快地使用RDBMS的工具。

您可以使用超高速平面文件處理輕鬆預先分配所有PK和FK。這使得批量加載更簡單。

獲取Ralph Kimball的數據倉庫工具包書籍。

0

「在相同的表上進行大量讀寫操作,非常實時」 - 完整性是否重要?這些寫入是否是事務性的?如果是這樣,堅持RDBMS。

縮放可能會很棘手,但這並不意味着您必須使用雲計算的東西。數據庫管理系統中的複製通常會和IT應用程序集羣,負載平衡器等一起發揮作用。

1

現代數據庫可以很好地處理千兆字節。當你達到TB和PB時,RDBMS往往會崩潰。如果你正在預測那種負載,那麼像HBase或Cassandra這樣的東西可能是醫生訂購的東西。如果沒有,花一些質量時間調整數據庫,插入緩存層(memached)等。

0

爲RDBMS提供保持完整性的責任。把這個項目看作是一個數據倉庫。 保持一切清潔,你不需要去使用很多第三方工具:改用RDBMS工具。 我的意思是,使用RDBMS擁有的所有工具,並編寫一個GUI,使用設計良好的物理數據模型(索引,分區等)的良好編寫的存儲過程從Db中提取所有數據。

Teradata可以處理大量數據並且可擴展。

相關問題