2017-08-11 77 views
0

我們試圖將現有的RDBMS遷移到NOSQL數據庫。由於我們在數據倉庫中有代理鍵的概念,因此我們如何根據NOSQL數據庫來處理這些鍵? 當涉及到將現有RDBMS遷移到NOSQL數據庫時,NOSQL數據庫中的最佳實踐是什麼? 我們正在尋找Accumulo,Cassandra或Hbase的實施。 請幫忙NoSQL數據模型中的代理鍵

回答

1

我可以講一些關於卡桑德拉的文字,這和其他任何鍵值存儲都有關係。它的模式建模是基於查詢的。所以你需要首先考慮你的查詢,然後根據查詢創建表和鍵。
當然會有數據冗餘和反規範化。例如,您可能在包含自然鍵和代理鍵的RDBMS中有一個表。但是如果你習慣於讓你的代理鍵進行搜索,那麼對於NOSQL它將變成兩個表,其中NaturalKey->ValueSurrogateKey->Value關係。
NOSQL只有一個密鑰(雖然它可以包含多列),所以代理和自然密鑰之間沒有技術差異,因爲它們都是「密鑰」。
您可能會發現唯一有用的是您需要在Cassandra中使用UUID代替鍵而不是計數器(與自動增量字段看起來非常相似)。
代理鍵在數據倉庫中的使用方式略有不同:它們用於將事實表與維度表連接起來,但鍵值數據庫在RDBMS方面沒有聯接。
你可以找到更多關於卡桑德拉的數據建模和使用的信息hereherehere