簡體   English   中英

存儲大量分析數據

[英]Storing a large amount of analytical data

我通常使用SQL Server和C#來處理我所做的所有項目,但是我正在研究一個可能跨越數十億行數據的項目,我覺得在SQL Server中這樣做並不舒服。

我將要存儲的數據是

  • 約會時間
  • IP地址
  • LINKID
  • 可能是其他字符串相關數據

我之前只處理過關系數據庫,因此正在尋找關於哪種數據庫技術最適合這種類型的數據存儲的一些指導。 可以擴展並以低成本執行此操作(與分片SQL Server相比)

然后我需要根據linkId提取這些數據。

我也可以在查詢中對數據庫進行排序,還是最好在應用程序中完成?

編輯:它將基於雲。 因此,我正在研究SQL Azure,我已廣泛使用它,但它只是在行數增加時才開始引發問題。

由於您正在尋找一般性指導,我覺得可以提供您過早被解雇的答案;-)。 Microsoft SQL Server絕對可以處理這種情況(通常意義上有這些字段和數十億行的表)。 我個人在一個有4個節點的數據倉庫上工作,每個節點的主事實表都有1.2到15億行(並且還在增長),並且對查詢的響應速度很快,盡管數據模型和索引的某些方面可能有做得更好。 它是一個基於Web的應用程序,許多用戶整天都在使用它(盡管一天中的某些時段比其他時段更難)。 此外,該事實表比您描述的表寬得多,除非“可能其他字符串相關數據”相當大(但也有方法正確建模)。 沒錯,免費的Express版本可能無法滿足您的需求,但標准版可能會這樣,並且它不會超級昂貴。 企業有一個很好的功能來進行在線索引重建,但僅此一點可能無法保證許可證費用的大幅增加。

請記住,對於使用此數據實際嘗試完成的內容幾乎沒有描述,我很難說MS SQL Server肯定會滿足您的需求。 但是,鑒於您似乎完全基於您可能獲得的大量行來排除它,我至少可以說明這種情況:良好的數據建模,良好的索引設計和定期索引維護,MS SQL Server絕對可以處理數十億行。 現在,它是否是您項目的最佳選擇取決於您要做的事情,客戶對維護的滿意程度等。

祝好運 :)

編輯:

  • 當我說(上面)查詢“足夠快”回來時,我的意思是1到90秒,具體取決於各種因素。 請記住,這些不是簡單的查詢,在我看來,可以對數據建模和索引策略進行一些改進。
  • 我故意省略了表分區功能,不僅因為它僅在企業版中,而且因為它經常被誤解,因此被濫用而不是理解和正確使用。 SQL Server中的表/索引分區不是 “分片”的方法。
  • 我也沒有提到Column Store索引,因為它們僅在Enterprise Edition中可用。 但是,對於足以證明成本合理的項目,Column Store索引當然值得研究。 它們是在SQL Server 2012中引入的,並且帶有限制,即一旦創建了Column Store索引,就無法更新表。 您可以在某種程度上使用表分區來解決這個問題,但在SQL Server 2014中,將刪除限制。

鑒於這需要基於雲並且您使用.Net / C#,如果您真的只是談論幾個表(到目前為止只是所述的表和隱含的“鏈接”表 - LinkID的來源),因此可能不需要關系或某些其他RDBMS功能,然后一個選項是使用亞馬遜的DynamoDB。 DynamoDB是AWS(Amazon Web Services)的一部分,是NoSQL數據庫。 開發甚至是推出項目的初始階段,它們的低端免費等級更容易實現。 截至2013-11-04,主要的DynamoDB頁面指出:

AWS免費套餐包括100MB的存儲空間,5個寫入容量單位和10個單位的讀取容量與Amazon DynamoDB。

以下是一些文檔: 概述如何使用.Net查詢以及常規.Net SDK

請注意:在考慮您認為可能需要多少費用時,請確保包含相關的AWS部分,例如網絡使用情況等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM