개요
이 가이드 에서는 C++ 운전자 를 사용하여 Time Series 데이터 를 저장 하고 상호 작용 하는 방법을 학습 수 있습니다.
시계열 데이터는 다음 구성 요소로 구성됩니다.
측정 수량
측정 타임스탬프
측정값을 설명하는 메타데이터
다음 표에서는 Time Series 데이터 를 저장 수 있는 샘플 상황을 설명합니다.
상황 | 측정 수량 | Metadata |
|---|---|---|
산업별 월별 매출 기록 | USD 기준 수익 | 회사, 국가 |
날씨 변화 추적 | 강수량 수준 | 위치, 센서 유형 |
기록적인 주택 가격 변동 | 월 임대료 | 위치, 통화 |
Time Series 컬렉션 만들기
중요
Time Series 컬렉션의 서버 버전
Time Series 컬렉션을 만들고 상호 작용하려면 MongoDB Server 5.0 이상을 실행하는 배포에 연결되어 있어야 합니다.
time series 컬렉션 을 만들어 Time Series 데이터 를 저장 수 있습니다. time series 컬렉션 을 만들려면 다음 작업을 수행합니다.
time series 컬렉션 의 속성을 지정하는 BSON 문서 를 만듭니다.
create_collection()메서드를 호출하고 컬렉션 이름과 시계열 BSON 문서 를 인수로 전달합니다.
예시
이 예에서는 다음 구성을 사용하여 precipitation 데이터베이스에 sept2023 time series 컬렉션을 생성합니다.
timeField로 설정됩니다."timestamp"metaField로 설정됩니다."location"granularity로 설정됩니다."minutes"
auto db = client["precipitation"]; auto ts_info = make_document( kvp("timeseries", make_document( kvp("timeField", "timestamp"), kvp("metaField", "location"), kvp("granularity", "minutes") ))); auto collection = db.create_collection("sept2023", ts_info.view());
time series 컬렉션이 성공적으로 생성되었는지 확인하려면 데이터베이스에서 list_collections() 메서드를 실행하고 결과를 출력합니다.
auto cursor = db.list_collections(); for(auto&& doc : cursor) { std::cout << bsoncxx::to_json(doc) << std::endl; }
{ "name" : "sept2023", "type" : "timeseries", "options" : { "timeseries" : { "timeField" : "timestamp", "metaField" : "location", "granularity" : "minutes", "bucketMaxSpanSeconds" : 86400 } }, "info" : ... }
Time Series 데이터 저장
insert_one() 또는 insert_many() 메서드를 사용하고 삽입된 각 문서 에 측정값, 타임스탬프 및 메타데이터 를 지정하여 time series 컬렉션 에 데이터를 삽입할 수 있습니다.
팁
컬렉션 에 문서를 삽입하는 방법에 학습 보려면 문서 삽입 가이드 를 참조하세요.
예시
이 예시 에서는 Time Series 컬렉션 만들기 예시 에서 만든 sept2023 Time Series time series 컬렉션 에 뉴욕시 강수량 데이터를 삽입합니다. 각 문서 에는 다음 필드가 포함되어 있습니다.
precipitation_mm강수량 측정값을 밀리미터 단위로 저장합니다.location위치 메타데이터 를 저장합니다.timestamp, 측정 컬렉션 의 시간을 저장합니다.
auto collection = db["sept2023"]; std::vector<bsoncxx::document::value> ts_data; ts_data.push_back(make_document(kvp("precipitation_mm", 0.5), kvp("location", "New York City"), kvp("timestamp", bsoncxx::types::b_date{std::chrono::milliseconds{1694829060000}}))); ts_data.push_back(make_document(kvp("precipitation_mm", 2.8), kvp("location", "New York City"), kvp("timestamp", bsoncxx::types::b_date{std::chrono::milliseconds{1695594780000}}))); auto result = collection.insert_many(ts_data);
Time Series 데이터 쿼리
다른 컬렉션에서 읽기 또는 집계 작업을 수행할 때 사용하는 것과 동일한 구문 및 규칙을 사용하여 time series 컬렉션 에 저장된 데이터를 쿼리 할 수 있습니다. 이러한 작업에 대한 자세한 내용은 추가 정보 섹션을 참조하세요.
추가 정보
이 가이드에 언급된 개념에 대해 자세히 알아보려면 다음 서버 매뉴얼 항목을 참조하세요.
집계 작업 수행에 대해 자세히 학습 애그리게이션 가이드 참조하세요.
API 문서
이 가이드 에 언급된 메서드에 학습 보려면 다음 API 설명서를 참조하세요.