모범 사례 및 튜토리얼

시계열 시리즈(카우치베이스에서): 에피소드 1

이것은 무엇에 관한 것입니까?

시계열 사용 사례가 있으신가요? 저도 마찬가지이며, 이 블로그 글이 그 증거입니다.

새로운 주제에 대해 배울 때 저는 로키의 방법 를 사용하여 새로운 개념을 암기하고 연결합니다. 이 방법은 익숙한 장소(예를 들어 집)를 (정신적으로) 거닐며 기억하고 싶은 것들로 채우는 것입니다. 내일의 일정을 기억하고 싶다면 현관 입구에서 시작하여 커다란 컬러풀한 솜브레로 옆에 09:00 병원 약속을 '걸어 놓을' 수 있습니다. 주방으로 '걸어' 들어가면 스크램블 에그가 담긴 프라이팬 위에 10:30 Zoom 호출이 '튀겨지고' 있는 것을 볼 수 있습니다. 우리의 뇌는 특이한 것에 집착하기 때문에 이상한 이미지가 더 잘 기억됩니다. 흥미롭게도 이 예시도 시계열입니다. 제 일정의 각 이벤트는 특정 시간에 발생하고 각 이벤트는 특정 속성(이름, 장소 등)을 가지고 있습니다.

이 '집 안을 걷는' 비유를 계속 이어가면서 새로운 시계열 지식이 잘 이해되도록 해보겠습니다.

그리고 녹색

녹색 는 자연, 재생, 성장, 신선한 아이디어와 같은 행복한 색입니다. 시계열에 대한 정의는 그린룸에 속합니다.

아이가 열이 나면 체온을 매번 측정합니다. 시간를 사용하면 시리즈 시간 경과에 따른 측정값입니다. 범죄자의 차량에 GPS 추적기를 몰래 부착하면 다음과 같은 정보를 얻을 수 있습니다. 시리즈 차량이 정차하는 위치의 수 또는 개월. .  라즈베리 파이 온도와 습도를 수집하는 프로젝트 판독값 한 번 second 자녀가 학교 과학 박람회를 위해 만들었나요? 대마초 농장에 설치하여 다음을 수행하십시오. 스트림 이 데이터를 카우치베이스 클러스터에 추가하세요! 그런 다음 이 데이터를 카우치베이스 모바일 앱을 통해 이 중요한 작물을 가장 잘 수확할 수 있는 최적의 조건을 보장합니다.

보시다시피, 시계열 사용 사례는 기존의 지루한 주식 시세와 서버 로그 예시를 훨씬 뛰어넘습니다. 여전히 다음과 같이 요약할 수 있습니다. 목록 (시퀀스, 시리즈) 값의 (판독값, 측정값, 데이터 포인트) 수집 시간이 지남에 따라. 시계열 사용 사례는 오늘날 소비자 제품, 산업 기술 및 비즈니스 서비스에서 흔히 볼 수 있습니다. 이러한 인기에 힘입어 시계열 데이터베이스에는 특히 시계열 데이터 작업을 위한 다양한 최적화가 포함되어 있습니다. 예를 들어 프로메테우스 내보내기 (파이썬으로 작성)를 사용하여 Couchbase 서버 메트릭을 다음과 같이 변환합니다. 프로메테우스 시계열 형식을 사용하여 모니터링 대시보드를 만들 수 있습니다. Grafana.

우리는 녹색 방이 있는 녹은 시계 천장에 매달려 있고(이상해야죠?), 일련의 왜곡된 타임 스탬프가 찍힌 녹아내리는 화이트 보드가 있는 시계열 애리조나의 여름날 데이터(화씨 단위)입니다:

그리고 오렌지

오렌지 는 우리의 관심을 끄는 색상으로, 보통 열정과 따뜻함을 연상시킵니다. 따라서 Couchbase Server에서 시계열 데이터로 작업하는 방법에 대한 세부 정보를 넣기에 좋은 곳입니다.

W의례!

