주요 기능
- 실시간 스트리밍 CDC: Streamkap은 데이터베이스 로그에서 변경 사항을 직접 캡처하여 ClickHouse의 데이터가 원본의 실시간 레플리카가 되도록 합니다. 간소화된 스트림 처리: 데이터가 ClickHouse에 적재되기 전에 실시간으로 변환, 보강, 라우팅, 포맷 지정, 임베딩 생성을 수행합니다. Flink 기반이지만 복잡성은 없습니다.
- 완전관리형 및 확장성: 프로덕션 환경에서 바로 사용할 수 있는, 유지 관리가 거의 필요 없는 파이프라인을 제공하므로 Kafka, Flink, Debezium 또는 스키마 레지스트리 인프라를 직접 운영할 필요가 없습니다. 이 플랫폼은 고처리량 워크로드를 위해 설계되었으며 수십억 개의 이벤트를 처리할 수 있도록 선형적으로 확장됩니다.
- 자동 스키마 진화: Streamkap은 원본 데이터베이스의 스키마 변경을 자동으로 감지해 ClickHouse에 반영합니다. 수동 개입 없이 새 컬럼을 추가하거나 컬럼 타입을 변경할 수 있습니다.
- ClickHouse에 최적화: 이 통합은 ClickHouse의 기능을 효율적으로 활용하도록 구축되었습니다. 기본적으로 ReplacingMergeTree 엔진을 사용하여 원본 시스템의 업데이트와 삭제를 자연스럽게 처리합니다.
- 안정적인 전달: 이 플랫폼은 최소 1회(at-least-once) 전달 보장을 제공하여 원본과 ClickHouse 간의 데이터 일관성을 보장합니다. 업서트 작업의 경우 기본 키를 기준으로 중복 제거를 수행합니다.
시작하기
사전 준비 사항
- Streamkap 계정.
- ClickHouse 클러스터 연결 정보: 호스트명, 포트, 사용자명, 비밀번호.
- CDC가 가능하도록 구성된 원본 데이터베이스(예: PostgreSQL, SQL Server). 자세한 설정 가이드는 Streamkap 문서에서 확인할 수 있습니다.
1단계: Streamkap에서 소스 구성
- Streamkap 계정에 로그인합니다.
- 사이드바에서 Connectors로 이동한 다음 Sources 탭을 선택합니다.
- + Add를 클릭하고 원본 데이터베이스 유형(예: SQL Server RDS)을 선택합니다.
- 엔드포인트, 포트, 데이터베이스 이름, 사용자 자격 증명을 포함한 연결 정보를 입력합니다.
- 커넥터를 저장합니다.
2단계: ClickHouse 대상 구성
- Connectors 섹션에서 Destinations 탭을 선택합니다.
- + Add를 클릭하고 목록에서 ClickHouse를 선택합니다.
- ClickHouse 서비스의 연결 정보를 입력합니다:
- Hostname: ClickHouse 인스턴스의 호스트명입니다(예:
abc123.us-west-2.aws.clickhouse.cloud) - Port: 보안 HTTPS 포트로, 일반적으로
8443입니다 - Username and Password: ClickHouse 사용자의 자격 증명입니다
- Database: ClickHouse의 대상 데이터베이스 이름입니다
- Hostname: ClickHouse 인스턴스의 호스트명입니다(예:
- 대상을 저장합니다.
3단계: 파이프라인 생성 및 실행
- 사이드바에서 Pipelines로 이동한 다음 + Create를 클릭합니다.
- 방금 구성한 Source와 Destination을 선택합니다.
- 스트리밍할 스키마와 테이블을 선택합니다.
- 파이프라인 이름을 지정한 다음 Save를 클릭합니다.
4단계: ClickHouse에서 데이터 확인
ClickHouse에서의 작동 방식
테이블 엔진 및 데이터 처리
- 원본 테이블의 기본 키(primary key)는 ReplacingMergeTree 테이블 정의에서 ORDER BY 키로 사용됩니다.
- 원본의 업데이트는 ClickHouse에 새 행으로 기록됩니다. 백그라운드 머지 과정에서 ReplacingMergeTree는 이러한 행을 병합해 ORDER BY 키를 기준으로 가장 최신 버전만 유지합니다.
-
삭제는 ReplacingMergeTree의
is_deleted매개변수에 전달되는 메타데이터 플래그를 통해 처리됩니다. 원본에서 삭제된 행은 즉시 제거되지 않고 삭제된 것으로 표시됩니다.- 필요에 따라 삭제된 레코드를 분석 목적으로 ClickHouse에 유지할 수 있습니다
메타데이터 컬럼
최신 데이터 쿼리
argMax 함수를 사용해 각 기본 키의 최신 레코드를 수동으로 선택할 수 있습니다: