2017-04-18 12 views
3

閱讀兩者的文檔,他們似乎非常相似,我無法決定選擇哪一個。aerospike vs點燃數據庫,何時使用一個在另一個?在索引和性能方面

補充一些背景:

我的使用情況是對象(認爲JSON),我需要能夠做到連接和過濾的嵌套對象(2-3級深)的方案較少的嵌套集合。

例如起見假設汽車的集合:

{ 
type: "car", 
engine: { 
    size: 2, 
    maker: { 
    country: "china", 
    importer: [ 
    { 
    company: "abc-inc", 
    id: 234234 
    }, 
    { 
    company: "abc-corp", 
    id: 321321 
    }, 
    ] 
}, 
maker: "Ford" 
} 

我需要查詢所有汽車在進口商有大小= XX的發動機,在全國= XXXX由進口商ID進口= XXXXX做出哪些將返回一個「汽車」類型的集合。

我需要查詢汽車集合中的所有進口商,其中的退貨是「進口商」類型的集合。然後執行相同的查詢,但使用特定ID的導入程序。

+1

你能提供查詢的例子,或者至少形容呢? – Dmitriy

回答

2

這看起來像一個簡單的SQL連接Apache Ignite。但是,您需要定義查詢所需的最小SQL模式。

就你而言,你將需要緩存CAR,緩存引擎和緩存IMPORTER。查詢將如下所示:

SELECT * from CAR c,ENGINE e,IMPORTER i where c.importer_id = i.id and c.engine_id = e.id and c.country =「xxxx」and e.size = xx;

您還需要決定您的複製策略,並選擇是否需要對部分或全部緩存進行分區或複製。

更多關於SQL這裏:SQL Grid

更多關於複製策略在這裏:Cache Modes

+0

我希望得到更多的比較答案,哪個更好的解決方案?爲什麼? – InsaneBot

+0

我不是Aerospike的專家,但從它看起來,Aerospike不支持JOIN,因此類似上述的查詢將不可能。除此之外,Ignite還支持搭配計算,這在Aerospike中似乎不太可能。 – Dmitriy

+0

謝謝,這是一個非常有用的見解,也許你應該將其添加到答案! – InsaneBot

相關問題