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