Docs Menu
Docs Home
/
MongoDB 매뉴얼

시계열

이 페이지의 내용

  • Time Series 컬렉션
  • 혜택
  • 행동
  • metaFields
  • 시작하기

시계열 데이터는 시간에 따른 변화를 분석하여 통찰력을 얻을 수 있는 일련의 데이터 포인트입니다.

시계열 데이터는 일반적으로 다음과 같은 구성 요소로 이루어져 있습니다.

  • 데이터 포인트가 기록된 시간입니다.

  • 메타데이터 (소스라고도 함)는 데이터 시리즈를 식별하는 레이블 또는 태그이며 거의 변경되지 않습니다. 메타데이터는 metaField에 저장됩니다. time series 문서를 생성한 후에는 time series 문서에 metaField를 추가할 수 없습니다. metaField 동작 및 선택에 대한 자세한 내용은 metaFields를 참조하세요.

  • 시간 단위로 추적되는 데이터 요소인 측정값 (메트릭 또는 값이라고도 함). 일반적으로 이들은 시간이 지남에 따라 변하는 키-값 쌍입니다.

이 표는 시계열 데이터의 예를 보여줍니다.

예제
측정
Metadata
주식 데이터
주식 가격
주식 시세, 거래소
날씨 데이터
온도
센서 식별자, 위치
웹사이트 방문자
조회 수
URL

효율적인 시계열 데이터 저장을 위해 MongoDB는 시계열 컬렉션을 제공합니다.

버전 5.0에 추가.

시계열 컬렉션은 시계열 데이터를 효율적으로 저장합니다. 시계열 컬렉션에서는 동일한 출처의 데이터가 비슷한 시점의 다른 데이터 포인트와 함께 저장되도록 쓰기가 구성됩니다.

일반 컬렉션과 비교하여 시계열 데이터를 시계열 컬렉션에 저장하면 쿼리 효율성이 향상되고 시계열 데이터 및 보조 인덱스 의 디스크 사용량이 줄어듭니다. MongoDB 6.3 이상에서는 새 time series 컬렉션의 시간 및 메타데이터 필드에 복합 인덱스 를 자동으로 만듭니다.

시계열 컬렉션은 기본 열 형식 저장 형식을 사용하고 데이터를 시간 순서로 저장합니다. 이 형식은 다음과 같은 이점을 제공합니다.

  • 시계열 데이터 작업의 복잡성 감소

  • 쿼리 효율성 향상

  • 디스크 사용량 감소

  • 읽기 작업을 위한 I/O 감소

  • WiredTiger 캐시 사용량 증가

시계열 컬렉션은 일반적으로 다른 MongoDB 컬렉션처럼 작동합니다. 평소대로 데이터를 삽입하고 쿼리합니다.

경고

업데이트 및 삭제 명령의 일치 표현식은 metaField만 지정할 수 있습니다. time series 문서의 다른 필드는 업데이트할 수 없습니다. 자세한 내용은 Time Series 삭제 및 업데이트 제한을 참조하세요.

MongoDB는 시계열 컬렉션을 내부 컬렉션에 의해 뒷받침되는 쓰기 가능한 비물질화 로 취급합니다. 데이터를 삽입하면 내부 컬렉션이 자동으로 시계열 데이터를 최적화된 저장 형식으로 구성합니다.

MongoDB 6.3부터 새 time series 컬렉션을 생성하면 MongoDB는 metaField 및 timeField 필드에 복합 인덱스도 생성합니다. 쿼리 성능을 개선하기 위해 time series 컬렉션의 쿼리는 새 복합 인덱스를 사용합니다. 복합 인덱스는 또한 최적화된 저장 형식을 사용합니다.

쿼리 성능을 개선하기 위해 시계열 컬렉션의 측정 필드나 다른 필드에 수동으로세컨더리 인덱스를 추가할 수 있습니다.

중요

이전 버전과 호환되지 않는 기능

다운그레이드하기 전에 시계열 컬렉션을 삭제해야 합니다.

  • MongoDB 6.0 이상에서 MongoDB 5.0.7 이하로 다운그레이드 하는 경우.

  • MongoDB 5.3에서 MongoDB 5.0.5 이하로 다운그레이드하는 경우.

경고

system.profile 이라는 이름의 time series 컬렉션 또는 뷰를 만들려고 시도하지 마.십시오 MongoDB 6.3 이상 버전에서 이를 시도하는 경우 IllegalOperation 오류가 반환됩니다. 이전 MongoDB 버전은 충돌합니다.

시계열 문서에는 내부 저장소 최적화와 쿼리 효율성 모두를 위해 문서 세트를 그룹화하는 선택적 metaField를 포함할 수 있습니다. metaField는 거의 변경되지 않아야 하며 모든 데이터 유형이 될 수 있습니다. metaField는 객체일 수 있으며 하위 필드를 포함할 수 있습니다. 필드를 metaField로 정의한 후에는 metaField의 값을 변경할 수 있지만 metaField를 다른 필드로 재정의할 수는 없습니다. 예를 들어 metaField가 A 필드로 정의된 시계열 문서를 만드는 경우 나중에 B 필드를 metaField로 변환할 수 없습니다. 그러나 metaField A 값이 객체인 경우 필드 A 에 새 하위 필드를 추가할 수 있습니다.

참고

배열을 metaField로 사용하면 배열의 동등성이 특정 순서에 따라 달라지기 때문에 예기치 않은 컬렉션 동작이 발생할 수 있습니다.

MongoDB는 효율적인 구성 및 검색을 위해 metaField를 사용하여 데이터를 분할합니다. time series 컬렉션을 만들면 MongoDB는 문서를 버킷으로 그룹화합니다. 버킷 내의 문서는 동일한 metaField 값을 공유하며 서로 가까운 timeField 값을 갖습니다.

time series 컬렉션의 버킷 수는 고유한 metaField 값의 수에 따라 달라집니다. 세분화되거나 동적 metaField 값을 사용하는 컬렉션은 거의 변경되지 않는 간단한 metaField가 있는 컬렉션보다 더 많고 희박하게 채워진 단기 버킷을 생성할 수 있습니다. 세분화되고 동적인 metaField 값은 일반적으로 저장 및 쿼리 효율성을 감소시킵니다.

MongoDB는 시계열 컬렉션의 metaField와 timeField 모두에 복합 인덱스 를 자동으로 생성합니다.

  • metaField의 일부로 거의 또는 전혀 변경되지 않는 필드를 선택합니다.

  • 가능하면 필터 표현식에 공통적으로 사용되는 식별자 또는 기타 안정적인 값을 metaField의 일부로 선택하세요.

  • 필터링에 사용되지 않는 필드는 metaField의 일부로 선택하지 마세요. 대신 해당 필드를 측정값으로 사용하세요.

시계열 컬렉션을 시작하려면 시계열 컬렉션 생성 및 쿼리하기를 참조하세요.

돌아가기

참조