많은 양의 쓰기를 처리할 준비를 하세요! 시계열 데이터와 관련된 실제 사용 사례에서는 시간당, 분당, 초당 수천 개의 판독값이 생성됩니다. 여기에 데이터를 생성하는 장치 또는 애플리케이션의 수를 곱하면 하루에 수백만 건의 새로운 쓰기가 빠르게 발생합니다. Couchbase Server는 다음을 통해 데이터 수집을 최적화합니다. 메모리 우선비동기 아키텍처를 사용합니다. JSON 문서는 메모리, 디스크, 와이어에서 압축됩니다.

카우치베이스 서버는 삽입, 업데이트, 업서트(키가 없는 경우 삽입, 그렇지 않은 경우 업데이트) 등 모든 유형의 쓰기를 동일하게 효율적으로 처리합니다. 지원 가능한 모든 SDK에 대해 제공되는 하위 문서 작업을 통해 업데이트를 더욱 최적화할 수 있습니다, Java SDK 하위 문서 API).

A집계!

여러 측정값을 수집하여 하나의 JSON 문서로 롤업하면 데이터를 집계하는 것입니다. 이는 시계열 데이터의 저장을 최적화하기 위한 일반적인 단계입니다. 다음과 같은 일이 발생할 수 있습니다. 전에 측정값을 데이터베이스에 삽입(사전 집계): 애플리케이션 또는 StreamSets 데이터 수집기와 같은 데이터 수집 소프트웨어가 이 작업을 수행할 수 있습니다. 카우치베이스 서버 이벤트 서비스 시계열 값을 롤업할 수 있습니다. 이후 버킷에 추가되었습니다. 이 경우 JavaScript 함수가 데이터베이스 OnUpdate 트리거로 실행되어 다음에서 값을 저장합니다. 여러 개의 JSON 문서 를 값의 배열로 단일 JSON 문서. 예를 들어 두 가지 접근 방식 중 하나를 선택하면 다음과 같은 결과를 얻을 수 있습니다, 60개 문서 초당 판독값의 비율(아래 참조)

단일 문서에 아래와 같이 모든 판독값이 포함된 문서를 작성합니다:

중복 데이터(타임스탬프, 긴 JSON 필드/속성 이름)를 제거하는 것 외에도 다음과 같은 변경 사항을 적용했습니다:

  • 문서 키에서 ISO 타임스탬프를 에포크 값으로 대체했습니다. 에포크 값은 초당 판독값을 수집한 분(2020-01-02 12:34)에 해당합니다.
  • 문서 키에 센서 이름을 추가했습니다. 이렇게 하면 키-값 연산을 사용하여 특정 센서의 값을 쿼리할 수 있으며, 이는 문서 작업 시 항상 가장 빠른 방법입니다.
  • 60개 요소 배열로 나열된 온도 및 압력 데이터를 초당 한 번씩 측정합니다;
  • 문서의 JSON 스키마 버전을 추가했습니다.

JSON 형식의 유연성 덕분에 첫 번째 버전을 쉽게 빠르게 출시할 수 있습니다("나쁠수록 좋습니다" 원칙)을 따르고 애플리케이션이 발전함에 따라 문서 스키마를 발전시키세요. 전문 시계열 데이터베이스는 이 점에서 훨씬 더 엄격합니다. 그러나 문서에서 스키마 버전을 추적하는 것이 가장 좋습니다. 이렇게 하면 애플리케이션의 이전 버전과의 호환성을 보장하는 데 도움이 됩니다. 또한 N1QL을 실행하여 문서를 새 스키마로 업데이트할 수 있습니다. 업데이트 쿼리.

Read!

