참고: 이 게시물은 Couchbase Analytics 데이터 정의 언어의 프로덕션 버전을 반영하도록 업데이트되었습니다.
얼마 전에 저는 Node.js 애플리케이션 내에서 CBAS라고도 하는 Couchbase의 새로운 Analytics 서비스를 사용하는 방법에 대해 작성한 적이 있습니다. 이 예제에서는 샘플 버킷을 기반으로 Analytics 데이터 집합을 설정하고 코드에서 쿼리를 실행했습니다.
Node.js는 제가 가장 좋아하는 개발 기술 중 하나이지만, 이 기술만 지원하는 것은 아닙니다. 카우치베이스. Java는 여전히 훌륭한 언어이므로 애플리케이션에서 Couchbase Analytics로 작업하는 방법을 살펴보겠습니다.
카우치베이스 애널리틱스는 다음 버전부터 사용할 수 있습니다. 카우치베이스 서버 5.5 릴리스.
카우치베이스 분석 쿼리를 위한 데이터 집합 준비하기
SQL++ 및 Analytics로 데이터 쿼리를 시작하기 전에 데이터 집합을 구성해야 합니다. 이 예제에서 가장 간단하게 할 수 있는 것은 여행 샘플 버킷을 사용할 수 있습니다. 이 버킷이 활성화되면, Analytics 쿼리 콘솔에서 간단한 명령을 사용하여 이 버킷에 대한 섀도 데이터 세트를 준비할 수 있습니다:
|
1 2 |
create 데이터 세트 항공사 on `여행-샘플` 어디 `유형` = "항공사"; create 데이터 세트 공항 on `여행-샘플` 어디 `유형` = "공항"; |
두 개의 섀도 데이터 세트는 다른 데이터 세트에 비해 매우 간단합니다. 각 데이터 집합에 포함될 데이터의 범위를 좁히기 위해 복잡한 쿼리를 작성할 수 있으므로 위의 예는 광범위합니다. 기본적으로 모든 공항에 대한 데이터 집합과 모든 항공사에 대한 데이터 집합을 제공하라는 것입니다.
데이터 세트를 생성했더라도 초기화해야 합니다. 다음 명령어로 버킷을 초기화할 수 있습니다:
|
1 |
연결 링크 로컬; |
분석 버킷이 초기화되면 분석 서비스가 문서 복사를 시작하고 변경 사항이 있는지 모니터링합니다.
다음을 실행하여 모든 것이 원활하게 진행되었는지 확인할 수 있습니다:
|
1 2 |
선택 * 에서 항공사 limit 10; |
다시 말하지만, 위의 쿼리는 우리가 만들 수 있었던 것과 비교하면 매우 간단합니다. 애널리틱스 서비스의 가장 큰 장점은 효율적인 인덱스 생성에 대해 전혀 걱정할 필요 없이 훨씬 더 복잡한 쿼리를 만들 수 있다는 것입니다. 이 모든 것이 자동으로 처리됩니다.
SQL++ 쿼리를 위한 Java로 애플리케이션 개발하기
몇 가지 Analytics 데이터 세트가 준비되면 Java 코드 작성을 시작할 수 있습니다. 저는 개인적으로 Gradle을 사용합니다. 사용 중이시라면 명령줄에서 다음을 실행하여 새 프로젝트를 만들 수 있습니다:
|
1 |
gradle init --유형 자바-애플리케이션 |
위의 명령은 새 Java 애플리케이션을 생성합니다. 다음으로 Couchbase Java SDK를 설치합니다. 프로젝트의 build.gradle 파일을 열고 다음과 같이 만듭니다:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
플러그인 { id 'java' id 'application' } 메인 클래스 이름 = '앱' 종속성 { 컴파일 'com.google.guava:guava:23.0' 컴파일 그룹: 'com.couchbase.client', 이름: 'java-client', 버전:'2.5.6' testCompile 'junit:junit:4.12' } 리포지토리 { maven { URL "http://files.couchbase.com/maven2" } mavenCentral() jcenter() } |
클라이언트 라이브러리와 Maven 리포지토리를 포함했음을 알 수 있습니다. 다음 Gradle 명령을 실행하여 프로젝트가 오류 없이 실행되는지 테스트할 수 있습니다:
|
1 |
gradle 실행 |
지금까지 모든 것이 순조롭게 진행되었다고 가정하고 코드를 작성해 보겠습니다. 프로젝트의 src/main/java/App.java 파일을 열고 다음을 포함하세요. 나중에 자세히 설명하겠습니다.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
가져오기 com.카우치베이스.클라이언트.자바.*; 가져오기 com.카우치베이스.클라이언트.자바.분석.분석 쿼리; 가져오기 com.카우치베이스.클라이언트.자바.분석.분석 쿼리 결과; 가져오기 com.카우치베이스.클라이언트.자바.분석.분석 쿼리 행; public 클래스 앱 { public 정적 void 메인(문자열[] args) { 카우치베이스클러스터 클러스터 = 카우치베이스클러스터.create("couchbase://localhost"); 클러스터.인증("demo", "123456"); 버킷 버킷 = 클러스터.오픈버킷("travel-sample"); 분석 쿼리 결과 결과 = 버킷.쿼리(분석 쿼리.simple("SELECT * FROM airports")); 에 대한(분석 쿼리 행 행 : 결과) { 시스템.out.println(행.toString()); } } } |
위의 코드에서는 먼저 클러스터에 대한 연결을 설정하고 있습니다. 계정이 생성되었다고 가정하고, Couchbase 관리 대시보드에 있는 RBAC 계정을 사용하여 클러스터를 인증하고 있습니다.
이 예제에서는 표준 카우치베이스 버킷을 사용하지 않지만, 다음 작업을 위해 애플리케이션 리소스를 초기화하려면 카우치베이스 버킷을 열어야 합니다. 열린 버킷을 사용하여 다음과 같이 분석 쿼리 를 실행합니다. 해당 쿼리의 결과는 콘솔 로그에 인쇄됩니다.
이것은 간단한 예시이지만, 복잡성을 추가한다고 해서 우리가 논의한 내용이 달라지는 것은 아닙니다.
결론
지금까지 Java SDK로 Couchbase Analytics 서비스를 사용하는 방법을 살펴보았습니다. 다시 한 번 강조하자면, Analytics는 인덱싱에 대한 걱정 없이 복잡한 쿼리를 사용하여 방대한 양의 데이터를 쿼리할 수 있는 강력한 방법이며 매우 빠른 결과를 얻을 수 있습니다.
Java로 개발하는 방법에 대해 자세히 알아보려면 다음을 확인하세요. 카우치베이스 개발자 포털. 에서 사용할 수 있는 다른 새로운 기능에 대해 자세히 알아보세요. 카우치베이스 서버 5.5 릴리스.