모범 사례 및 튜토리얼

터미널에서 편리하게 시계열 데이터 그래프 그리기

Couchbase 블로그의 이전 게시물을 팔로우하고 계신다면 다음을 보셨을 것입니다. 카우치베이스 셸에 대한 콘텐츠 최신 릴리스입니다. 저는 다양한 시도를 하고 있는데, 오늘은 시계열 데이터 집합으로 무엇을 할 수 있는지 알아보고 싶었습니다.

시계열 데이터 수집

Kaggle을 검색하면서 다음을 발견했습니다. 도시별 온도 데이터. 다운로드했습니다. 용량이 500Mb 정도라서 전체적으로 조작하기는 어렵습니다. 하지만 물론 텍스트 파일이기 때문에 데이터 구조를 쉽게 들여다볼 수 있습니다:

8599212 줄, 이것은 8599211 문서가 될 것입니다. 제 최종 목표는 여러 도시의 수년간의 기온 그래프를 보는 것입니다. 이를 위해 먼저 모든 것을 가져오기 버킷으로 가져온 다음 데이터를 시계열로 변환하겠습니다.

이것을 순진하게 가져오면 도시/월별 그룹당 하나의 문서가 제공됩니다. 따라서 내 문서의 키는 다음과 같습니다. Århus:1743-11-01. 첫 번째 줄만 업로드하고 싶다고 가정하면 다음과 같이 표시되어야 합니다:

이제 작동한다는 것을 알았으니 모든 것을 가져와서 일괄 처리해 보겠습니다:

나는 시리즈 컬렉션의 결과를 가져오는 선택 집계, 타임스탬프로 모든 날짜 및 모든 평균 온도 를 값으로 설정합니다:

이제 모든 데이터를 시계열로 사용할 수 있습니다. 파리의 데이터를 원한다고 가정하면 _timeseries 함수는 다음과 같습니다:

작업 속도를 높이려면 다음 색인을 만들 수 있습니다: 시리즈(City, ts_end, ts_start)에 인덱스 ix1을 생성합니다;

사용법에 유의하세요. ts_ranges 변수를 추가하세요. 템플릿에서 이러한 값을 쉽게 재사용할 수 있습니다. 문자열. 로 시작하여 $ 기호와 변수는 다음과 같이 괄호 안에 넣어야 합니다. ($my_변수). 또한 이제 큰따옴표뿐만 아니라 괄호 문자도 이스케이프 처리해야 한다는 의미이기도 합니다.

시계열 플롯

다양한 터미널 플로팅 라이브러리가 있으며, 여기서는 다음을 사용하고 있습니다. 유플롯:

이제 모두 훌륭하지만 이상적으로는 여러 도시를 비교하기 위해 거기에 여러 도시를 포함시키고 싶습니다. 추가 CSV 열은 다음을 실행하면 자동으로 선택됩니다. 유플롯 라인. 점진적으로 작업을 수행하면서 쿼리에서 여러 도시를 지원하는 것부터 시작해 보겠습니다. 여기서 몇 가지 변경 사항이 있습니다:

    • 시간별로 데이터 그룹화
    • 추가 d.city IN ($city) 를 where 절에 추가합니다. 이는 도시 배열이 JSON 배열의 문자열 리터럴이기 때문에 작동합니다. 답을 JSON 문서로 살펴보겠습니다:

하지만 이렇게 모든 것을 평평하게 만들어도 CSV로 변환할 수는 없습니다:

따라서 다음과 같이 객체로 변환할 수 있습니다: Object v.city : v.temp FOR v IN ARRAY_AGG({"city": d.city,"temp":t._v0}) 때 v가 누락되지 않은 경우 END

이제 이를 CSV로 평활화할 수 있습니다:

이제 여러 줄을 그릴 준비가 되었습니다:

이 작업을 더 쉽게 하기 위해 함수를 사용할 수 있습니다. 함수를 만들어 .nu 파일과 같은 temp.nu에 다음과 같은 내용으로 업데이트합니다:

그런 다음 소스를 제공하면 훨씬 더 쉽게 사용할 수 있습니다:


이 글을 통해 Couchbase 시계열 지원, Couchbase Shell 데이터 조작, 그리고 다음과 같은 다른 셸 명령을 사용하는 방법에 대한 간략한 개요를 얻으셨기를 바랍니다. 유플롯 를 사용하여 더욱 통합적이고 흥미롭게 만들 수 있습니다. 다음에서 다양한 형식의 전체 보고서를 쉽게 생성할 수 있습니다. GitHub 작업 예를 들어, 무한한 가능성!

 

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

작성자

게시자 로랑 도귄

Laurent는 파리에 사는 괴짜 금속공학도입니다. 주로 Java로 코드를 작성하고 AsciiDoc으로 구조화된 텍스트를 작성하며 데이터, 리액티브 프로그래밍 및 기타 유행어에 대해 자주 이야기합니다. 또한 Clever Cloud와 Nuxeo의 개발자 옹호자로 활동하며 해당 커뮤니티가 더 크고 강력하게 성장할 수 있도록 자신의 시간과 전문성을 바쳤습니다. 현재 Couchbase에서 개발자 관계를 운영하고 있습니다.

댓글 남기기

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

구축 시작

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

카펠라 무료 사용

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

연락하기

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