이제 Couchbase Analytics를 사용하여 더 많은 엔터프라이즈 데이터를 분석할 수 있습니다. - 바이트 단위로 이동하거나 마이그레이션하지 않아도 됩니다.
오늘부터 다음 사항에 대한 지원을 발표하게 되어 기쁩니다. 외부 분석 컬렉션용 Microsoft Azure Blob 저장소 (현재 개발자 프리뷰 중). 이 소식은 다음에 대한 지원을 따릅니다. 아마존 웹 서비스 심플 스토리지 서비스(AWS S3)용 외부 분석 컬렉션 를 추가했습니다.
간단히 말해, 이번 발표는 더 많은 Couchbase 고객이 외부 소스(예: Azure Blob Storage 및 AWS S3)의 데이터를 로컬 데이터와 결합할 수 있다는 의미입니다(카우치베이스 애널리틱스)뿐만 아니라 원격 카우치베이스 데이터(즉,, 원격 분석 컬렉션).
(참고: 이 주제는 다음 문서에서도 유사하게 다루었습니다. 외부 데이터 집합: Couchbase 분석에서 AWS S3에 액세스하기. 이전에 외부 분석 컬렉션을 사용한 적이 있는 경우 다음에서 다루는 개념은 이 기사가 익숙할 것입니다.)
외부 애널리틱스 컬렉션을 사용하는 이유는 무엇인가요?
일부 카우치베이스 고객은 대량의 데이터(예: 다년간의 기록 데이터, 머신 러닝을 위한 오프라인 비즈니스 데이터, 제품 리뷰 등)에 대한 스토리지 비용을 줄이기 위해 Azure Blob Storage를 사용합니다.
이러한 고객은 비즈니스 사용자 및 데이터 분석을 위해 Azure Blob Storage의 데이터를 실시간으로 결합, 쿼리 및 활용하고자 합니다. (자세히 알아보기 이 기사에서 다른 고객들의 카우치베이스 애널리틱스 사용 방법 알아보기.)
이 데이터를 저비용 스토리지에 보관하면서 데이터 분석에 계속 사용하기 위해 Couchbase 고객은 외부 분석 컬렉션을 사용할 수 있습니다.
외부 분석 컬렉션의 작동 방식
외부 분석 컬렉션을 사용하면 외부 소스(예: AWS S3 및 Azure Blob Storage)에 있는 데이터를 동적으로 쿼리하고 분석할 수 있으므로 Couchbase 분석 노드 내부와 외부의 데이터를 실시간으로 쉽게 결합할 수 있습니다.
내부 및 외부 데이터 집합을 결합하는 데 필요한 것은 간단한 세 단계뿐입니다:
- 를 사용하여 외부 링크를 설정합니다. REST API 호출 또는 명령줄 인터페이스(CLI).
- 외부 링크에서 외부 애널리틱스 컬렉션을 만듭니다.
- 다음을 사용하여 애널리틱스 컬렉션을 쿼리합니다. 애널리틱스용 N1QL (또는 선호하는 BI 도구)
.
간단한 예를 들어 보겠습니다.
전자상거래 회사인 iMaz는 온라인으로 소비재를 판매합니다. 주문, 제품 및 사용자 데이터는 데이터 및 분석 서비스(클러스터의 별도 노드 집합)를 모두 사용하여 Couchbase 클러스터에 저장됩니다. iMaz는 분석 서비스를 사용하여 비즈니스 분석을 위해 애드혹 및 복잡한 쿼리를 실행합니다. 제품 리뷰를 Azure Blob Storage에 저장하고, 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 } |
이제 샘플 설정 코드와 함께 위의 세 단계를 각각 살펴보겠습니다. N1QL 를 사용하여 애널리틱스 쿼리를 작성합니다.
1단계: 링크 설정
먼저, 다음을 사용하여 Azure Blob Storage 링크를 만들어야 합니다. REST API 호출. (또는 CLI를 사용하여 Azure Blob Storage 링크 만들기.)
제공해야 합니다:
- 카우치베이스 애널리틱스 서비스 호스트 이름
- 애널리틱스 사용자 자격 증명
- Azure Blob 저장소 링크 이름입니다. 아래 예에서는 다음을 사용하겠습니다:
myAzureLink
- 범위 이름(이전에는 데이터버스라고 함). 아래 예제에서는 다음을 사용합니다:
기본값
- 링크 유형(
AzureBlob
) - 자격증명(다음 중 하나만 허용됨):
- 연결 문자열입니다, 또는
- 계정 이름 및 계정 키, 또는
- 계정 이름 및 공유 액세스 서명
모두 합쳐서 Azure Blob Storage 링크를 만들면 다음과 같은 모양이 됩니다:
1 2 3 4 5 |
curl -u : \ -X POST "http:///analytics/link/Default/myAzureLink" \ -d 유형=AzureBlob \ -d 계정 이름=... \ -d 계정 키=... |
참고: 자격 증명 없이 Azure Blob Storage 링크를 만든 다음 익명 인증을 사용할 수도 있습니다. 이 경우 계정 이름
그리고 계정 키
는 필요하지 않습니다. 이 접근 방식은 공개 데이터에 액세스하는 데 사용할 수 있습니다.
2단계: 외부 애널리틱스 컬렉션 만들기
외부 링크를 만든 후에는 이전에 만든 링크 이름을 참조하는 DDL(데이터 정의 언어) 문을 사용하여 외부 Analytics 컬렉션을 만들 수 있습니다.
아래 코드 샘플은 이전에 만든 Azure Blob 저장소 링크에 Analytics 컬렉션을 만들기 위한 DDL 문입니다. (cb-analytics-7-0-0-demo
은 Azure Blob Storage의 컨테이너 이름입니다.)
1 2 3 4 5 |
만들기 외부 분석 컬렉션 azure제품 리뷰 켜기 `cb-분석-7-0-0-데모` AT myAzureLink 사용 "리뷰" WITH { "format": "json", "포함": "*.json" } ; |
위에 표시된 것처럼 외부 애널리틱스 컬렉션의 생성은 링크를 만든 후 링크 유형과 무관합니다. 동일한 외부 링크에 여러 분석 컬렉션을 생성하여 서로 다른 외부 데이터 컨테이너를 가리킬 수 있습니다.
현재 외부 애널리틱스 수집 기능은 다음을 지원합니다. JSON
, CSV
(쉼표로 구분된 값) 및 TSV
(탭으로 구분된 값) 파일 형식, 압축된 gzip 파일(.gz 또는 .gzip으로 끝나는 파일 이름)을 포함합니다. CSV 및 TSV 형식 모두 인라인 유형 정의를 지정해야 합니다(자세한 내용은 아래 참조). 추가 파일 형식은 향후 릴리즈의 Couchbase Analytics에서 지원될 예정입니다.
Couchbase 문서에서 인라인 유형 정의에 대해 자세히 알아보기.
3단계: 애널리틱스용 N1QL을 사용하여 쿼리하기
마지막 단계는 아래 표시된 N1QL 쿼리를 실행하는 것입니다(SQL과 비슷해 보이지 않나요? :)).
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; |
위의 N1QL 쿼리는 Couchbase 분석 서비스의 기존 제품 분석 컬렉션을 Azure Blob Storage의 제품 리뷰 데이터와 결합하여 가장 높은 평가를 받은 상위 3개 제품을 검색합니다.
다음은 위의 JSON 쿼리 결과입니다:
1 2 3 4 5 |
[ { "등급": 4.33, "제품명": "라이선스 고무 참치"}, { "등급": 4.29, "제품명": "화려한 플라스틱 샐러드"}, { "등급": 3.86, "제품명": "지능형 코튼 자전거"} ] |
이제 Couchbase 분석 서비스를 사용하여 Azure Blob Storage에 있는 외부 데이터를 결합하고 분석할 수 있습니다. 데이터를 분석하는 데 걸리는 단계가 얼마나 적은지 주목하세요. ETL이 필요 없고 데이터를 즉시 사용할 수 있습니다(!). 또한 데이터가 변경되면 쿼리를 다시 실행할 때마다 변경 사항이 업데이트되는 것을 볼 수 있습니다. 쿼리 실행 시점에 필요에 따라 외부 데이터에 액세스하기 때문입니다.
물론 파일 형식이 JSON이 아닌 CSV였다면 어땠을까요?
답은 간단합니다: 외부 애널리틱스 컬렉션을 적절히 정의하기만 하면 됩니다. 아래 샘플 N1QL 문은 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 }; |
어떻게 만들기
문에는 이제 인라인 유형 정보가 포함됩니다. 이 유형 정보는 카우치베이스 애널리틱스가 CSV 데이터를 해석하여 JSON 데이터로 변환하는 방법(예: 문자열이 아닌)을 알려줍니다.
하지만 사용 여부에 관계없이 JSON 또는 CSV 데이터, N1QL 쿼리는 완전히 동일하게 유지됩니다..
외부 애널리틱스 컬렉션의 이점
다음은 외부 애널리틱스 컬렉션을 사용할 때 얻을 수 있는 몇 가지 주요 이점입니다:
- 데이터 강화: 이제 카우치베이스 데이터는 Microsoft Azure 블로그 저장소와 같은 외부 데이터 저장소에 있는 데이터에서 얻은 추가 정보로 보강할 수 있습니다.
- 동적 데이터 액세스: 모든 지역의 모든 S3 또는 Azure Blob Storage(DP) 컨테이너에서 최신 데이터를 동적으로 검색, 스트리밍, 결합 및 분석할 수 있습니다. 데이터는 Analytics 쿼리 실행 중에 검색됩니다.
- 병렬 쿼리 처리: 외부 데이터와 관련된 쿼리에 빠르게 응답할 수 있도록 Analytics의 MPP(대규모 병렬 처리) 아키텍처를 사용하여 외부 데이터에 대한 액세스를 구성하고 정렬할 수 있습니다.
결론
외부 분석 컬렉션은 외부 데이터 저장소에 있는 라이브 데이터와 아카이브된 데이터의 가치를 활용합니다. 또한 N1QL 쿼리 언어의 강력한 기능 덕분에 설정이 쉽고 유연하며 사용이 간편합니다.
이제 사용자와 데이터 분석가는 AWS S3, Azure Blob Storage 및 Couchbase 분석 서비스에서 실시간으로 소싱된 데이터를 결합하고 분석할 수 있습니다. 외부 분석 컬렉션을 사용하면 대화형 데이터 탐색을 위한 복잡한 임시 쿼리를 개발하고, 새로운 비즈니스 질문에 답하고, 다음과 같은 작업을 수행할 수 있습니다. 원격 링크의 외부 데이터 결합 를 사용하여 다른 Couchbase 데이터 소스도 포함할 수 있습니다.
결론: 팀은 더욱 민첩한 의사 결정을 위해 더 빠르고 포괄적인 데이터 분석을 수행합니다.
Couchbase 7.0의 외부 분석 컬렉션에 대해 자세히 알아보려면 다음 리소스를 확인하세요:
Couchbase 7.0 시작하기