2014-02-25 81 views
2

我最近開始爲我們的項目探索Cassandra。我對Cassandra數據建模有疑問。讓我們舉一個谷歌網站分析產品的例子。 Google會收集/彙總不同時間範圍內不同維度的網址統計信息。讓我們舉一個簡單的例子,從桌面瀏覽器和移動瀏覽器收集www.yahoo.com訪問計數爲期30天(每日總計)。我們可以通過兩種方式進行建模本 -卡桑德拉網絡分析數據模型方法

每個瀏覽器類型相同的URL

一行鍵,每一天都當作與總計數器列類型列名 one row key for each browser

一個用於URL和複合鍵與普通的行密鑰天,URL和瀏覽器類型與聚合計數器列類型 composite column key

每種方法的優缺點是什麼?

回答

2

列名的長名稱不是一個好主意,因爲它們將在每一行中重複存儲。 您應該使用日期,網址,平臺,日期作爲主鍵,並使用一列作爲計數。這樣,如果你需要指定日期,網址,平臺的月份的所有日子。

+0

當你說主鍵時,我認爲你的意思是行鍵。我們的要求是按日期,平臺,瀏覽器類型等分割數據。未來,我們也可能按國家,州,城市劃分。基本上它不是一個單一的關鍵。所以跟你的模型一起會增加指數級的行數。那會好嗎?列族中的行數是否有限制? – Venky

+0

下面的討論提供了一些不同的觀點。你對此有何想法? http://stackoverflow.com/questions/19039123/cassandra-wide-vs-skinny-rows-for-large-columns – Venky

+0

yeap主鍵或行鍵,我們正在討論不同版本的cassandra;)首先,沒有限制在行數中添加更多的服務器。對於國家,州,城市,您可能需要一張新表格,您能解釋一下這個用例嗎?關於鏈接,這是完全正確的,在你的情況取決於你的訪問模式,如果你通常只讀一列,最好有日期,網址,平臺,日作爲行鍵,如果你主要閱讀所有30個計數器在同時,將日期,網址,平臺作爲行鍵和日作爲列名會更有效 – Navid