카우치베이스 애널리틱스

카우치베이스 애널리틱스의 창 기능

공동 저자: 틸 웨스트만, 엔지니어링 부문 선임 이사


그리고 비트 를 곧 출시될 Couchbase Server 6.5에서 사용할 수 있습니다. 효율적인 병렬 쿼리 처리를 지원하는 Analytics 서비스에서 정의된 창 함수에 대한 지원이 추가되었습니다. SQL:2003 표준.

여러분을 포함한 많은 사람들에게 창 함수는 거의 사용하지 않는 마법의 기능입니다. 하지만 창 함수는 SQL 쿼리를 더 간결하게 만들어 가독성을 높여주므로 실제 애플리케이션에서 쿼리를 쉽게 유지 관리할 수 있습니다. 창 함수로 표현되는 쿼리는 최적화하기 어려운 고비용의 자체 조인과 하위 쿼리를 포함하므로 쿼리 실행 속도가 느려질 수 있습니다. 윈도우 함수를 사용하는 가장 실용적인 예제인 누계 계산을 통해 요점을 설명하겠습니다.SQL에서 누계를 계산하는 방법에는 여러 가지가 있습니다. 이 블로그 게시물에서는 INNER JOIN을 사용하는 구식 방법과 Couchbase 6.5에서 새롭게 제공되는 창 함수를 사용하는 두 가지 방법으로 누계를 계산해 보겠습니다.

러닝 합계란 무엇인가요?

A 실행 합계 는 추가되는 항목을 고려하여 지속적으로 조정되는 합계입니다. 다른 용어로 부분 합계라고도 합니다. 아래 예에서 거래 날짜의 누계는 InvoiceID의 누계액에 현재 TransactionAmount를 더한 값입니다.

 

위에서 계산된 RunningTotal이 있지만 처음 세 필드는 소스 데이터이며 SQL 쿼리를 사용하여 RunningTotal을 계산해야 한다는 점에 유의하세요.

사전 요구 사항

다운로드 카우치베이스 서버 6.5 를 클릭하고 이 블로그 게시물에서 쿼리를 실행할 샘플 데이터에 대한 Couchbase 버킷을 설정합니다.  

아래 데이터를 사용하여 "송장"이라는 Couchbase 버킷을 만듭니다.

Analytics 워크벤치에서 다음 문을 실행하여 데이터 집합을 만듭니다.

특정 날짜의 누계에 대한 내부 조인 쿼리

각 인보이스 ID에 대해 거래 금액과 그 이전의 모든 거래 금액을 검색해야 합니다. 이 작업은 각 송장 및 그 이전 송장을 가져오는 조건이 포함된 Inner 조인을 사용하여 수행합니다.

JOIN과 NoSQL이 항상 잘 어울리는 것은 아닙니다. 사실, 기존의 통념에 따르면 NoSQL 환경의 데이터는 JOIN을 피하기 위해 비정규화됩니다. 하지만 Couchbase Analytics는 복잡한 조인 및 집계를 포함하는 데이터 탐색 및 임시 분석을 위해 만들어졌습니다. 분석 쿼리 엔진은 다른 NoSQL 공급업체에서 지원하지 않는 조인을 처리할 수 있습니다. 

카우치베이스 애널리틱스가 어떻게 JSON 데이터를 조인할 수 있는지 궁금하다면, 이 문서에서 자세히 알아보는 것을 추천합니다. 비디오 프레젠테이션 마이크 캐리 교수와 함께, 컨설팅 수석 아키텍트 카우치베이스. 

특정 날짜의 누계에 대한 창 함수 쿼리

창 기능에 익숙하지 않다면 다음을 읽어보는 것이 좋습니다. PostgresSQL의 문서 를 소개합니다: 

"A 창 기능 는 현재 행과 어떤 식으로든 관련된 테이블 행 집합에 대해 계산을 수행합니다. 이는 집계 함수로 수행할 수 있는 계산 유형과 비슷합니다. 그러나 일반 집계 함수와 달리 창 함수를 사용하면 행이 하나의 출력 행으로 그룹화되지 않고 행이 개별적인 신원을 유지합니다. 윈도우 함수는 쿼리 결과의 현재 행뿐만 아니라 그 이상의 행에 액세스할 수 있습니다."

실제 쿼리는 다음과 같습니다.

위의 문구에는 단순함과 간결함 외에도 몇 가지 흥미로운 점이 있습니다.

  1.     집계 함수는 있지만 그룹화 절은 없습니다. 일반적으로 집계 함수에는 그룹화 절이 필요하지만 여기서는 OVER 절을 사용하므로 SUM은 창 함수로 간주됩니다.
  2.     OVER 절은 현재 행을 기준으로 특정 행 집합을 검색하고 특정 필드에 대해 연산을 수행합니다.
  3.     ORDER BY는 창 함수가 평가되는 논리적 순서를 정의합니다.

참고: 카우치베이스는 쿼리 및 분석 서비스 모두에 대한 창 기능을 지원하며, 동일한 쿼리를 쿼리 및 분석 워크벤치 모두에서 실행할 수 있습니다. 쿼리 서비스에서 실행하려면 다음 인덱스를 만들어야 합니다.

이 블로그 포스팅의 목적은 Couchbase Analytics의 창 함수를 소개하는 것입니다. 창 함수는 SQL 표준의 일부이며 모든 주요 관계형 데이터베이스와 Hive 및 Spark와 같은 빅 데이터 도구에서 사용할 수 있습니다. 6.5 릴리스에서는 이러한 기능을 문서 데이터베이스에 제공합니다. 이를 직접 경험해보고 싶으시다면 다음을 참조하세요. 비트 다운로드 에 접속하여 포럼.

리소스

카우치베이스 서버 6.5의 새로운 기능

6.5 블로그 모두 보기

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

작성자

게시자 사친 스모트라, 제품 관리 이사, Couchbase

사친 스모트라는 15년 이상 Java 엔터프라이즈 소프트웨어, 모바일 게임용 DRM 솔루션, 웹 회의 등 다양한 영역에서 소프트웨어 제품을 구축해 왔습니다. Couchbase의 제품 관리 이사로서 고객, 파트너, 개발자 및 분석가들과 함께 제품 전략 및 비전을 전파하는 등 Couchbase 모바일, IOT 및 분석 제품 라인을 책임지고 있는 실무형 제품 리더입니다. 카우치베이스에 합류하기 전에는 Cisco WebEx에서 제품 관리 수석 관리자로 근무하며 제품 팀을 이끌고 WebEx 제품 수명 주기 전반에서 고려, 구매, 사용 및 갱신 등 엔드투엔드 고객 경험을 혁신하는 업무를 담당했습니다. Cisco에서 근무하기 전에는 여러 스타트업에서 엔지니어링, 아키텍처, 제품 관리, 제휴 등 다양한 직무를 수행했습니다.

댓글 남기기

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

구축 시작

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

카펠라 무료 사용

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

연락하기

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