가장 널리 사용되는 추출, 변환, 로드(ETL) 방법은 단언컨대 Kafka를 사용하는 것입니다. ETL, 데이터 파이프라이닝 또는 이벤트 스트리밍을 위해 Kafka를 구성하는 것은 어려울 수 있지만 더 나은 도구가 있습니다.
Confluent는 운영자와 개발자 모두의 프로덕션 및 대규모 스트리밍 경험을 향상시키기 위해 설계된 추가 커뮤니티 및 상업용 기능으로 개선된 가장 완벽한 Kafka 배포를 제공합니다. 가용성이 높고 확장성이 뛰어난 분산형 데이터 플랫폼인 Couchbase와 Confluent는 천생연분처럼 보입니다. 그렇다면 Confluent를 통해 어떻게 Couchbase와 데이터를 주고받을 수 있을까요?
카우치베이스는 Confluent 제어판 내에서 관리할 수 있는 Kafka/Confluent 싱크/소스 커넥터를 지원합니다.
카우치베이스 싱크 커넥터 활성화
Couchbase 커넥터를 추가하는 방법은 여러 가지가 있으며, 로컬 Confluent 설치 및 Confluent Hub 다운로드에서 수행할 수 있습니다. See 커넥터 링크 설치 및 구성에 대한 문서.
Confluent 제어판에서 커넥터가 추가되면 연결 탭은 다음과 같이 표시되어야 합니다:

카우치베이스 싱크 및 소스 커넥터를 사용한 Confluent 연결
클릭 카우치베이스싱크커넥터 를 클릭하면 다음 대화 상자가 표시됩니다:

Confluent에서 구성된 주제를 선택하면 커넥터를 구성하기 위한 모든 필드가 채워집니다. 필드는 토픽을 Couchbase에 매핑하기 위한 Couchbase 전용 필드입니다. 기본적으로 Couchbase는 데이터를 버킷, 범위 및 컬렉션에 저장합니다.
스트림 주제 설정

카우치베이스토픽 는 16개의 파티션으로 Confluent에서 생성되었습니다. 아래에서 공통 섹션에 대한 최대 작업 수를 커넥터의 스레드(예: 16개의 작업)로 생각할 수 있습니다. 이 경우 고성능을 위해 파티션과 작업 간에 일대일 매핑이 이루어집니다. 예를 들어 16개의 파티션과 32개의 작업이 있을 수 있지만 호스팅 머신의 리소스를 염두에 두어야 합니다.
카우치베이스 버킷을 싱크로 선택하기
다음 단계는 Couchbase에 연결하는 것으로 간단합니다.

이 경우 시드 노드는 로컬호스트이지만 호스트 이름이나 IP일 수 있습니다.
기억하세요 버킷의 사용자는 버킷, 범위 및 컬렉션에 대한 Couchbase의 액세스 권한이 있어야 합니다!
연결을 구성한 후 범위와 컬렉션에 대해 살펴봅시다.

위는 범위 및 컬렉션을 구성하는 방법의 예입니다. 범위와 컬렉션이 적절한 권한으로 Couchbase에 존재하는지 확인하는 것이 중요합니다.
Confluent에서 주제를 만들 때 다음 사항을 고려하십시오. 버킷->범위-->컬렉션 매핑 - 각 토픽이 범위/컬렉션에 매핑됩니다. 매핑되는 범위 및 컬렉션이 두 개 이상인 경우에는 매핑을 위해 특정 주제를 만들어야 합니다.
특정 카우치베이스 내구성 설정
내구성 쓰기는 아래 설명된 대로 카우치베이스 커넥터에 대해 구성할 수 있습니다:

카우치베이스 커넥터는 스트레이트 JSON 또는 AVRO 바이너리 등 다양한 직렬화 및 역직렬화 데이터 유형에 맞게 구성할 수 있습니다. AVRO 바이너리 압축에 대해 살펴보겠습니다.
AVRO 압축은 스키마를 사용하여 JSON으로 역직렬화할 수 있는 바이너리 압축입니다. 이 스키마는 바이너리를 JSON 구조에 매핑합니다. Couchbase 커넥터는 Confluent에서 구성된 하나의 스키마로 역직렬화할 수 있습니다. 직렬화 및 역직렬화를 수행한 다음 직렬화 출력으로 토픽이 채워집니다. Confluent는 제어 센터를 통해 기본적으로 하나의 스키마를 지원할 수 있습니다. 직렬화에 여러 단계가 있는 경우 스키마 레지스트리를 만들어 스키마를 저장하고 스키마가 사용되는 단계를 순서대로 저장해야 합니다.
마지막으로 커넥터가 구성됩니다.

여러 개의 커넥터를 구성해야 하는 경우(예: 서로 다른 범위 및 컬렉션에 대한 서로 다른 주제 등) 구성 파일을 다운로드하여 미리 정의된 클러스터에 추가할 수 있습니다.
Confluent가 포함된 Couchbase Kafka 커넥터는 ETL 및 데이터 스트리밍을 위한 손쉬운 경로입니다. 소스 커넥터는 연결 설정은 동일하지만 다음과 같은 매핑이 적용되므로 구성이 더 쉽습니다. 버킷 -> 범위 -> 컬렉션 를 카프카 주제에 연결합니다.
커넥터가 실행되고 나면 토픽 대기열에 있는 메시지가 도착하면 자동으로 Couchbase로 마이그레이션됩니다. 각 작업은 대기열에 있는 최신 메시지를 가져와 대기열에서 제거하며, 아래와 같이 메시지가 대기열에 저장되는 기간 외에는 대기열을 관리할 필요가 없습니다:

다음 단계 및 리소스
-
- 카우치베이스 카프카 커넥터 퀵스타트
- 카프카/카우치베이스 예제의 GIT 리포지토리를 통해 SQL++ 통합 및 사용자 지정에 대해 자세히 알아보세요.
- 컨플루언트 카우치베이스 커넥터chbase/kafka-connect-couchbase
- 카우치베이스 카펠라 데이터와 Confluent Cloud의 통합 (아래 동영상)