외부 데이터 세트 소개
Couchbase는 새로운 "외부 데이터 세트"를 발표하게 되어 매우 기쁘게 생각합니다. 분석 서비스 기능의 최신 카우치베이스 서버 6.6 릴리스. 외부 데이터 집합을 통해 고객은 Amazon Web Services(AWS) Simple Storage Service(S3)에서 외부에 저장된 데이터에 실시간으로 액세스하고 S3 상주 데이터를 기존 Couchbase 데이터와 결합하여 분석할 수 있습니다.
고객 사용 사례
일부 고객은 스토리지 비용을 절감하고 데이터(예: 다년간의 과거 데이터, 머신 러닝을 위한 오프라인 비즈니스 데이터, 제품 리뷰 등)를 저장하기 위해 AWS S3를 사용합니다. 이들은 실시간으로 S3 데이터를 결합, 쿼리 및 활용하여 비즈니스 사용자가 이 데이터를 분석에 사용할 수 있도록 하고자 합니다. 다른 애널리틱스 사용 사례에 대해 자세히 알아볼 수 있습니다. 여기.
외부 데이터 세트는 어떻게 작동하나요?
외부 데이터 세트는 AWS S3에 있는 데이터를 동적으로 쿼리하고 분석할 수 있는 기능을 제공하여 사용자가 Couchbase 분석 노드 내부와 외부의 데이터를 실시간으로 쉽게 결합할 수 있게 해줍니다. 이는 간단한 세 단계로 이루어집니다:
- 다음을 사용하여 S3 링크를 설정합니다. REST API 호출 또는 명령줄 인터페이스(CLI)
- S3 링크에서 외부 데이터 세트 만들기
- 다음을 사용하여 데이터 집합을 쿼리합니다. SQL++ (또는 선호하는 BI 도구)
간단한 예를 들어보겠습니다. 이커머스 회사인 iMaz는 온라인으로 소비재를 판매합니다. 주문, 제품, 사용자 데이터는 데이터와 분석 서비스(클러스터의 별도 노드 세트)가 모두 포함된 Couchbase 클러스터에 저장됩니다. 분석 서비스를 사용해 임시 쿼리와 복잡한 쿼리를 실행하여 비즈니스를 분석합니다. 또한 iMaz는 제품 리뷰를 AWS S3에 저장하며, Couchbase 분석 서비스를 사용해 가장 높은 평가를 받은 상위 3개 제품을 결합하여 분석하고자 합니다.
샘플 제품 데이터:
|
1 2 3 4 5 6 7 8 9 10 11 |
[ { "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단계: S3 링크 설정
다음을 사용하여 S3 링크를 생성합니다. REST API 호출. (또는 S3 링크 생성을 위한 CLI.). 제공해야 합니다:
- 애널리틱스 서비스 호스트 이름
- 애널리틱스 사용자 자격 증명
- S3 링크 이름(이 경우 myS3Link)
- 데이터버스 이름(기본값과 다른 경우)
- 링크 유형(S3)
- AWS S3 필수 액세스 키 ID
- AWS S3 필수 비밀 액세스 키
- AWS S3 필수 지역(예: us-west-2)
|
1 2 3 4 5 6 7 8 |
curl -u <사용자 이름>:<pwd> -X POST "http:///분석/링크" -d 데이터버스=기본값 -d 이름=myS3Link -d 유형=S3 -d accessKeyId=... -d 비밀 액세스 키=... -d 지역=우리-west-2 |
2단계: 외부 데이터 집합 만들기
이제 애널리틱스 워크벤치를 사용하여 "S3productreviews"라는 외부 데이터 집합을 만들겠습니다. 지정해야 합니다:
- S3 버킷 이름
- 데이터버스 이름(기본값과 다른 경우) 및 S3 버킷 이름(이 경우 cb-analytics-6.6-demo)
- 파일을 읽고 재귀적으로 수집할 버킷 내부의 디렉토리 위치(선택 사항)(이 경우 제품 리뷰는 '리뷰' 폴더에 저장됨)
- 검색 패턴을 지정할 수 있는 파일 형식(이 경우 JSON을 사용하겠습니다)(이 경우 *.json은 데이터를 쿼리할 때 모든 JSON 파일이 포함됨을 나타냅니다).
|
1 2 3 4 5 |
만들기 외부 데이터 세트 S3제품 리뷰 켜기 cb-분석-6.6-데모 AT myS3Link 사용 "리뷰" WITH { "format": "json", "포함": "*.json" } ; |
현재 외부 데이터 세트 기능은 다음을 지원합니다. json, csv (쉼표로 구분된 값) 및 tsv (탭으로 구분된 값) 파일 형식(.gz 또는 .gzip으로 끝나는 파일 이름 포함)을 지원합니다. csv 및 tsv 형식은 모두 인라인 형식 정의를 지정해야 합니다(이에 대해서는 곧 자세히 설명합니다). 추가 파일 형식은 향후 릴리스에서 지원될 예정입니다. 이에 대한 자세한 내용은 여기에서 확인할 수 있습니다.
3단계: SQL++를 사용한 쿼리
마지막 단계로, 이제 아래 나열된 SQL++ 쿼리를 실행할 수 있습니다(SQL :)). 이 쿼리는 Couchbase 분석 서비스의 기존 제품 데이터 세트와 AWS S3의 제품 리뷰 데이터를 결합하여 높은 평가를 받은 상위 3개 제품을 가져옵니다.
|
1 2 3 4 5 6 7 8 |
선택 p.제품 이름, AVG(s.평가) AS '평가' FROM S3제품 리뷰 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 분석 서비스에서 AWS S3에 있는 외부 데이터를 결합하고 분석할 수 있게 되었습니다. 데이터를 분석하는 데 걸리는 단계가 얼마나 적은지, ETL이 필요하지 않았고 데이터를 즉시 사용할 수 있었습니다!
이제 궁금하실 겁니다: 만약 S3 리뷰 파일 형식이 JSON이 아닌 csv 형식이었다면 어떻게 작동했을까요? 대답은 간단합니다. 단순히 그에 따라 외부 데이터세트를 구성했을 것입니다. 아래는 위에서 작성한 외부 데이터 세트 생성 문이 csv를 지원할 때 어떤 모습일지 보여줍니다:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
만들기 외부 데이터 세트 S3제품 리뷰 ( id 문자열 NOT 알 수 없음, 문서 유형 문자열 NOT 알 수 없음, reviewId 문자열 NOT 알 수 없음, productId BIGINT, userId BIGINT, 리뷰어 이름 문자열 NOT 알 수 없음, 리뷰어이메일 문자열 NOT 알 수 없음, 평가 BIGINT, title 문자열 NOT 알 수 없음, 리뷰 문자열 NOT 알 수 없음, 리뷰 날짜 BIGINT ) 켜기 `cb-분석-6.6-데모` AT myS3link 사용 "리뷰" WITH { "format": "csv", "포함": "*.csv", "header": false }; |
이제 create 문에 인라인 유형 정보가 포함되는 것을 확인할 수 있습니다. 이는 Analytics에 csv 데이터를 해석하는 방법(예: 문자열이 아닌)을 알려주는 데 필요합니다.
SQL++ 쿼리는 완전히 동일하게 유지됩니다. 네, 전혀 변함이 없습니다! SQL++ 언어의 강력한 기능 덕분에 외부 데이터 집합은 설정이 쉽고, 유연하며, 사용이 간편합니다. 사용자는 추가 데이터 탐색을 위한 복잡한 임시 쿼리를 개발하고, 새로운 비즈니스 질문에 답하고, 외부 데이터를 다음에서 가져온 데이터와 결합할 수 있습니다. 원격 링크 를 사용하여 다른 Couchbase 데이터 소스도 가져올 수 있습니다.
혜택
외부 데이터세트를 사용할 때 얻을 수 있는 주요 이점은 다음과 같습니다:
- 데이터 보강. 이제 기업의 기존 S3 기반 데이터 레이크에 있는 파일에서 얻은 추가 정보로 카우치베이스 데이터를 보강할 수 있습니다.
- 동적 데이터 액세스. Analytics 쿼리를 실행하는 동안 모든 AWS 지역의 모든 S3 버킷에서 최신 데이터를 동적으로 검색, 스트리밍, 결합 및 분석할 수 있습니다.
- 병렬 쿼리 처리. 사용자는 외부 데이터와 관련된 쿼리에 빠르게 응답할 수 있도록 Analytics의 MPP(대규모 병렬 처리) 쿼리 처리 아키텍처를 사용하여 S3 데이터에 대한 액세스를 구성하고 정렬할 수 있습니다.
요약
외부 데이터 세트는 S3 기반 데이터 레이크에 있는 외부 라이브 및 아카이브 데이터의 가치를 활용합니다. 사용자는 AWS S3와 Couchbase 분석 서비스 모두에서 소싱한 데이터를 실시간으로 결합하고 분석할 수 있습니다. 이를 통해 더 빠르고 포괄적인 데이터 분석과 민첩한 의사결정이 가능해집니다.
리소스
외부 데이터 집합 문에 대해 자세히 알아볼 수 있습니다. 여기. 등록 여기 예정된 "Couchbase Server 릴리스 6.6의 새로운 기능" 웨비나에 대해 자세히 알아보세요.
Couchbase Server 6.6 리소스 살펴보기
|
블로그 |
문서 및 튜토리얼 |
웹페이지 및 웹 세미나 |
이 게시물을 공동 집필해 주신 Till Westmann과 이 게시물을 검토하고 귀중한 기여를 해주신 Michael Carey에게 감사드립니다.

공동 저자
틸 웨스트만, Couchbase의 엔지니어링 디렉터
Till Westmann은 Couchbase의 엔지니어링 디렉터로 분석 서비스를 담당하고 있습니다. Couchbase에 입사하기 전에는 Oracle, 28msec, SAP, BEA Systems, XQRL, Xyleme에서 데이터 관리 소프트웨어를 구축했습니다. 그는 Apache Software Foundation의 회원이자 Apache AsterixDB 프로젝트의 부사장을 맡고 있습니다. 독일 만하임 대학교에서 박사 학위를 받았습니다.
이것은 혁신적인 기능입니다! 정말 마음에 들어요!!!