Docs Menu
Docs Home
/
MongoDB 매뉴얼
/

Time Series 데이터 쿼리 정보

이 페이지의 내용

  • metaField 쿼리하기
  • timeField 쿼리하기
  • 블록 처리

MongoDB 는 일치하는 metaFields 로 문서를 그룹화하여 Time Series 데이터 의 저장 및 쿼리 지연 시간 을 최적화합니다. metaField 의 선택은 애플리케이션 의 쿼리 최적화에 가장 큰 영향 을 미칩니다.

표준 MongoDB 컬렉션 을 쿼리 하는 것과 동일한 방식 time series 컬렉션 을 쿼리 합니다. 쿼리 예시 및 집계 파이프라인 예시 는 Time Series 컬렉션 쿼리 를 참조하세요. 쿼리 권장사항 목록은 쿼리 권장사항 사항을 참조하세요 .

Time Series 데이터 에 대한 쿼리는 일반적으로 컬렉션 의 단일 Time Series에 중점을 둡니다. 예를 예시 다음 스키마 를 사용하여 주식 데이터를 추적하는 time series 컬렉션 을 가정해 보겠습니다.

{
_id: 573a1397f29313caabce8347,
"ticker": "MDB",
"timestamp": ISODate("2024-07-24T13:45:00.000Z"),
"price": 248.21,
"volume": 6930
}

컬렉션 에는 다음과 같은 설정이 있습니다.

timeseries: {
timeField: "timestamp",
metaField: "ticker",
granularity: "seconds"
}

MongoDB 는 일치하는 ticker 값으로 문서를 그룹화합니다. 서버 는 모든 문서의 모든 필드에서 일치하는 항목을 확인할 필요 없이 metaField, 이 경우 ticker 만 확인하면 검색 범위 를 고유한 time series로 좁힐 수 있습니다. 이는 단일 주식 에 대한 활동을 검색하는 사용 사례 에 적합합니다. MongoDB 주식 (MDB)에 대한 정보를 검색하는 사용자는 Amazon (AMZN)에 대한 결과를 고려할 필요가 없습니다.

Time Series 데이터 쿼리의 두 번째 주요 차원은 시간입니다. MongoDB 는 동일한 metaField 값과 가까운 timeField 값을 모두 가진 문서를 그룹화하므로 쿼리 범위 를 버킷 범위로 더욱 좁힙니다. 최근 트랜잭션이 메모리에 저장되므로 실시간 쉽게 스트림 할 수 있습니다.

버전 8 부터 시작됩니다.0, MongoDB는 블록 처리를 사용하여 특정 Time Series 쿼리를 실행할 수 있습니다. 이 성능 향상은 개별 값이 아닌 데이터 "블록"에서 쿼리를 처리합니다. 차단 처리는 Time Series 컬렉션으로 작업할 때 쿼리 실행 속도와 처리량을 향상시킵니다.

MongoDB 는 적격 Time Series 쿼리에 대해 자동으로 차단 처리 를 활성화합니다. 쿼리 에서 차단 처리 를 사용할지 여부를 수동으로 지정할 수 없습니다. Time Series 쿼리 가 차단 처리 를 사용하는지 확인하려면 계획 설명 출력에서 stages 를 참조하세요.

돌아가기

샤드 컬렉션