참고: 이 게시물은 5.5 미리보기 릴리스 버전의 Couchbase Analytics 데이터 정의 언어(DDL)를 사용합니다. 최신 버전의 업데이트 및 호환성 깨짐(breaking changes)에 대한 정보는 다음을 참조하십시오. 카우치베이스 애널리틱스 서비스 변경 사항.
때로는 CBAS라고도 불리는 카우치베이스 분석 서비스(Couchbase Analytics Service)는 익숙한 SQL 방언을 사용하여 방대한 양의 데이터를 대상으로 잠재적으로 복잡한 쿼리를 효율적으로 생성하고 실행할 수 있게 해주므로, 카우치베이스와 NoSQL 데이터 요구 사항에 매우 유용한 도구입니다.
지금부터 이 분석 서비스를 사용하는 방법을 살펴보겠습니다. 새로 출시된 카우치베이스 5.5, Node.js SDK를 사용하여 카우치베이스.
이 예제에서는 다음을 작업할 것입니다. 여행 샘플 Couchbase Server에 선택적으로 설치할 수 있는 예제 버킷입니다. 거대한 데이터셋으로 간주되지는 않지만, 이 예제와 함께 잘 작동할 것입니다.
Couchbase Analytics 데이터셋 구성
~ 이내에 분석 Couchbase 관리 대시보드의 [탭]에서 다음 쿼리를 실행하십시오:
|
1 |
생성하다 버킷 여행 함께 { “이름”:“트래블 샘플” }; |
위의 쿼리는 다음을 생성합니다. 여행 Couchbase 기반 애널리틱스 버킷 여행 샘플 양동이.
버킷이 생성되었으므로, 작업할 섀도우 데이터셋을 만들 수 있습니다. 다음 쿼리를 실행하세요.
|
1 2 |
생성하다 SHADOW 데이터셋 항공사 ON 여행 어디 `유형` = “항공사”; 생성하다 SHADOW 데이터셋 공항 ON 여행 어디 `유형` = “공항”; |
위의 쿼리는 에 존재하는 데이터를 기반으로 두 개의 섀도 데이터셋을 생성합니다. 여행 샘플 버킷. 섀도우 데이터셋이 생성되는 동안, 이 데이터셋들은 초기화되어야 합니다:
|
1 |
연결 버킷 여행; |
초기화가 완료되면 애널리틱스 서비스는 문서의 복사본을 생성하기 시작하고 변경 사항을 적극적으로 모니터링합니다. 다음과 같은 쿼리를 실행하여 데이터를 테스트할 수 있습니다:
|
1 |
SELECT * ~에서 공항; |
위 쿼리는 섀도우 데이터셋의 모든 문서를 찾을 것입니다. 즉, 다음을 가진 모든 문서를 얻게 됩니다. 유형 ~의 소유물 항공사.
이 모든 것도 훌륭하지만, 현재까지는 카우치베이스 관리 대시보드만 사용했습니다. 우리는 Node.js에서 분석 데이터셋을 대상으로 쿼리를 실행할 수 있기를 원합니다.
Node.js 애플리케이션에서 CBAS 쿼리하기
Node.js가 설치되어 있다고 가정하고, 새 프로젝트 디렉터리를 생성한 다음 다음 명령어를 실행하세요:
|
1 |
npm 초기화 –y |
위 명령어는 다음을 생성합니다. package.json CLI 경로에 있는 파일입니다. Couchbase와 통신하려면 SDK가 필요합니다. CLI에서 다음 명령을 실행하여 설치할 수 있습니다:
|
1 |
npm 설치 카우치베이스 —저장 |
이제 애플리케이션 개발을 시작할 수 있습니다. 다음을 생성하세요. app.js 프로젝트 내의 파일에 다음 내용을 추가하세요:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
상수 카우치베이스 = 요구하다(“카우치베이스”); 변수 클러스터 = 새로운 카우치베이스.클러스터(“couchbase://localhost”); 클러스터.인증하다(“여행”, “123456”); 클러스터.Cbas 활성화([“localhost:8095”]); 변수 진술서 = “SELECT * FROM airports”; 변수 질의 = 카우치베이스.CbasQuery.문자열에서변환(진술서); 클러스터.질의(질의, (오류, 결과) =< { 만약(오류) { 던지다 오류; } 콘솔.로그(결과); }); |
위의 코드에서는 많은 일이 일어나지 않지만, 어쨌든 하나씩 살펴보겠습니다.
|
1 2 3 |
변수 클러스터 = 새로운 카우치베이스.클러스터(“couchbase://localhost”); 클러스터.인증하다(“여행”, “123456”); 클러스터.Cbas 활성화([“localhost:8095”]); |
쿼리 실행을 시작하기 전에 클러스터에 연결하고 애널리틱스 서비스와의 상호 작용을 활성화해야 합니다. 또한 애널리틱스 사용 권한이 있는 사용자로 클러스터에 인증해야 합니다. 이 예시에서 애널리틱스는 연결 중인 노드에서 활성화되어 있습니다.
우리가 버킷(Bucket)에 연결하고 있지 않다는 점에 유의하세요. N1QL을 사용하고자 했다면 버킷을 열었겠지만, 비슷해 보일 수 있더라도 우리는 N1QL을 사용하지 않고 있습니다.
|
1 2 3 4 5 6 7 8 9 |
변수 진술서 = “SELECT * FROM airports”; 변수 질의 = 카우치베이스.CbasQuery.문자열에서변환(진술서); 클러스터.질의(질의, (오류, 결과) =< { 만약(오류) { 던지다 오류; } 콘솔.로그(결과); }); |
간단한 분석 쿼리를 사용하여 이를 구문 분석하고 실행할 수 있습니다. 쿼리 결과가 반환되어 로그에 인쇄됩니다.
나쁘지 않죠?
Analytics는 SQL++를 사용하므로 다음과 같은 다른 연산자를 사용하여 쿼리를 훨씬 더 복잡하게 만들 수 있습니다. 어디, 하위 쿼리 및 컬렉션에 대한 연산.
결론
방금 N1QL 대신 카우치베이스 분석 서비스(CBAS)를 사용하는 간단한 Node.js 애플리케이션을 만드는 방법을 보았습니다. 분석 및 SQL++는 N1QL을 대체하는 것이 아니라, N1QL이 더 작은 데이터셋에서 빛을 발하는 반면, 훨씬 더 크거나 복잡한 데이터셋을 위한 보완 역할을 합니다.
Analytics 또는 Couchbase Node.js SDK에 대해 자세히 알아보려면 다음을 방문하세요. 카우치베이스 개발자 포털.에서 사용 가능한 다른 새로운 기능에 대해 알아보세요. 카우치베이스 서버 5.5 출시.

댓글 남기기
댓글을 달기 위해서는 로그인해야합니다.