Mysql

小型初創公司:Cassandra + Hadoop 或 ElasticSearch

  • September 23, 2014

為了提供一些背景資訊,我來自一個小型初創公司(4 個團隊成員),我們在教育領域工作。

我們開發了一個電子學習平台,幾所學校已經在使用。目前,一天之內我們會收到大約 2 萬個對平台的頁面請求。

我們希望開始收集我們可以收集的關於使用者的所有數據,以便我們可以開始進行一些數據分析並從我們的數據中學習。

在過去的幾周里,我一直在學習 Cassandra,因為我認為這將是一個很好的解決方案,可以收集所有這些使用者數據並能夠快速讀取它。我還了解到,要執行 SUM 和 AVG 查詢之類的事情,我必須使用 Hadoop 之類的東西才能對數據執行 mapreduce 操作,因為 Cassandra 不允許這種查詢。

我們目前的 MySQL 數據庫非常小(150mb 左右)。考慮到這一點,是否值得沿著卡桑德拉之路走下去?

就可擴展性而言,我開始懷疑我是否看得太遠了。我一直在考慮的一個選擇是簡化事情並從 ElasticSearch 開始,儲存我們所有的使用者事件數據並允許我們輕鬆搜尋它,而無需使用 Hadoop 之類的東西。

主要問題: Cassandra 是否適合我們這麼小的規模?還是我們應該考慮像 ElasticSearch 這樣更簡單的 noSQL 儲存?

如果您預見到遷移到 Cassandra 肯定是您的未來,那麼在您的數據集仍然很小且易於管理的情況下,這樣做會更容易。此外,隨著您對 Cassandra 的了解和感受,小型數據集更容易出錯(因此更容易糾正錯誤)。這樣,當您的數據集變大時,您的數據模型就已經穩固了,這才是真正重要的時候。恕我直言,對於 Cassandra 而言,沒有“太小”這樣的事情。

我們的一個應用程序在 prod 中使用 Cassandra 和 ElasticSearch。基於這些經驗,我對使用 ElasticSearch 作為持久數據儲存區提出了一些警告。我們已經看到它經常失去寫入。閱讀 Quora 上的討論,標題為:Why should I use ElasticSearch as my primary datastore? 話雖如此,它作為搜尋引擎非常有用。

引用自:https://dba.stackexchange.com/questions/77239