소개
이 가이드에서는 이름이 지정된 컬렉션을 사용해 ClickHouse를 Kafka에 연결하는 방법을 살펴봅니다. 이름이 지정된 컬렉션용 설정 파일을 사용하면 다음과 같은 장점이 있습니다.- 구성 설정을 중앙에서 더 쉽게 관리할 수 있습니다.
- SQL 테이블 정의를 변경하지 않고도 설정을 수정할 수 있습니다.
- 단일 설정 파일을 확인하여 구성을 더 쉽게 검토하고 문제를 해결할 수 있습니다.
전제 조건
이 문서는 다음이 갖추어져 있다고 가정합니다:- 정상적으로 작동하는 Kafka 클러스터
- 설정이 완료되어 실행 중인 ClickHouse 클러스터
- SQL에 대한 기본 지식과 ClickHouse 및 Kafka 구성에 대한 이해
사전 요구 사항
명명된 컬렉션을 생성하는 사용자에게 필요한 접근 권한이 있는지 확인하십시오.구성
다음 섹션을 ClickHouseconfig.xml 파일에 추가하십시오:
구성 참고 사항
- Kafka 주소와 관련 구성은 Kafka 클러스터 설정에 맞게 조정하십시오.
<kafka>앞의 섹션에는 ClickHouse Kafka 엔진 매개변수가 포함되어 있습니다. 전체 매개변수 목록은 Kafka 엔진 매개변수를 참조하십시오.<kafka>내부의 섹션에는 확장 Kafka 구성 옵션이 포함되어 있습니다. 추가 옵션은 librdkafka 구성을 참조하십시오.- 이 예시에서는
SASL_SSL보안 프로토콜과PLAIN메커니즘을 사용합니다. 이러한 설정은 Kafka 클러스터 구성에 따라 조정하십시오.
테이블 및 데이터베이스 생성
ClickHouse 클러스터에서 필요한 데이터베이스와 테이블을 생성하십시오. ClickHouse를 단일 노드로 실행하는 경우 SQL 명령에서 클러스터 부분은 생략하고ReplicatedMergeTree 대신 다른 엔진을 사용하십시오.
데이터베이스 생성
Kafka 테이블 생성
첫 번째 Kafka 클러스터용 첫 번째 Kafka 테이블을 생성합니다:복제된 테이블(Replicated Table) 생성
첫 번째 Kafka 테이블에 사용할 테이블을 생성합니다:materialized view 생성
첫 번째 Kafka 테이블의 데이터를 첫 번째 복제된 테이블(Replicated Table)에 삽입할 materialized view를 생성합니다:설정 확인
이제 Kafka 클러스터에서 해당 consumer group을 확인할 수 있습니다:cluster_1의cluster_1_clickhouse_consumercluster_2의cluster_2_clickhouse_consumer
참고
이 가이드에서는 두 Kafka 토픽으로 수집되는 데이터가 동일합니다. 실제 환경에서는 서로 다를 수 있습니다. 필요한 만큼 Kafka 클러스터를 추가할 수 있습니다. 예시 출력:config.xml 파일에 중앙에서 관리하면 설정을 더 쉽게 관리하고 조정할 수 있어, 통합을 더욱 간편하고 효율적으로 운영할 수 있습니다.