이제 시계열 데이터로 유용한 작업을 할 때입니다. 다음은 카우치베이스 데이터 플랫폼이 제공하는 옵션입니다:

  • 키-값을 1밀리초 이내에 읽는 것은 Couchbase Server가 하루 종일 훌륭하게 수행하는 기능입니다. 결국, 우리가 데이터를 집계한 주된 이유 중 하나는 한 번의 읽기 작업으로 데이터를 쉽게 얻기 위해서였습니다.
  • SQL 쿼리 를 사용할 수 있습니다. N1QL 언어는 사용자가 쉽게 배울 수 있도록 의도적으로 SQL 구문을 상속했습니다.
  • 전체 텍스트 검색 는 카우치베이스 서버에서 사용할 수 있는 데이터로 작업하는 또 다른 방법입니다. 사용 사례에 따라 언어 인식, 숫자 범위, 날짜 범위 및 위치 기반 정보 쿼리를 위한 더 나은 대안이 될 수 있습니다. 더 좋은 점은 다음과 같습니다. 검색과 N1QL 결합 를 단일 쿼리에 넣을 수 있습니다.
  • 분석은 시계열 데이터에 매우 적합합니다. 데이터 플랫폼의 일부로 다음을 제공합니다. 분석 서비스 데이터에서 다양한 비즈니스 인사이트를 얻을 수 있습니다. Couchbase Analytics는 데이터가 있는 동일한 클러스터의 일부로 실행되므로 ETL(추출, 변환, 로드) 작업이 필요하지 않습니다. 데이터의 최신 섀도 복사본에 대해 효율적인 병렬 쿼리를 실행합니다.
  • 카우치베이스는 다른 시스템과도 잘 어울립니다. 다음과 같이 널리 사용되는 시스템에 대해 지원되는 빅 데이터 커넥터를 제공합니다. Spark, 카프카Elasticsearch.

M오버 온!

조만간 다른 곳으로 옮겨야 할 때가 올 것입니다. 데이터를 얼마나 오래 보관해야 하나요? 고객이 클러스터 규모를 조정할 때 항상 이 질문을 합니다. Couchbase를 사용하면 쉽게 확장하거나 축소할 수 있습니다. 온라인 게임 회사는 새로운 게임을 출시할 때 몇 개의 추가 노드로 시작하고 싶을 수 있습니다. 반면에 예산이 부족한 스타트업은 데이터 보관량에 대해 더욱 주의를 기울여야 할 수 있습니다.

Couchbase에서 데이터를 삭제하려면 어떻게 해야 하나요?

  • 문서 만료(TTL이라고도 함)를 설정합니다. TTL 값은 문서 메타데이터의 일부로, TTL이 0이면 문서가 만료되지 않습니다. 0보다 큰 값은 문서가 삭제된 것으로 표시되는 시간(초)입니다. TTL은 SDK 메서드를 통해 설정하고 업데이트하거나 (Couchbase Server 6.5.1부터) 다음을 통해 설정할 수 있습니다. N1QL 쿼리.
  • 설정 버킷의 TTL. 버킷에 들어오는 모든 새 문서에는 이미 설정되어 있지 않은 한 TTL이 할당됩니다.
  • N1QL 쿼리 또는 이벤트 함수를 통해 문서를 삭제합니다. 이벤트 함수는 다음 방법으로도 실행할 수 있습니다. 타이머 .
  • 버킷 전체를 세척하거나 버립니다.

Couchbase 클러스터에서 데이터를 삭제하기 전에 아래 몇 가지 이유로 데이터를 보관하거나 공유할 수 있습니다:

  • 다음을 사용하여 다른 Couchbase 클러스터에 문서를 보관합니다. XDCR (데이터센터 간 복제). 소스 버킷의 문서에는 대상 버킷에 들어가기 전에 제거할 수 있는 TTL이 있을 수 있습니다. 이 옵션은 XDCR 복제에 대해 구성할 수 있습니다.
  • 더 오래 보관하려면 저렴한 스토리지 시스템(예: AWS S3)에 문서를 보관하세요.
  • 추가 분석을 위해 문서를 다른 시스템으로 옮깁니다(예: 장기 과학 연구를 위한 데이터 레이크).

우리가 떠날 때 오렌지 방, 이걸 유지합시다 W.A.R.M느낌(쓰기, 집계, 읽기, 이동)을 기억에 남깁니다. 시계열 데이터의 수명 주기는 대문자(각 벽마다 한 글자씩)와 이를 연결하는 구불구불한 화살표(위와 같은 화살표)로 표시됩니다.

더 많은 객실 제공 예정

글쎄요, 노란색 은 희망의 색이지만 흰색 배경에서는 잘 보이지 않습니다. 조만간 이 시계열 시리즈의 에피소드 2를 여러분과 함께 나누고 싶다는 희망의 상징으로 여기 한 번 사용하겠습니다. 시간 내주셔서 감사합니다!

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 올레그 쿠즈민, 선임 솔루션 엔지니어, 카우치베이스

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.