2010-03-29 15 views
5

我有興趣在cassandra服務上創建門戶,因爲我從100萬條記錄開始面臨一些性能和規模問題。 當然,它可以解決,但我對其他選項感興趣。Cassandra和asp.net(C#)

我的主要問題是更新所有必要的索引的成本,以便快速閱讀。

首先,cassandra是asp.net程序員的好方法嗎?我的意思是,也許有一些其他項目,值得去看看

第二,你可以提供任何文檔樣本如何從C#開始cassandra編程?

+1

http://teddziuba.com/2010/03/i-cant-wait-for-nosql-to-die.html。 – 2010-03-29 16:45:51

+0

http://codebetter.com/blogs/karlseguin/archive/2010/03/29/nosql-for-the-rest-of-us.aspx – 2010-03-29 16:46:51

+2

我建議不要在生產環境中使用Cassandra。 – Pierreten 2010-03-29 16:54:12

回答

11

因爲我面臨從100萬條記錄開始的性能和規模問題。

也許你的設計不太好,NoSQL不是壞設計的靈丹妙藥。我有數十億行表,95%的答覆是次要的。此外,更新索引意味着什麼,是指更新統計信息還是重建索引?

+0

我很高興它爲你工作。 當然,這對我來說是最可能的(也是最便宜的方式)。然而,他在一個月前發佈了第一篇文章,發現了關於如何使用索引統計的文章,並將其應用於我們的數據庫,並且一切都很順利......爲期2周。 所以,我想環顧四周,找出有哪些選項是 – st78 2010-03-29 17:18:18

+0

你有自動更新統計啓用或你有一份工作,將更新統計? – SQLMenace 2010-03-29 17:24:42

3

因爲我面臨性能和規模 問題從 100萬條記錄開始。

你知道,現代數據庫的百萬大關不是什麼「完全可笑的小事」,你可以忽略實際知道你做了什麼。一百萬以下是「微小的」。我有一個8億行表,並獲得大量的SQL - 完全沒有問題。

一,卡桑德拉是不是很好的方式爲 asp.net程序員?

我會更多地建議一本關於SQL的基本書,閱讀文檔並可能會拋出一些硬件問題。如:完全不好的硬件會殺死所有的數據管理系統。

1

如果您想要做一些新的事情,那麼您可以考慮嘗試使用數據庫集羣,而不是嘗試使用noSQL。

這個想法是當兩臺機器同時搜索原始數據庫的一半時,你有一半的搜索時間,而不需要完全重新設計現有的數據庫。

+0

謝謝,我想說服客戶嘗試使用Microsoft Azure - 它看起來很容易開始使用它 – st78 2010-08-30 19:24:26

+0

我相信你的意思是說「嘗試分解」你的數據庫。羣集不會幫助你的性能問題。 http://en.wikipedia.org/wiki/Shard_(database_architecture) – BozoJoe 2012-08-17 15:49:01

2

你不能說真的Cassandra文檔。網絡上有大量的部分教程。
您可能想要在虛擬機中設置Linux,因爲Windows構建過程相當具有挑戰性,至少可以說。
http://www.virtualbox.orghttp://www.ubuntu.com

這裏的HOWTO:
http://www.ridgway.co.za/archive/2009/11/06/net-developers-guide-to-getting-started-with-cassandra.aspx
注意,由於本教程的編寫卡桑德拉SVN網址和代碼示例已經改變。

這裏還有一個C#客戶端:
http://github.com/mattvv/hectorsharp

這裏一些示例代碼:
http://www.copypastecode.com/26752/

請注意,您需要下載最新的Java開發工具包(JDK)來自Sun的Linux版本。 它不在Ubuntu 10.04的存儲庫中。 然後,你需要爲了卡桑德拉找到你的Java安裝輸入

export JAVA_HOME="/path/to/jdk" 


你可能也想看看:
http://en.wikipedia.org/wiki/NoSQL

尤其是分類學段很有趣。
確保Cassandra是您問題的正確類型的NoSQL解決方案,例如如果你的問題實際上是一個圖形問題,使用Neo4J。

此外,您需要確保您的NoSQL解決方案符合ACID標準。
例如,Neo4J是唯一符合ACID標準的NoSQL圖形引擎。

編輯:這裏有一個的JumpStart指南爲Windows,無需編譯:
http://coderjournal.com/2010/03/cassandra-jump-start-for-the-windows-developer/
http://www.ronaldwidha.net/2010/06/23/running-cassandra-on-windows-first-attempt/
http://www.yafla.com/dforbes/Getting_Started_with_Apache_Cassandra_a_NoSQL_frontrunner_on_Windows/

2

相反卡桑德拉你可能會看一看:ravendb。據說這是一個用.Net製作併爲其創建的文檔存儲。它有Linq整合,並且(據說是)非常快。

與任何新技術一樣,請閱讀它是否可以幫助您處理您的特定情況,並檢查它是否已證明技術(是否有主流客戶使用它)。

在進入此路線之前,請先查看您是否無法優化當前的解決方案。檢查您的查詢是否快速,索引是否正確完成,以及是否無法通過添加緩存來刪除負載。

最後的結果並非不重要,如果向SQL機器添加一些處理器可能會解決問題,它通常是一個更便宜的解決方案。

3

如果您正在使用Cassandra作爲.NET應用程序,請查看Aquiles。我根據我公司的需要開發了它。如果你覺得它有用或需要任何幫助,請告訴我。