2017-04-18 13 views
3

두 문서를 읽으면 어떤 문서를 고를 지 결정할 수없는 지점과 매우 유사합니다.aerospike vs ignite DB 언제 사용하나요? 인덱싱 및 성능의 측면에서 모두

내 사용 사례가 객체 (JSON 생각), 내가 (2-3 단계 깊이) 조인 및 필터링 중첩 된 개체에 대해 수행 할 수 있어야합니다의 스키마가없는 중첩 된 컬렉션이다

어떤 컨텍스트를 추가 . 예를 위해서

자동차의 컬렉션을 가정

{ 
type: "car", 
engine: { 
    size: 2, 
    maker: { 
    country: "china", 
    importer: [ 
    { 
    company: "abc-inc", 
    id: 234234 
    }, 
    { 
    company: "abc-corp", 
    id: 321321 
    }, 
    ] 
}, 
maker: "Ford" 
} 
나는 = XXXX 수입 ID로 수입 = xxxxx는 국가에서 만든 수입이 크기 = xx에의 엔진을 가지고 모든 차량을 조회 할 필요가

하는 "car"유형의 콜렉션을 리턴합니다.

"수입자"유형의 콜렉션 인 자동차 컬렉션의 모든 수입업자를 쿼리해야합니다. 그런 다음 특정 쿼리를 수행하지만 특정 ID를 가져옵니다.

+1

당신이 당신의 쿼리의 예를 제공하거나 적어도 그것을 설명 할 수 있습니까? – Dmitriy

답변

2

이 간단한 SQL 조인은 Apache Ignite입니다. 그러나 조회에 필요한 최소한의 SQL 스키마를 정의해야합니다.

경우에 따라 CAR CAR, ENGINE 캐시 및 IMPORTER 캐시가 필요합니다. 쿼리는 다음과 같습니다.

SELECT * CAR c, ENGINE e, IMPORTER i 여기서 c.importer_id = i.id 및 c.engine_id = e.id 및 c.country = "xxxx"및 e.size = xx;

또한 복제 전략을 결정하고 일부 또는 모든 캐시를 PARTITIONED 또는 REPLICATED해야하는지 선택해야합니다. 여기에 SQL에

더 : SQL Grid

여기 복제 전략에 대한 자세한 : Cache Modes

+0

더 나은 해결책은 더 많은 비교 답변을 원했던 것입니까? 그리고 왜 ? – InsaneBot

+0

저는 Aerospike에 대한 전문가는 아니지만, Aerospike는 JOIN을 지원하지 않으므로 위와 같은 쿼리를 수행 할 수 없습니다. 또한 Ignite는 Aerospike에서 가능하지 않은 배치 계산을 지원합니다. – Dmitriy

+0

감사합니다. 매우 유용한 통찰력입니다. 아마도 답변에 추가해야 할 것입니다. – InsaneBot