2017-03-02 4 views
0

나는 작은 시스템 요구 사항에 대한 잠시 동안 지금 ArangoDB를 사용하고 그것을 사랑하고있다. 우리는 최근에 현재 SQL에 보관되어있는 많은 양의 재무 데이터를 분석하기 위해 클라이언트로부터 임무를 부여 받았지만 ArangoDB에서 데이터를보다 효율적으로 쿼리하기를 원했습니다. 더 단순한 요구 사항의대량 데이터를 그래프에 포함해야합니까?

하나는 총계정 원장에 걸쳐 계정의 합계를 결정하기 위해 GL 항목의 금액을 롤업하는 것입니다. 가 자신의 총계정 원장 2200 개 계정은 GL 항목의 수는 대략 약 10의 최대 깊이 약 150 만명이며, 나는 계정 합계를 집계하는 가장 효율적인 방법은 어떻게 될지 궁금 해서요?

그래프를 사용하여 계정 계층 구조를 관리 할 계획이지만 에지를 1 억 5 천 만개의 항목으로 작성해야합니다. 또는 인바운드 관계를 트래버스하고 GL 항목 콜렉션에서 하위 쿼리를 실행하여 총계를 계산하는 것이 더 효율적입니다. 금액?

나는 일반적으로 그냥 테스트 나 자신을 실행하는 것입니다하지만 난 단순히 아란의 내 로컬 인스턴스에서 데이터를로드 고민 내가 데이터를로드에서 작업하는 동안 나는 몇 가지 통찰력을 얻을 것이라고 생각하고있다.

미리 감사드립니다.

답변

0

당신이 그래프 모델로 데이터를 이동하여 얻을 찾고있는 이점은 무엇입니까. 계정, 고객, GL 등을 연결하는 경우 하이브리드 모델을 사용하는 것이 가장 좋습니다.

이 평평한 문서 컬렉션에 GL 항목을 귀하의 계정 및 GL의 사이에 계층 적 그래프 스타일의 관계를 구축,하지만 저장 가능합니다.

이렇게하면 AQL 스타일 그래프 쿼리를 사용하여 계정과 GL 간의 관계를 신속하게 결정할 수 있습니다. GL에서 항목을 SUM해야하는 경우 GL._id를 식별하는 쿼리를 사용하고 연관된 GL._id를 참조하는 외래 키가있는 플랫 모음을 합계 할 수 있습니다.

외래 키에 인덱스를 추가하면 쿼리 속도가 빨라지고 Foxx Micro Services를 사용하면 REST 스타일 쿼리와 사용중인 실제 데이터 모델간에 추상 계층을 제공 할 수 있습니다. 그런 식으로 데이터베이스 모델을 변경해야하는 경우 Foxx MicroServices를 업데이트하여 소비자가 이러한 변경 사항을 인식하지 않아도됩니다.

성능에 관한 질문에 답변 할 수 없으므로 하드웨어를 적절하게 지정해야합니다.