카우치베이스 애널리틱스

N1QL: 쿼리할까요, 분석할까요?

참고: 이 추천 노트는 Couchbase 분석 R&D를 이끌고 있는 Till Westmann 및 Mike Carey와 공동으로 작성되었습니다.

[이 글의 2부는 Even Pease의 글에서 확인할 수 있습니다: https://www.couchbase.com/blog/part-2-n1ql-to-query-or-to-analyze/]

Couchbase의 쿼리 및 분석 서비스는 모두 N1QL(JSON용 SQL)을 지원합니다. 일반적인 질문은 "어떤 서비스가 내 쿼리를 실행해야 하나요?"입니다. 빠른 대답은 "사용자에 따라 다릅니다. 워크로드". 이 블로그에서 이 답변에 대해 설명합니다.

거래는 식료품점에서 커피와 케이크를 구매하는 것을 말합니다. 분석은 식료품점에서 모든 판매 데이터를 살펴보고 어떤 요일, 어떤 달에 커피나 케이크가 더 많이 팔리는지 확인하여 재고, 판매, 가격을 계획할 수 있도록 하는 것입니다.

모든 비즈니스는 이 세 가지를 주기적으로 또는 나선형으로 수행합니다[목표].

  1. 고객에게 제품이나 서비스를 제공하기 위한 비즈니스 프로세스를 실행합니다.
  2. 비즈니스를 분석하여 변경할 사항과 변경할 대상을 결정하세요.
  3. 변화를 실현하세요.

현대 비즈니스에서는 각 단계를 수행하기 위해 애플리케이션이 필요합니다.

쿼리 서비스는 비즈니스 운영에 필요한 애플리케이션에서 사용되며, 각각 소량의 작업을 수행하는 많은 수의 동시 쿼리를 위해 설계되었습니다. RDBMS 세계에서는 이 워크로드를 OLTP 워크로드라고 합니다.

분석에 사용되는 애플리케이션이나 도구는 워크로드 특성이 다릅니다. 일반적으로 많은 수의 문서를 분석하는 적은 수의 동시 쿼리를 위해 설계된 분석 서비스를 사용합니다. RDBMS 세계에서는 이러한 워크로드를 OLAP 워크로드라고 합니다.  

이 두 서비스에 대해 자세히 살펴보겠습니다.

쿼리 서비스 분석 서비스
튜토리얼
https://query-tutorial.couchbase.com/tutorial/#1 https://sqlplusplus-tutorial.couchbase.com/tutorial/#1
상위 수준 비교
애플리케이션 로직 내 데이터 조작에 사용 보고서, 분석(기록, 대화형), 대시보드에 사용
짧은 쿼리

 - 비교적 간단한 SQL

 - 일반적으로 소량의 데이터와 관련된 경우

더 긴 작업 시간

 - 분석이 포함된 복잡한 SQL

 - 일반적으로 대량의 데이터가 포함되는 경우

운영 애플리케이션을 위한 SELECT, INSERT, UPDATE, DELETE, MERGE 실행 분석을 위해 SELECT 실행
무작위 업데이트

 - 쿼리당 몇 개의 문서 업데이트

업데이트 없음

 - 데이터 서비스에서 수집된 변경 사항

밀리초에서 1초의 지연 시간,

높은 처리량(10-1000 QPS), 성능 목표는 쿼리/초입니다.

초에서 분 단위의 응답 시간,

<초당 1~10개 미만의 쿼리,

성능 목표는 초/쿼리입니다.

많은 수의 인덱스 인덱스 수 감소
개발자 작성 쿼리; 생성된 쿼리는 잘 알려져 있습니다. 애드혹 쿼리; 복잡한 보고서, 대시보드, BI 워크로드
쿼리는 분산 인덱스 및 데이터 인프라를 사용하여 단일 쿼리 노드에서 실행됩니다. 쿼리는 분산 컴퓨팅, 인덱스 및 데이터 인프라를 사용하여 모든 분석 노드에서 실행됩니다.
기술 비교: 아키텍처
쿼리는 SMP 모드에서 실행되며, 새 쿼리 노드를 추가하여 처리량을 확장할 수 있습니다. MPP 모드에서 실행되는 쿼리는 새로운 분석 노드를 추가하여 더 큰 데이터를 처리하거나 쿼리 실행 시간을 단축할 수 있습니다.
기술 비교: 옵티마이저
기본적으로 중첩 루프 조인

쿼리 힌트를 통한 해시 조인

기본적으로 병렬 해시 조인이 사용됩니다,

(인덱스) 중첩 루프 조인 또는 쿼리 힌트를 통한 브로드캐스트 조인

기술 비교: 색인
글로벌 보조 인덱스 로컬 보조 인덱스(데이터 파티션과 함께 위치)
메모리 최적화 인덱스, 표준 보조 인덱스(플라즈마) 사용 로그 구조 병합 트리(LSM) 기반 보조 인덱스
보장 및 비보장 인덱스 스캔 모두 지원 커버되지 않는 인덱스 스캔
쿼리에 전체 텍스트 색인 사용 가능(6.5)
기술 비교: 실행
대부분의 쿼리는 한 번 준비되고 여러 번 실행됩니다. 임시 및 탐색 쿼리
SDK는 임시 플래그를 기반으로 준비-실행 모델을 사용합니다. SDK는 애드혹 및 매개변수화된 쿼리를 제공합니다.
대부분의 작업은 메모리에서 수행되며, 인덱스 스캔이 대용량 데이터를 반환할 때만 디스크 백필에 기록됩니다. 대용량 데이터(클러스터 메모리보다 큰)에 대한 제한 메모리 작업, 필요에 따라 부드럽게 스필링 가능
단일 노드 쿼리 병렬 처리 다중 노드 파티션 병렬 조인, 정렬, 집계 및 그룹화된 집계 연산자
단일(레이드 가능) 스토리지 장치 예상 여러 저장 장치의 RAID 없는 사용
인덱스 서비스 노드에서 스캔, 그룹화 및 집계 작업을 지원하는 인덱스 커버링을 통한 성능 격리 분석 서비스 노드에서 데이터 섀도잉을 통한 모든 쿼리의 성능 격리
기술 문서
https://docs.couchbase.com/server/6.0/n1ql/n1ql-language-reference/index.html https://docs.couchbase.com/server/6.0/analytics/introduction.html
기술 정보
https://www.couchbase.com/products/n1ql https://www.couchbase.com/sqlplusplus
기술 서적
https://www.couchbase.com/blog/a-guide-to-n1ql-features-in-couchbase-5-5-special-edition/ https://resources.couchbase.com/sql_tutorial

https://www.amazon.com/SQL-Users-Tutorial-Don-Chamberlin/dp/0692184503/

 

  1. [목표]: 목표: 지속적인 개선의 과정. https://www.amazon.com/Goal-Process-Ongoing-Improvement/dp/0884271951/ref=sr_1_1?keywords=the+goal&qid=1547969233&sr=8-1
  2. 고객 업무에 대한 참여 시스템: https://marketing.cioreview.com/cxoinsight/systems-of-engagement-for-customer-jobs-nid-24677-cid-51.html
  3. 이 글의 2부는 Even Pease의 글입니다: https://www.couchbase.com/blog/part-2-n1ql-to-query-or-to-analyze/
이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 케샤브 머시

케샤브 머시는 Couchbase R&D의 부사장입니다. 이전에는 MapR, IBM, Informix, Sybase에서 근무했으며 데이터베이스 설계 및 개발 분야에서 20년 이상의 경력을 쌓았습니다. IBM Informix에서 SQL 및 NoSQL R&D 팀을 이끌었습니다. Couchbase에서 두 번의 President's Club 상을, IBM에서 두 번의 우수 기술 업적상을 수상했습니다. 인도 마이소르 대학교에서 컴퓨터 과학 및 공학 학사 학위를 받았으며, 10개의 미국 특허를 보유하고 있고 3개의 미국 특허를 출원 중입니다.

댓글 남기기

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

구축 시작

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

카펠라 무료 사용

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

연락하기

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