애널리틱스 지원 이후 아마존 웹 서비스(AWS) 심플 스토리지 서비스(S3)용 외부 컬렉션 에서 카우치베이스 서버 6.6 릴리스카우치베이스는 다음에 대한 지원 및 일반 제공을 발표하게 되어 기쁘게 생각합니다. 외부 분석 컬렉션용 Azure Blob 저장소. 이를 통해 고객은 외부 소스(예: AWS S3 및 Azure Blob Storage)의 데이터를 로컬 데이터(Analytics 컬렉션) 및 원격 Couchbase 데이터와 결합할 수 있습니다(원격 분석 컬렉션).
고객 사용 사례
일부 고객은 저장소 비용을 절감하고 대량의 데이터(예: 다년간의 기록 데이터, 머신 러닝을 위한 오프라인 비즈니스 데이터, 제품 리뷰 등)를 저장하기 위해 Azure Blob Storage를 사용합니다. 비즈니스 사용자가 데이터 분석을 위해 이 데이터를 실시간으로 결합, 쿼리 및 활용하여 이 데이터를 사용할 수 있도록 하고 싶다는 의사를 표명했습니다. 기타 자세한 내용은 여기를 참조하세요. 분석 사용 사례.
외부 애널리틱스 컬렉션은 어떻게 작동하나요?
이 섹션은 이전에 AWS S3 분석 외부 데이터 세트 블로그. 이전에 S3를 사용하여 외부 Analytics 컬렉션을 사용해 본 적이 있다면 이 부분은 이미 익숙할 것입니다.
외부 분석 컬렉션은 외부 소스(예: AWS S3 및 Azure Blob Storage)에 있는 데이터를 동적으로 쿼리하고 분석하는 기능을 제공하여 사용자가 Couchbase 분석 노드 내부와 외부의 데이터를 실시간으로 쉽게 결합할 수 있도록 합니다. 이 작업은 간단한 세 단계로 이루어집니다:
-
- 를 사용하여 외부 링크를 설정합니다. REST API 호출, 명령줄 인터페이스(CLI)또는 카우치베이스 서버 워크벤치.
- 외부 링크에서 외부 애널리틱스 컬렉션을 만듭니다.
- 다음을 사용하여 애널리틱스 컬렉션을 쿼리합니다. 애널리틱스용 SQL++ (또는 카우치베이스 애널리틱스 Tableau 커넥터를 사용한 Tableau).
간단한 예를 들어보겠습니다. 전자상거래 회사인 iMaz는 온라인으로 소비재를 판매합니다. 주문, 제품 및 사용자 데이터는 데이터 및 분석 서비스(클러스터의 별도 노드 세트)가 모두 포함된 Couchbase 클러스터에 저장됩니다. 분석 서비스를 사용하여 임시 및 복잡한 쿼리를 실행하여 비즈니스를 분석합니다. iMaz는 또한 제품 리뷰를 Azure Blob Storage에 저장하며, Couchbase 분석 서비스를 사용하여 가장 높은 평가를 받은 상위 3개 제품을 결합하여 분석하고자 합니다.
샘플 제품 데이터:
1 2 3 4 5 6 7 8 9 |
[{ "id": "Product_1", "docType": "제품", "productId": 1, "가격": 811.76, "salePrice": 70.14, "제품명": "인체공학적 면봉", "desc": "플라스틱 융합 금속 인체공학적 코튼볼" }] |
샘플 리뷰 데이터:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
{ "id": "Review_0001764a17a844279a2227e137cc4e36", "docType": "검토", "reviewId": "0001764a17a844279a2227e137cc4e36", "productId": 1, "userId": 5862, "reviewerName": "M. 셰퍼", "리뷰어 이메일": "...@mmail.com", "rating": 5, "title": "잘 작동하고 기대에 부응합니다.", "review": "제품이 훌륭해서 대가족을 위해 하나 더 구매할 예정입니다.", "reviewDate": 1597273484 } |
위의 세 단계 각각을 샘플 설정 코드와 함께 살펴 보겠습니다. SQL++ 쿼리를 입력하세요. 여기 데모 동영상도 있습니다:
1단계: 링크 설정
다음을 사용하여 Azure Blob Storage 링크를 만듭니다. REST API 호출 를 사용하거나 카우치베이스 서버 워크벤치. 제공해야 합니다:
-
- 애널리틱스 서비스 호스트 이름
- 애널리틱스 사용자 자격 증명
- Azure Blob 저장소 링크 이름(이 경우) myAzureLink
- 범위 이름(이전에는 데이터버스라고 함), 이 경우 기본값
- 링크 유형(AzureBlob)
- 자격증명(하나만 허용됨):
- 익명(자격 증명 없음)
- 공유 키 또는
- 공유 액세스 서명 또는
- 관리되는 ID ID 또는
- Azure Active Directory 클라이언트 암호 또는
- Azure Active Directory 클라이언트 인증서(및 암호로 보호된 경우 클라이언트 인증서 암호)
1 2 3 4 5 6 |
curl -u <사용자 이름>:<pwd> \ -X POST "http:///분석/링크/Default/myAzureLink" \ -d 유형=AzureBlob \ -d 엔드포인트=https://.blob.core.windows.net/ \. -d 계정 이름=... \ -d 계정 키=... |
아래는 카우치베이스 서버 워크벤치에서 공유 키 인증 방법을 사용하여 AzureBlob 링크를 만드는 방법에 대한 스냅샷입니다:
Azure Blob 지원 인증 방법에 대한 자세한 내용은 다음을 확인하세요. Azure 블롭 링크.
2단계: 외부 애널리틱스 컬렉션 만들기
외부 링크가 생성된 후에는 이전에 생성된 링크 이름을 참조하는 DDL 문을 사용하여 외부 Analytics 컬렉션을 만들 수 있습니다. 다음은 이전에 만든 Azure Blob Storage 링크에 Analytics 컬렉션을 만들기 위한 DDL 문입니다:
1 2 3 4 5 |
만들기 외부 분석 컬렉션 azure제품 리뷰 켜기 `cb-분석-7-0-0-데모` AT myAzureLink 사용 "리뷰" WITH { "format": "json", "포함": "*.json" } ; |
위의 설정은 다음을 반영합니다:
-
- azure제품 리뷰는 애널리틱스 외부 컬렉션의 이름입니다.
- cb-analytics-7-0-0-demo는 Analytics 외부 컬렉션이 읽고 있는 Azure Blob 컨테이너의 이름입니다.
- myAzureLink는 외부 컬렉션이 생성되는 링크의 이름입니다(이전 단계에서 생성됨).
- 리뷰는 데이터를 읽는 데 사용되는 접두사입니다. 따라서 리뷰 접두사를 읽습니다.
- 형식는 읽는 데이터의 유형이 다음과 같음을 알려주는 속성입니다. json.
- 포함 (또는 제외): 파일에 필터를 적용하여 필터 조건을 충족하는 파일 이름만 포함되도록 Analytics에 지시하는 속성입니다,
위에 표시된 것처럼 링크가 생성된 후에는 링크 유형에 관계없이 외부 Analytics 컬렉션을 만들 수 있습니다. 동일한 외부 링크에 서로 다른 외부 데이터 컨테이너를 가리키도록 여러 Analytics 컬렉션을 만들 수 있습니다.
현재 외부 애널리틱스 수집 기능은 다음을 지원합니다. JSON, CSV (쉼표로 구분된 값) 및 TSV (탭으로 구분된 값) 파일 형식을 포함하여 압축된 GZIP 파일(.gz 또는 .gzip으로 끝나는 파일 이름)을 사용할 수 있습니다. CSV 및 TSV 형식 모두 인라인 유형 정의를 지정해야 합니다(자세한 내용은 아래 참조). 향후 릴리스에서는 parquet과 같은 추가 파일 형식이 지원될 예정입니다.
인라인 유형 정의에 대한 자세한 내용은 다음을 참조하세요. 여기.
3단계: SQL++를 사용한 쿼리
마지막 단계로, 이제 아래 나열된 SQL++ 쿼리를 실행할 수 있습니다. 이 쿼리는 Couchbase 분석 서비스의 기존 제품 분석 컬렉션과 Azure Blob Storage의 제품 리뷰 데이터를 결합하여 가장 높은 평가를 받은 상위 3개 제품을 검색합니다.
1 2 3 4 5 6 |
선택 p.제품 이름, AVG(s.평가) AS `평가` FROM azure제품 리뷰 s, 제품 p 어디 s.productId = p.productId 그룹 BY p.제품 이름 주문 BY AVG(s.평가) DESC LIMIT 3; |
다음은 JSON 쿼리 결과:
1 2 3 4 5 |
[ { "등급": 4.33, "제품명": "라이선스 고무 참치"}, { "등급": 4.29, "제품명": "화려한 플라스틱 샐러드"}, { "등급": 3.86, "제품명": "지능형 코튼 자전거"} ] |
이제 Couchbase 분석 서비스를 사용하여 Azure Blob Storage에 있는 외부 데이터를 결합하고 분석할 수 있게 되었습니다. 데이터를 분석하는 데 걸리는 단계가 얼마나 적은지 보세요; ETL이 관여하지 않음 데이터를 즉시 사용할 수 있었습니다! 또한 쿼리 실행 시 필요에 따라 외부 데이터에 액세스하기 때문에 데이터가 변경되면 쿼리를 다시 실행할 때 변경 사항을 확인할 수 있습니다.
이제 "Azure Blob Storage 리뷰 파일 형식이 JSON이 아닌 CSV 형식이었다면 어떻게 작동했을까요?"라고 궁금해하실 수 있습니다. 대답은 간단합니다. 그에 따라 외부 Analytics 컬렉션을 정의했을 것입니다. 아래는 위의 외부 Analytics 컬렉션 만들기 문이 CSV를 지원하는 모습을 보여줍니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
만들기 외부 분석 컬렉션 azure제품 리뷰 ( id 문자열 NOT 알 수 없음, 문서 유형 문자열 NOT 알 수 없음, reviewId 문자열 NOT 알 수 없음, productId BIGINT, userId BIGINT, 리뷰어 이름 문자열 NOT 알 수 없음, 리뷰어이메일 문자열 NOT 알 수 없음, 평가 BIGINT, title 문자열 NOT 알 수 없음, 리뷰 문자열 NOT 알 수 없음, 리뷰 날짜 BIGINT ) 켜기 `cb-분석-7.0.0-데모` AT myAzureLink 사용 "리뷰" WITH { "format": "csv", "포함": "*.csv", "header": false }; |
이제 create 문에 인라인 유형 정보가 포함되는 것을 확인할 수 있습니다. 이 유형은 내부적으로 JSON 형식으로 변환하기 위해 CSV 데이터를 해석하는 방법(예: 문자열이 아닌)을 Analytics에 알려주는 데 필요합니다.
SQL++ 쿼리는 완전히 동일하게 유지됩니다. 맞습니다. 전혀 변경 없음! SQL++ 언어의 강력한 기능 덕분에 외부 분석 컬렉션은 설정이 쉽고, 유연하며, 사용이 간편합니다. 사용자는 대화형 데이터 탐색을 위한 복잡한 임시 쿼리를 개발하고, 새로운 비즈니스 질문에 답하고, 외부 데이터를 다음에서 가져온 데이터와 결합할 수 있습니다. 원격 링크 를 사용하여 다른 Couchbase 데이터 소스도 포함할 수 있습니다.
혜택
다음은 외부 애널리틱스 컬렉션을 사용할 때 얻을 수 있는 몇 가지 주요 이점입니다:
-
- 데이터 강화. 이제 외부 데이터 저장소에 있는 데이터에서 얻은 추가 정보로 카우치베이스 데이터를 보강할 수 있습니다.
- 동적 데이터 액세스. Analytics 쿼리를 실행하는 동안 모든 지역의 모든 S3 또는 Azure Blob 저장소(DP) 컨테이너에서 최신 데이터를 동적으로 검색, 스트리밍, 결합 및 분석할 수 있습니다.
- 병렬 쿼리 처리. 사용자는 외부 데이터와 관련된 쿼리에 빠르게 응답할 수 있도록 Analytics의 대규모 병렬 처리(MPP) 쿼리 처리 아키텍처를 사용하여 외부 데이터에 대한 액세스를 구성하고 정렬할 수 있습니다.
다음 단계
Couchbase Analytics 7.1의 이 새로운 기능이 마음에 드시길 바랍니다. 외부 분석 컬렉션은 외부 데이터 저장소에 있는 외부 라이브 및 아카이브 데이터의 가치를 활용합니다. 사용자는 AWS S3, Azure Blob Storage 및 Couchbase Analytics Service에서 가져온 데이터를 실시간으로 결합하고 분석할 수 있습니다. 이를 통해 더 빠르고 포괄적인 데이터 분석과 민첩한 의사결정이 가능해집니다.
외부 Analytics 컬렉션 DDL에 대해 자세히 알아보세요.
다음은 시작하는 데 도움이 되는 더 많은 리소스입니다:
-
- 다음을 통해 여러분의 피드백을 기다리겠습니다. 카우치베이스 포럼.
- Azure Blob 저장소를 사용하여 외부 링크를 관리합니다.
- Couchbase 7.1의 새로운 기능.
- Couchbase 다운로드
감사
이 게시물은 다음과 공동 작성되었습니다. 이드리스 모티왈라. Idris는 디지털 혁신, 클라우드 및 분석 분야의 팀을 이끄는 Fortune 500대 기업과 스타트업에서 소프트웨어 제품의 설계, 개발 및 실행 분야에서 20년 이상의 경력을 쌓은 Couchbase의 분석 부문 수석 제품 관리자입니다. Idris는 기술 관리 석사 학위와 제품 관리 자격증을 보유하고 있습니다.