시계열 데이터는 시간에 따른 변화를 분석하여 통찰력을 얻을 수 있는 일련의 데이터 포인트입니다.
시계열 데이터는 일반적으로 다음과 같은 구성 요소로 이루어져 있습니다.
시간: 데이터 포인트가 기록된 시점을 나타냅니다.
메타데이터: 데이터 시리즈를 식별하고 거의 변경되지 않는 레이블 또는 태그입니다. 메타데이터는
metaField
에 저장됩니다. Time Series 문서를 생성한 후에는metaField
필드를 추가할 수 없습니다.source
라고도 불리는 메타데이터입니다.지표: 시간 단위로 추적되는 개별 데이터 포인트는 시간이 지남에 따라 변경되는 키-값 쌍으로 표시되는 경우가 많습니다. 메트릭은 값으로도 알려져 있습니다.
측정값: 특정 시점의 모든 지표에 대한 데이터를 포함하는 문서입니다. 측정에는 시간, 메타데이터, 그리고 그 순간에 기록된 모든 지표가 포함됩니다.
이 표는 시계열 데이터의 예를 보여줍니다.
예시 | 지표 | Metadata |
---|---|---|
주식 데이터 | 주식 가격 | 주식 시세, 거래소 |
날씨 데이터 | 온도 | 센서 식별자, 위치 |
웹사이트 방문자 | 조회 수 | URL |
효율적인 시계열 데이터 저장을 위해 MongoDB는 시계열 컬렉션을 제공합니다.
다음 예시는 날씨 데이터 측정 문서를 보여줍니다.
{ "timestamp": ISODate("2025-08-19T12:00:00Z"), "metaField": { "sensorId": "A1234", "location": { "city": "New York", "state": "NY" } }, "temperature": 25.4, "humidity": 48.2, "pressure": 1012.5, "windSpeed": 5.2, "windDirection": "NW" }
이 예시에서 측정값에는 다음이 포함됩니다.
데이터가 기록된 시점을 나타내는 타임스탬프
센서와 그 위치를 식별하는 메타데이터
주어진 시간에 수집된 온도, 습도, 기압, 풍속, 방향 등의 여러 지표
Time Series 컬렉션
버전 5.0에 추가.
시계열 컬렉션은 시계열 데이터를 효율적으로 저장합니다. 시계열 컬렉션에서는 동일한 출처의 데이터가 비슷한 시점의 다른 데이터 포인트와 함께 저장되도록 쓰기가 구성됩니다.
MongoDB Atlas에서 호스팅되는 배포를 위해 UI에서 time series 컬렉션을 생성할 수 있습니다.
혜택
일반 컬렉션과 비교하여 시계열 데이터를 시계열 컬렉션에 저장하면 쿼리 효율성이 향상되고 시계열 데이터 및 세컨더리 인덱스의 디스크 사용량이 줄어듭니다.
time series 컬렉션은 기본 열 형식 저장 형식을 사용하고 자동으로 생성 된 클러스터형 인덱스 를 사용하여 데이터를 time-series 순서로 저장합니다. 열 형식 저장 형식은 다음과 같은 이점을 제공합니다.
시계열 데이터 작업의 복잡성 감소
쿼리 효율성 향상
디스크 사용량 감소
읽기 작업을 위한 I/O 감소
WiredTiger 캐시 사용량 증가
행동
시계열 컬렉션은 일반 컬렉션처럼 동작합니다. 평소와 같이 데이터를 삽입하고 쿼리할 수 있습니다.
MongoDB는 시계열 컬렉션을 내부 컬렉션에 의해 뒷받침되는 쓰기 가능한 비물질화 뷰로 취급합니다. 데이터를 삽입하면 내부 컬렉션이 자동으로 시계열 데이터를 최적화된 저장 형식으로 구성합니다.
time-series 컬렉션을 쿼리 경우, 측정값당 하나의 문서에 대해 작업하게 됩니다. time series 컬렉션에 대한 쿼리는 최적화된 내부 저장 형식을 활용하고 결과를 더 빠르게 반환합니다.
팁
쿼리 성능을 개선하기 위해 시계열 컬렉션의 측정 필드나 다른 필드에 수동으로세컨더리 인덱스를 추가할 수 있습니다.
중요
이전 버전과 호환되지 않는 기능
다운그레이드하기 전에 시계열 컬렉션을 삭제해야 합니다.
MongoDB 6.0 이상에서 MongoDB 5.0.7 이하로 다운그레이드 하는 경우.
MongoDB 5.3에서 MongoDB 5.0.5 이하로 다운그레이드하는 경우.
구역 샤딩
구역 샤딩은 time series 컬렉션을 지원하지 않습니다. 밸런서는 항상 샤딩된 time series 컬렉션의 데이터를 클러스터의 모든 샤드에 균등하게 분배합니다.
내부 인덱스
Time Series 컬렉션을 생성하면 MongoDB는 시간 필드에 내부 클러스터형 인덱스 를 자동으로 생성합니다. 이 인덱스는 쿼리 효율성을 높이고 디스크 사용량을 줄입니다. 클러스터형 인덱스의 성능 이점에 대해 자세히 알아보려면 클러스터형 컬렉션을 참조하세요.
listIndexes
을(를) 실행할 때 내부 인덱스가 나열되지 않습니다.
참고
1970-01-01T00:00:00.000Z
이전 또는 2038-01-19T03:14:07.000Z
이후에 timeField
값이 있는 문서를 컬렉션에 삽입하면 MongoDB는 경고를 기록하고 일부 쿼리 최적화에서 내부 인덱스를 사용하지 못하도록 합니다. timeField
에 세컨더리 인덱스를 생성하여 쿼리 성능을 회복하고 로그 경고를 해결합니다.
시작하기
시계열 컬렉션을 시작하려면 시계열 컬렉션 생성 및 쿼리하기를 참조하세요.