개요
이 가이드 에서는 Ruby 운전자 사용하여 Time Series 데이터 저장 하고 상호 작용 방법을 학습 수 있습니다.
시계열 데이터는 다음 구성 요소로 구성됩니다.
측정 수량
측정 타임스탬프
측정값을 설명하는 메타데이터
다음 표에서는 Time Series 데이터 를 저장 수 있는 샘플 상황을 설명합니다.
상황 | 측정 수량 | Metadata |
---|---|---|
산업별 월별 매출 기록 | USD 기준 수익 | 회사, 국가 |
날씨 변화 추적 | 강수량 수준 | 위치, 센서 유형 |
기록적인 주택 가격 변동 | 월 임대료 | 위치, 통화 |
Time Series 컬렉션 만들기
중요
Time Series 컬렉션의 서버 버전
Time Series 컬렉션을 만들고 상호 작용하려면 MongoDB Server 5.0 이상을 실행하는 배포에 연결되어 있어야 합니다.
time series 컬렉션 만들려면 컬렉션 의 사양이 포함된 옵션 해시를 전달해야 합니다. time series 컬렉션 에 대해 다음 사양을 지정할 수 있습니다.
:timeField
: 각 time series 문서 에 타임스탬프를 저장하는 필드 를 지정합니다.:metaField
: 각 time series 문서 에 메타데이터 를 저장하는 필드 를 지정합니다.:granularity
: 연속된 타임스탬프 사이의 대략적인 시간을 지정합니다. 가능한 값은'seconds'
,'minutes'
및'hours'
입니다.:bucketMaxSpanSeconds
: 동일한 버킷에 있는 타임스탬프 사이의 최대 시간을 설정합니다.:bucketRoundingSeconds
: MongoDB 가 새 버킷에 대한 최소 타임스탬프를 설정할 때 반내림할 시간(초)을 설정합니다.:bucketMaxSpanSeconds
과 같아야 합니다.
이러한 매개변수에 대해 자세히 학습 명령에 대한 MongoDB Server 매뉴얼 항목의 명령 필드를 참조하세요.create
예시
다음 예시 Collection#create
메서드를 사용하여 :timeField`
옵션이 "timestamp"
로 설정하다 october2024
이라는 time series 컬렉션 만듭니다.
client = Mongo::Client.new('<connection string>', database: 'weather') collection_name = 'october2024' time_series_options = { timeField: 'timestamp' } database = client.database database.command( create: collection_name, timeseries: time_series_options )
컬렉션 성공적으로 생성되었는지 확인하려면 다음 코드와 같이 데이터베이스 의 모든 collection 목록을 인쇄하고 컬렉션 이름으로 필터하다 .
collections = database.list_collections(filter: { name: 'october2024' }).to_a puts collections
[ { "name": "october2024", "type": "timeseries", "options": { "timeseries": { "timeField": "timestamp", "granularity": "seconds", "bucketMaxSpanSeconds": 3600 } }, "info": { "readOnly": false } } ]
Time Series 데이터 저장
insert_one
또는 insert_many
메서드를 사용하고 삽입된 각 문서 에 측정값, 타임스탬프 및 메타데이터 지정하여 time series 컬렉션 에 데이터를 삽입할 수 있습니다.
문서 삽입에 대해 자세히 학습 문서 삽입 가이드 참조하세요.
예시
이 예시 앞의 Time Series 컬렉션 만들기 섹션에서 만든 october2024
time series 컬렉션에 뉴욕시 온도 데이터를 삽입합니다. 각 문서 에는 다음 필드가 포함되어 있습니다.
temperature
, 온도 측정값을 화씨 단위로 저장합니다.location
위치 메타데이터 를 저장합니다.timestamp
, 측정 타임스탬프를 저장합니다.
client = Mongo::Client.new('<connection string>', database => 'your_db') collection = client[:october2024] document_list = [ { temperature: 77, location: "New York City", timestamp: DateTime.new(2024, 10, 22, 6, 0, 0) }, { temperature: 74, location: "New York City", timestamp: DateTime.new(2024, 10, 23, 6, 0, 0) } ] collection.insert_many(document_list)
Time Series 데이터 쿼리
다른 컬렉션에서 읽기 또는 집계 작업을 수행할 때 사용하는 것과 동일한 구문 및 규칙을 사용하여 time series 컬렉션 에 저장된 데이터를 쿼리 수 있습니다. 이러한 작업에 대해 자세히 학습 다음 가이드를 참조하세요.
추가 정보
이 가이드 의 개념에 학습 보려면 다음 MongoDB Server 매뉴얼 항목을 참조하세요.
API 문서
이 가이드 에 언급된 메서드에 학습 보려면 다음 API 설명서를 참조하세요.