1

GAE를 사용하여 효율적인 쿼리를 위해 데이터 모델을 모델링 한 적이 있지만 RDBMS에 대한 광범위한 지식이 있습니다.App Engine 데이터 모델링 문제

여기에 문제가 있습니다.대략 백만 개의 용어 (문자열)가 있으며 과 관련된 숫자 값을 쿼리하여 주간 데이터 요소와의 시계열로 비교해야합니다. X 축에 시간이있는 그래프와 숫자로 측정되는 선형 Y 축인 으로 생각하십시오.

지금까지 나는 데이터 저장소에 용어와 당 이산 데이터 포인트를 가지고, 나는 주 하여 데이터 를 집계하고 나는를 조회 할 수 있도록 데이터를 저장하는 방법을 찾고 있어요 효율적으로 데이터를 저장합니다. 나는 RDBMS로 {term, start_week, [time series]}

으로 내가 할 수있는 쉽게 그룹 주에 만들고 각 항목 을 학기당 다른 길이의 시계열의 수 (4 주, 오주, 육주 등)을 미리 계산 생각하고 저장했다 저장 프로 시저 또는 응용 프로그램 백 엔드 중 하나로서 프로그래밍 방식으로 데이터 계열. GAE 제약과 고도로 분산 된 시스템 인 BigTable의 특성으로 인해 이것은 선택 사항이 아닙니다.

모든 아이디어는 높이 평가됩니다!

답변

2

당신이 향하고있는 접근법은 합리적인 것처럼 보이지만 모두 실행해야하는 쿼리 종류에 따라 다릅니다. 이름 (문자열)과 주별로 시계열을 조회해야한다고 가정하고 일반적으로 1 ~ 100 주 연속 데이터를 가져 오려면 다음을 제안합니다.

  • '느슨한'데이터를 저장하고 주기적으로 집계하는 대신 새 점을이 양식에 직접 저장하십시오. 새 데이터 요소를받을 때마다 주중 첫 번째 요소 인 경우 새 요소를 만듭니다. 그렇지 않은 경우 해당 주에 대한 기존 항목을 검색하고 데이터 요소를 추가하십시오.
  • 데이터를 플롯하려면 원하는 기간과 시간을 쿼리하고 시간 순서대로 결과를 가져옵니다.
+0

문제는 다음과 같습니다. 1 기의 시간 계열이 아니라 수백 개의 용어를 쿼리해야합니다. 그런 다음 쿼리를 완료하는 데 너무 오래 걸립니다. – poezn

+0

유스 케이스에 대해 자세히 설명해 주시겠습니까? 용어 및 기간을 알고 키 이름을 올바르게 사용하면 필요한 모든 레코드를 단일 대량 데이터 스토어에서 처리 할 수 ​​있으므로 많은 쿼리보다 훨씬 효율적입니다. –