Docs Menu
Docs Home
/
MongoDB 매뉴얼
/

Time Series 빠른 시작

이 페이지의 내용

  • 단계
  • 샘플 데이터
  • 학습 요약
  • 다음 단계
  • 자세히 알아보기

이 빠른 시작에서는 MongoDB Atlas 또는 자체 관리 배포서버 사용하여 time series 컬렉션 구성, 생성 및 쿼리 방법을 설명합니다.

소요 시간: 30 분

1
  1. 무료 Atlas 계정을 만들거나 기존 계정에 로그인하세요.

  2. 아직 Atlas cluster 없는경우 무료 M0 클러스터 생성합니다. Atlas cluster 생성에 대해 자세히 학습 클러스터 생성을 참조하세요.

    참고

    프로젝트 당무료 클러스터 하나만 만들 수 있습니다.M0

  3. 왼쪽 사이드바에서 개요 를 클릭합니다. 클러스터 선택하고 를 Connect 클릭합니다.

  4. 도구를 통해 데이터 액세스에서 Shell을 클릭합니다.

    아직 설치하지 않았다면 제공된 단계에 따라 mongosh 를 다운로드 하여 설치하세요.

  5. 연결 문자열 복사하고 Done을 클릭합니다.

2

를 사용하여 자체 관리 또는 Atlas 배포서버 에 연결합니다. 예시 들면 다음과 mongosh 같습니다.

mongosh "mongodb+srv://my-test-cluster.1twap.mongodb.net/" --apiVersion 1
--username <user>
3
use timeseries

이렇게 하면 빈 'timeseries' 데이터베이스 생성되고 전환됩니다.

4

참고

이 연습에서는 주식 시세 샘플 데이터를 사용합니다.date 필드 시간 데이터를 저장하고 ticker 필드 개별 주식 식별합니다.

  1. timeField, metaFieldgranularity를 설정합니다.

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

    또는 사용자 지정 세분성을 지정합니다:

    버전 6.3에 추가.

    timeseries: {
    timeField: "date",
    metaField: "ticker",
    granularity: "seconds",
    bucketMaxSpanSeconds: "300",
    bucketRoundingSeconds: "300"
    }
  2. 메서드를 사용하여 컬렉션 만듭니다.db.createCollection()

    db.createCollection(
    "stocks",
    {
    timeseries: {
    timeField: "date",
    metaField: "ticker",
    granularity: "seconds"
    }
    })

    그러면 stocks이라는 빈 time series 컬렉션 생성됩니다.

5

db.collection.insertMany() 메서드를 실행하여 다음 샘플 문서를 컬렉션 에 추가합니다.

db.stocks.insertMany([
{ ticker: "MDB", date: ISODate("2021-12-18T15:59:00.000Z"), close: 252.47, volume: 55046.00},
{ ticker: "MDB", date: ISODate("2021-12-18T15:58:00.000Z"), close: 252.93, volume: 44042.00},
{ ticker: "MDB", date: ISODate("2021-12-18T15:57:00.000Z"), close: 253.61, volume: 40182.00},
{ ticker: "MDB", date: ISODate("2021-12-18T15:56:00.000Z"), close: 253.63, volume: 27890.00},
{ ticker: "MDB", date: ISODate("2021-12-18T15:55:00.000Z"), close: 254.03, volume: 40270.00}
])

Atlas 에서 MongoDB 실행 하는 경우 Browse collections 를 클릭하여 샘플 데이터를 볼 수 있습니다.

6

다른 MongoDB 컬렉션 과 마찬가지로 time series 컬렉션 쿼리 . 자세한 내용은 Time Series 데이터 쿼리 정보를 참조하세요.

Time Series 데이터 에 대한 일반적인 쿼리는 metaField 를 쿼리하여 단일 시계열에 대한 데이터를 가져오거나 timeField 에 범위 쿼리 사용하여 지정된 기간의 데이터를 가져오는 것입니다.

단일 time series에 대해 metaField 를 쿼리 하려면 다음을 수행합니다.

db.stocks.find( { ticker: "MDB" } )

