Couchbase는 세계 최고의 NoSQL 문서 데이터베이스입니다. 엣지, 온프레미스 및 클라우드에서 탁월한 성능, 유연성 및 확장성을 제공합니다. Spark는 가장 인기 있는 인메모리 컴퓨팅 환경 중 하나입니다. 이 두 플랫폼을 결합하여 매우 빠른 쿼리, 데이터 엔지니어링, 데이터 과학 및 머신 러닝 기능을 실행할 수 있습니다.
이 빠른 시작에서는 데이터브릭*을 사용하여 Couchbase를 설정하고 Couchbase 데이터 쿼리 및 Spark SQL 쿼리를 실행하는 간단한 단계를 안내해 드립니다.
*참고: 이 빠른 시작의 단계는 데이터브릭스 런타임 10.4 LTS에 대해 검증되었습니다.
설정
전제 조건
이 빠른 시작을 완료하려면 다음이 필요합니다:

-
- 그리고 설치 라이브러리 설정은 아래 예시와 같이 구성됩니다:

구성
시작하기 전에 Databricks 클러스터에서 다음 매개 변수를 구성해야 합니다. 고급 옵션 스파크 구성. 다음과 같이 할 수 있습니다. 클러스터를 생성할 때 (아래 화면 인쇄물 참조):

아래 설정을 복사하여 붙여넣고 다음에서 매개변수를 바꿀 수 있습니다. <> 의 Couchbase 클러스터 값과 함께 고급 옵션 Spark 구성:
|
1 2 3 4 5 |
spark.couchbase.password <password> spark.couchbase.implicitBucket <travel-sample> spark.couchbase.connectionString <hostname> spark.couchbase.username <username> spark.databricks.delta.preview.enabled true |
먼저 필요한 가져오기를 실행해 보겠습니다. 위의 구성으로 클러스터에 연결된 빈 노트북에 아래 샘플 코드를 복사합니다.
|
1 2 3 4 5 6 7 8 9 10 11 |
import com.couchbase.spark._ import org.apache.spark.sql._ import com.couchbase.client.scala.json.JsonObject import com.couchbase.spark.kv.Get import com.couchbase.client.scala.kv.MutateInSpec import com.couchbase.spark.kv.MutateIn import com.couchbase.client.scala.kv.LookupInSpec import com.couchbase.spark.kv.LookupIn import com.couchbase.client.scala.query.QueryOptions import com.couchbase.spark.query.QueryOptions import com.couchbase.client.scala.analytics.AnalyticsOptions |
이제 Couchbase에서 키별로 몇 가지 문서를 가져와 보겠습니다. 여행 샘플 데이터베이스를 생성합니다:
|
1 2 3 4 |
sc .couchbaseGet(Seq(Get("airline_10"), Get("airline_10642"))) .collect() .foreach(result => println(result.contentAs[JsonObject])) |
좋아요, 클러스터에 연결하여 첫 번째 RDD(복원력 있는 분산 데이터 세트)를 반환했습니다.
SQL++(SQL 기반의 카우치베이스 쿼리 언어)를 사용하여 데이터를 쿼리할 수 있습니다. 아래 코드를 예시로 실행해 보세요:
|
1 2 3 4 |
sc .couchbaseQuery[JsonObject]("select country, count(*) as count from `travel-sample` where type = 'airport' group by country order by count desc") .collect() .foreach(println) |
애널리틱스 서비스 쿼리
다음은 운영 분석 및 실시간 분석을 위한 애널리틱스 서비스의 예시이며, 아래는 애널리틱스 쿼리의 예시입니다:
|
1 2 |
val query = "SELECT ht.city,ht.state,COUNT(*) AS num_hotels FROM `travel-sample`.inventory.hotel ht GROUP BY ht.city,ht.state HAVING COUNT(*) > 30" sc.couchbaseAnalyticsQuery[JsonObject](query).collect().foreach(println) |
이제 Spark SQL에 대해 알아보겠습니다.
아래 코드를 사용하여 다음에 대한 임시 보기를 만들 수 있습니다. 항공사 그리고 공항 데이터프레임:
|
1 2 3 4 5 6 7 8 9 |
val airlines = spark.read.format("couchbase.query") .option(QueryOptions.Filter, "type = 'airline'") .load() airlines.createOrReplaceTempView("airlines") val airports = spark.read.format("couchbase.query") .option(QueryOptions.Filter, "type = 'airport'") .load() airports.createOrReplaceTempView("airports") |
이제 예를 들어 뷰에서 Spark SQL 쿼리를 실행할 수 있습니다:
항공사를 오름차순으로 가져옵니다:
|
1 |
%sql select * from airlines order by name asc limit 10 |
국가별로 항공사를 그룹화하세요:
|
1 |
%sql select country, count(*) from airlines group by country; |
마지막으로 다음을 사용하여 국가별 공항을 시각화해 보겠습니다. UDF (사용자 정의 함수)와 데이터브릭스 매핑 기능을 함께 사용할 수 있습니다. 아래 SQL++를 사용하여 UDF를 생성합니다:
|
1 2 3 4 5 6 7 8 |
val countrymap = (s: String) => { s match { case "France" => "FRA" case "United States" => "USA" case "United Kingdom" => "GBR" } } spark.udf.register("countrymap", countrymap) |
국가별 공항 수를 선택하고 결과를 시각화합니다:
|
1 |
%sql select countrymap(country), count(*) from airports group by country; |
이 빠른 시작을 완료하면 아래의 시각화와 비슷한 결과가 나타납니다:

우리가 성취한 것
이 빠른 시작에서는 Databricks와 함께 Couchbase 스파크 커넥터를 활용하여 RDD를 만들고, Couchbase 및 Spark SQL 쿼리를 실행하고, UDF를 만들고, Databricks 매핑 기능을 활용하여 결과를 시각화하는 방법을 간략하게 설명해 드렸습니다. 이 단계에서는 Databricks 노트북 인터페이스에서 Couchbase 클러스터의 데이터에 액세스하고, 분석하고, 시각화하는 데 사용되는 프로세스를 보여드립니다.
다음 단계
자세히 알아보기 카우치베이스 카펠라:
-
- 카펠라에 가입하여 체험해 보세요. 30일 무료 체험.
- 평가판 클러스터를 Playground에 연결 를 클릭하거나 프로젝트를 연결하여 직접 테스트해 보세요.
- 보기 카우치베이스 개발자 포털 어느 정도의 튜토리얼/퀵스타트 가이드 시작하는 데 도움이 되는 학습 경로를 확인하세요!
- 문서 보기 를 클릭해 Couchbase SDK에 대해 자세히 알아보세요.
이 게시물을 읽어주셔서 감사합니다! 질문이나 의견이 있으시면 다음 링크를 통해 문의해 주세요. 카우치베이스 포럼!