카우치베이스 애널리틱스

카우치베이스 애널리틱스의 사용자 정의 함수에 대한 가이드

사용자 정의 함수는 데이터를 쿼리하고 분석할 때 사용자가 직접 운전석에 앉을 수 있습니다.

Couchbase 에코시스템에서 사용자 정의 함수(UDF)는 재사용이 가능하고 매개변수화가 가능합니다. SQL++ 쿼리 를 사용하면 쿼리를 모듈화하고 코드 재사용을 늘리는 동시에 특정 쿼리가 비즈니스 로직과 상호 작용하는 방식을 더 잘 제어할 수 있습니다.

즉, 다음과 같은 사실을 발표하게 되어 기쁩니다. 카우치베이스 서버 7.0 릴리즈 에서 사용자 정의 함수(UDF)를 지원합니다. 분석 서비스.

어제 블로그 게시물에서 다음 내용을 확인하세요. SQL++ 쿼리 언어의 사용자 정의 함수에 대한 자세한 정보.

사용자 정의 함수 101

카우치베이스 애널리틱스 내에서 사용자 정의 함수는 두 부분으로 나뉩니다:

  1. 함수 서명: 서명은 함수 이름과 해당 매개변수 수로 구성됩니다. 함수는 0개, 하나 또는 그 이상의 매개변수를 받습니다. 각 함수는 데이터버스 (또는 7.0 용어로는 범위)를 사용하며 해당 데이터버스 내에서 고유한 서명을 가져야 합니다. 즉, 동일한 데이터버스 내에서 이름은 같지만 매개변수 수가 다른 두 개의 함수를 만들 수 있습니다. 함수 서명이 고유(이름 + 매개변수 수)하므로 허용됩니다.
  2. 함수 본문: 함수 본문은 표현식 또는 하위 쿼리일 수 있으며 기존 쿼리를 참조할 수 있습니다. 데이터 세트 또는 동일한 데이터버스 내 또는 다른 데이터버스에 있는 다른 함수로 이동합니다.

다음은 함수 서명을 보여주는 두 가지 예시입니다. my_dataverse.GetOrders(...) - 와 함수 본문(아래 중괄호 사이의 모든 것):

만약 분석 기능 만들기 문에 데이터버스 이름이 지정되지 않은 경우 함수는 활성 데이터버스 내에서 생성됩니다. 데이터버스를 지정하지 않으면 함수는 '기본' 데이터버스에서 생성됩니다.

데이터버스는 다음을 통해 제공할 수 있습니다. USE <> 문을 사용하거나 쿼리에서 쿼리_컨텍스트 REST API 매개변수입니다.

배경 카우치베이스 분석의 범위 및 컬렉션

Couchbase Analytics UDF의 전체 수명 주기를 보여드리기 전에 먼저 몇 가지 중요한 컨텍스트에 대해 알아보겠습니다.

아래 다이어그램 A는 여행 업체에서 항공 및 호텔 예약을 관리하는 데 사용할 수 있는 샘플 데이터를 나타냅니다.

An architecture diagram of how Couchbase Analytics parallel the Bucket, Scopes and Collections of the Data Service

다이어그램 A

이 아키텍처에는 다음과 같은 이름의 버킷이 있습니다. 여행 (관계형 데이터베이스의 데이터베이스와 유사)라는 범위가 포함되어 있습니다. 인벤토리 (RDBMS의 스키마와 유사), 네 개의 컬렉션이 있습니다. 항공사, 공항, 호텔 그리고 경로 (RDBMS의 테이블과 유사). 이러한 각 컬렉션에 해당하는 4개의 분석 컬렉션(데이터 집합이라고도 함)이 있으며, 이러한 컬렉션은 다음과 같이 travel.inventory 범위(일명 데이터버스).

카우치베이스 애널리틱스를 사용한 UDF 예시

이 예제에서는 데이터 분석 팀에서 특정 국가 내에서 가장 많은 노선을 운항하는 항공사와 백분위 순위를 자주 쿼리해야 한다고 가정해 보겠습니다.

복잡한 쿼리를 완료할 때 UDF가 팀을 지원하는 방법은 다음과 같습니다.

UDF를 관리하는 방법

첫 번째 단계는 다음과 같이 지정된 분석 범위(또는 데이터버스)에서 사용자 정의 함수를 만드는 것입니다. travel.inventory.

다음은 쿼리를 더 간결하게 만드는 UDF를 만들기 위한 DDL(데이터 정의 언어) 문입니다:

위의 UDF는 매개 변수 in_country 를 국가 이름 입력으로 설정하고 쿼리의 필터로 사용합니다. 그런 다음 쿼리는 쿼리에서 항공사 그리고 경로 수집하고 각 항공사별로 집계를 수행합니다:

  1. 항공사 노선 수 계산
  2. 를 사용하여 경로 수의 백분위수 순위를 계산합니다. PERCENT_RANK 함수를 사용하여 OVER 절을 사용합니다.

( OVER 절은 현재 행을 기준으로 특정 행 집합을 검색하고 id 필드에 입력합니다. 이 블로그 게시물에서 창 기능에 대해 자세히 알아보세요..)

UDF를 평가하는 방법

이제 새로운 UDF를 사용해 보겠습니다.

다음 쿼리는 지정된 국가(이 예에서는 "미국")에 대한 상위 3개 항공사를 결정합니다.

이 쿼리를 평가한 결과, 가장 많은 노선을 운항하는 상위 3개 항공사의 백분위 순위와 함께 해당 항공사가 표시됩니다:

UDF를 삭제하는 방법

UDF가 더 이상 필요하지 않게 되면 아래의 DDL 문을 사용하여 삭제할 수 있습니다:

쉽죠?

결론

재사용 가능한 사용자 정의 함수는 코드를 간소화하고 모듈화하는 동시에 시스템에 더 많은 유연성을 제공하는 데 도움이 됩니다. 이 새로운 UDF 기능이 카우치베이스 애널리틱스 작업에 유용하게 사용되기를 바랍니다.

새로운 UDF 기능이 마음에 드시는지, 어떻게 사용하고 계신지 여러분의 생각과 의견을 아래에서 듣고 싶습니다. 또는 카우치베이스 포럼. 여러분의 의견을 기다리겠습니다.

카우치베이스 애널리틱스로 나만의 UDF를 만들어 보세요:
지금 바로 Couchbase 7 체험하기

 

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

작성자

게시자 이드리스 모티왈라

Idris는 디지털 혁신, 클라우드 및 분석 분야의 팀을 이끄는 Fortune 500대 기업과 스타트업에서 소프트웨어 제품의 설계, 개발 및 실행 분야에서 20년 이상의 경력을 쌓은 Couchbase의 분석 부문 수석 제품 관리자입니다. Idris는 기술 관리 석사 학위와 제품 관리 자격증을 보유하고 있습니다.

댓글 남기기

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

구축 시작

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

카펠라 무료 사용

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

연락하기

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