2012-03-17 51 views
6

熟悉的Neo4j將關係視爲一等公民;即席查詢/遍歷,完整性(如果一個節點被刪除,鏈接消失)等。它還作爲表示關係的唯一機制以及超越關係數據庫的聯合進行宣傳。Riak中的鏈接:與圖形數據庫相比,他們可以做什麼/不做什麼?

Riak鏈接表示關係有多強大?它們可以被用來回答即席查詢「取愛好列表爲每個這樣的人誰賺超過x」friend of a friend,假設合適的功能,如二級指標?一般來說,他們可以在RDBMS中模擬output of a join嗎?

它們是否也適用於大量使用,如社會書籤系統,其中有很多鏈接的人和書籤?或者他們意味着要小心使用(所有結構必須定向非循環圖)?


在 「不行」 類別:

  1. 鏈路完整性是not enforced
  2. 它不能回答「什麼鏈接到這個節點?」

回答

6

Riak中的鏈接只是一些與值一起存儲的元數據(對外鍵的單向引用列表)。它們通常用作MapReduce的輸入,它可以隨心所欲地執行任何操作,包括模擬RDBMS連接。

沒有完整性檢查或任何額外的魔法,如找到反向鏈接。它們只是一個方便的API,通過將這些外鍵列表存儲在值中,以某種方式進行序列化,完全可以達到同樣的效果。

對於社會化書籤比如我推薦使用了Riak搜索,因爲它允許更靈活的查詢,如http://example.com/ *,並適當的分佈式索引和查找。

2

blinkov的回答是正確的。不,Riak Links不適合您描述的場景。沒有參照完整性檢查,並且每個對象可以存儲多少個鏈接(我相信,最多255個)是有限制的。

Riak Search更適合社交書籤場景。實際上,社交書籤網站Clipboard恰好使用這種機制 - 書籤作爲Riak對象,Riak搜索已啓用(用於標記,事件觸發器和通知等)。當Ricon 2012會議視頻在線上線時,我建議您觀看剪貼板演講,瞭解更多細節。

Riak + Secondary Indexes也可能適用於很多這些情況。請參閱我對Which clustered NoSQL DB for a Message Storing purpose?How to structure data in Riak?的回答以獲取類似設置的架構建議。

相關問題