시간 범위에 대해 timeField 를 쿼리 하려면 다음을 수행합니다.

db.stocks.find({ date : {
$gte : ISODate("2021-12-18T15:50:00.000Z"),
$lte : ISODate("2021-12-18T15:56:00.000Z")}
});
1

자세한 지침은 필수 조건을 참조하세요.

  1. Atlas CLI 를 설치합니다.

    Homebrew 를 사용하는 경우 터미널에서 다음 명령을 실행 수 있습니다.

    brew install mongodb-atlas-cli

    다른 운영 체제에 대한 설치 지침은 Atlas CLI 설치를 참조하세요.

  2. Docker설치

    Docker 는 MongoDB 이미지를 가져오고 캐싱하기 위해 네트워크 연결이 필요합니다.

2
  1. 기존 Atlas 계정이 없다면 터미널에서 atlas setup을 실행하거나 새 계정을 만드세요.

  2. atlas deployments setup을 실행하고 메시지에 따라 로컬 배포서버 를 만듭니다. 배포서버 서버에 연결할지 묻는 메시지가 표시되면 skip을 선택합니다.

    자세한 지침은 로컬 Atlas 배포 생성을 참조하세요.

3
4

를 사용하여 자체 관리 또는 Atlas 배포서버 에 연결합니다. 예시 들면 다음과 mongosh 같습니다.

mongosh "mongodb+srv://my-test-cluster.1twap.mongodb.net/" --apiVersion 1
--username <user>
5
use timeseries

이렇게 하면 빈 'timeseries' 데이터베이스 생성되고 전환됩니다.

6

참고

이 연습에서는 주식 시세 샘플 데이터를 사용합니다.date 필드 시간 데이터를 저장하고 ticker 필드 개별 주식 식별합니다.

  1. timeField, metaFieldgranularity를 설정합니다.

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

    또는 사용자 지정 세분성을 지정합니다:

    버전 6.3에 추가.

    timeseries: {
    timeField: "date",
    metaField: "ticker",
    granularity: "seconds",
    bucketMaxSpanSeconds: "300",
    bucketRoundingSeconds: "300"
    }
  2. 메서드를 사용하여 컬렉션 만듭니다.db.createCollection()

    db.createCollection(
    "stocks",
    {
    timeseries: {
    timeField: "date",
    metaField: "ticker",
    granularity: "seconds"
    }
    })

    그러면 stocks이라는 빈 time series 컬렉션 생성됩니다.

7

db.collection.insertMany() 메서드를 실행하여 다음 샘플 문서를 컬렉션 에 추가합니다.

db.stocks.insertMany([
{ ticker: "MDB", date: ISODate("2021-12-18T15:59:00.000Z"), close: 252.47, volume: 55046.00},
{ ticker: "MDB", date: ISODate("2021-12-18T15:58:00.000Z"), close: 252.93, volume: 44042.00},
{ ticker: "MDB", date: ISODate("2021-12-18T15:57:00.000Z"), close: 253.61, volume: 40182.00},
{ ticker: "MDB", date: ISODate("2021-12-18T15:56:00.000Z"), close: 253.63, volume: 27890.00},
{ ticker: "MDB", date: ISODate("2021-12-18T15:55:00.000Z"), close: 254.03, volume: 40270.00}
])

Atlas 에서 MongoDB 실행 하는 경우 Browse collections 를 클릭하여 샘플 데이터를 볼 수 있습니다.

8

다른 MongoDB 컬렉션 과 마찬가지로 time series 컬렉션 쿼리 . 자세한 내용은 Time Series 데이터 쿼리 정보를 참조하세요.

Time Series 데이터 에 대한 일반적인 쿼리는 metaField 를 쿼리하여 단일 시계열에 대한 데이터를 가져오거나 timeField 에 범위 쿼리 사용하여 지정된 기간의 데이터를 가져오는 것입니다.

단일 time series에 대해 metaField 를 쿼리 하려면 다음을 수행합니다.

db.stocks.find( { ticker: "MDB" } )

시간 범위에 대해 timeField 를 쿼리 하려면 다음을 수행합니다.

