2012-12-10 2 views
0

MongoDB에서 모델을 만들고 싶은 주가 데이터가 있습니다. 논리적으로 각 주가에는 날짜, 주식 이름 및 가격이 있습니다. 이 애플리케이션의 주요 목표 중 하나는 주가의 일일 변화를 모델링하는 것입니다.MongoDB에서 매일 델타 모델을 만드는 방법

이 문제와 관련된 두 가지 질문이 있습니다.

1) MongoDB에서 이런 종류의 데이터를 모델링하는 가장 좋은 방법은 내가 수행 할 쿼리 종류에 따라 달라집니다.

업데이트 !!! 나는 약간의 실험을 수행했으며 데이터를 비정규 화 (denormalize)하고 적절한 열 인덱스가 있는지 확인하기로 결정했습니다. 실제로 실행중인 쿼리 유형의 데이터를 중첩 할 때 성능 차이를 실제로 보지 못했으며 집계 루틴을 작성하는 프로세스가 복잡해졌습니다. 조언 주셔서 감사합니다 Raxit!

2) 주어진 1) MongoDB에서 이러한 일일 변경 스타일 쿼리를 작성하는 가장 좋은 방법은 무엇입니까?


이제는 날짜와 재고가 하나씩 있습니다. 2

{ 
    {"stock":"Bob", 
    "date":"2012-12-01", 
    "price":99.99       
    }, 
    {"stock":"Bob", 
    "date":"2012-12-02", 
    "price":99.99       
    }, 
    {"stock":"Bob", 
    "date":"2012-12-03", 
    "price":99.99       
    }, 
    {"stock":"Ted", 
    "date":"2012-12-01", 
    "price":99.99       
    }, 
    {"stock":"Ted", 
    "date":"2012-12-02", 
    "price":99.99       
    }, 
    {"stock":"Ted", 
    "date":"2012-12-03", 
    "price":99.99       
    }, 
    . 
    . 
    . 


} 

내 생각 : 나는 주가 일상의 변화를 표시하는 보고서를 생성 할

. 주어진 문서 크기 제한에 따라 재고 및 연도 별 델타 수를 나눌 필요가있을 수 있지만 구현 세부 사항이 더 많습니다. 기본적으로 다음 형식의 문서를 출력하고 싶습니다.

{ 
{"stock":"Bob", 
      "prices": {[{"fromDate":"2012-12-01","toDate":"2012-12-02","delta":-1.0}, 
        {"fromDate":"2012-12-02","toDate":"2012-12-03","delta":-1.0}, 
        . 
        . 
        .]} 
}, 
{"stock":"Ted", 
      "prices": {[{"fromDate":"2012-12-01","toDate":"2012-12-02","delta":1.0}, 
        {"fromDate":"2012-12-02","toDate":"2012-12-03","delta":1.0}, 
        . 
        . 
        .]} 
}, 
. 
. 
. 
} 

이상적으로이 데이터를 임시로 반환 할 수 있기를 바랍니다. map-reduce를 사용하여이 작업을 수행 할 수 있다고 확신하지만 새 집계 프레임 워크를 사용하여이 작업을 수행 할 수있는 방법이 있는지 궁금합니다. mongodb를 연구하기 전에 모델링 변경을이 방법으로 가정하면 실패한 일반적인 사용 사례가 될 수 있지만 지금까지는 그와 비슷한 것을 발견하지 못했습니다.

당신이 줄 수있는 조언은 매우 유용 할 것입니다. 내 연구가 진행되면서 게시물을 업데이트 할 예정입니다.

감사합니다.

매트.

답변

1

위의 두 가지 경우에 포함 된 문서의 데이터가 변경 (추가됨) 된 것처럼 보입니다!

어떤 단순한 구조 {stockname : '밥', 날짜 : 날짜 1, 가격 : (200)}에 대한 {stockname : '밥', 날짜 : 날짜 2, 가격 : 220} 등?

또는

{stockname : '밥', 날짜 : 날짜 2, 가격 : 200, lastdate : 날짜 1, pricedelta : (price2는-price1)}

+0

는 임베디드에 추가하는 고유 한 문제가 있습니까 mongodb에있는 컬렉션? 당신은 새로운 데이터가 들어올 때마다 가격 콜렉션을 업데이트해야한다는 점을 확실히 알고 있습니다. 그러나 쓰기 성능은이 어플리케이션에서 우선 순위가 아니지만 일별 재고 데이터를 모두 일괄 적으로 삽입 할 계획입니다. 주요 초점은 읽기 성능입니다. 그래서 내가 임베딩을 생각하고있었습니다. – Sigmoidal

+0

적절한 색인으로 제안한 내용을 참조하십시오. –

+0

두 가지 방법 모두 시도해보고 성능 차이가 무엇인지 확인해 보겠습니다.임베딩에 큰 성능 이점이 없다면 나는 당신이 제안한 것을 가지고 갈 것입니다. 감사. – Sigmoidal

관련 문제