db.stocks.find({ date : {
$gte : ISODate("2021-12-18T15:50:00.000Z"),
$lte : ISODate("2021-12-18T15:56:00.000Z")}
});
1

자체 관리형 배포서버 실행 하는 경우 MongoDB 버전, 에디션 및 플랫폼에 대한 설치 지침을 따르세요.

2
3

를 사용하여 자체 관리 또는 Atlas 배포서버 에 연결합니다. 예시 들면 다음과 mongosh 같습니다.

mongosh "mongodb+srv://my-test-cluster.1twap.mongodb.net/" --apiVersion 1
--username <user>
4
use timeseries

이렇게 하면 빈 'timeseries' 데이터베이스 생성되고 전환됩니다.

5

참고

이 연습에서는 주식 시세 샘플 데이터를 사용합니다.date 필드 시간 데이터를 저장하고 ticker 필드 개별 주식 식별합니다.

  1. timeField, metaFieldgranularity를 설정합니다.

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

    또는 사용자 지정 세분성을 지정합니다:

    버전 6.3에 추가.

    timeseries: {
    timeField: "date",
    metaField: "ticker",
    granularity: "seconds",
    bucketMaxSpanSeconds: "300",
    bucketRoundingSeconds: "300"
    }
  2. 메서드를 사용하여 컬렉션 만듭니다.db.createCollection()

    db.createCollection(
    "stocks",
    {
    timeseries: {
    timeField: "date",
    metaField: "ticker",
    granularity: "seconds"
    }
    })

    그러면 stocks이라는 빈 time series 컬렉션 생성됩니다.

6

db.collection.insertMany() 메서드를 실행하여 다음 샘플 문서를 컬렉션 에 추가합니다.

db.stocks.insertMany([
{ ticker: "MDB", date: ISODate("2021-12-18T15:59:00.000Z"), close: 252.47, volume: 55046.00},
{ ticker: "MDB", date: ISODate("2021-12-18T15:58:00.000Z"), close: 252.93, volume: 44042.00},
{ ticker: "MDB", date: ISODate("2021-12-18T15:57:00.000Z"), close: 253.61, volume: 40182.00},
{ ticker: "MDB", date: ISODate("2021-12-18T15:56:00.000Z"), close: 253.63, volume: 27890.00},
{ ticker: "MDB", date: ISODate("2021-12-18T15:55:00.000Z"), close: 254.03, volume: 40270.00}
])

Atlas 에서 MongoDB 실행 하는 경우 Browse collections 를 클릭하여 샘플 데이터를 볼 수 있습니다.

7

다른 MongoDB 컬렉션 과 마찬가지로 time series 컬렉션 쿼리 . 자세한 내용은 Time Series 데이터 쿼리 정보를 참조하세요.

Time Series 데이터 에 대한 일반적인 쿼리는 metaField 를 쿼리하여 단일 시계열에 대한 데이터를 가져오거나 timeField 에 범위 쿼리 사용하여 지정된 기간의 데이터를 가져오는 것입니다.

단일 time series에 대해 metaField 를 쿼리 하려면 다음을 수행합니다.

db.stocks.find( { ticker: "MDB" } )

시간 범위에 대해 timeField 를 쿼리 하려면 다음을 수행합니다.

db.stocks.find({ date : {
$gte : ISODate("2021-12-18T15:50:00.000Z"),
$lte : ISODate("2021-12-18T15:56:00.000Z")}
});

이 빠른 시작은 다음 문서 구조로 stocks time series 컬렉션 만듭니다.

{
_id: ObjectId(...),
ticker: <string>,
date: ISODate(...),
close: <double>,
volume: <double>
}

이 빠른 시작에서는 새 time series 컬렉션 만드는 데 중점을 두었습니다. 시계열 컬렉션은 시간 데이터에 최적화되어 있으므로 컬렉션의 성능은 생성 시 컬렉션을 구성하는 방법에 따라 크게 달라집니다. 자세한 내용은 Time Series 컬렉션 고려 사항을 참조하세요.

돌아가기

시계열