Skip to main content

소개

이 가이드에서는 이름이 지정된 컬렉션을 사용해 ClickHouse를 Kafka에 연결하는 방법을 살펴봅니다. 이름이 지정된 컬렉션용 설정 파일을 사용하면 다음과 같은 장점이 있습니다.
  • 구성 설정을 중앙에서 더 쉽게 관리할 수 있습니다.
  • SQL 테이블 정의를 변경하지 않고도 설정을 수정할 수 있습니다.
  • 단일 설정 파일을 확인하여 구성을 더 쉽게 검토하고 문제를 해결할 수 있습니다.
이 가이드는 Apache Kafka 3.4.1 및 ClickHouse 24.5.1에서 테스트되었습니다.

전제 조건

이 문서는 다음이 갖추어져 있다고 가정합니다:
  1. 정상적으로 작동하는 Kafka 클러스터
  2. 설정이 완료되어 실행 중인 ClickHouse 클러스터
  3. SQL에 대한 기본 지식과 ClickHouse 및 Kafka 구성에 대한 이해

사전 요구 사항

명명된 컬렉션을 생성하는 사용자에게 필요한 접근 권한이 있는지 확인하십시오.
액세스 제어 활성화에 대한 자세한 내용은 사용자 관리 가이드를 참조하십시오.

구성

다음 섹션을 ClickHouse config.xml 파일에 추가하십시오:

구성 참고 사항

  1. Kafka 주소와 관련 구성은 Kafka 클러스터 설정에 맞게 조정하십시오.
  2. <kafka> 앞의 섹션에는 ClickHouse Kafka 엔진 매개변수가 포함되어 있습니다. 전체 매개변수 목록은 Kafka 엔진 매개변수를 참조하십시오.
  3. <kafka> 내부의 섹션에는 확장 Kafka 구성 옵션이 포함되어 있습니다. 추가 옵션은 librdkafka 구성을 참조하십시오.
  4. 이 예시에서는 SASL_SSL 보안 프로토콜과 PLAIN 메커니즘을 사용합니다. 이러한 설정은 Kafka 클러스터 구성에 따라 조정하십시오.

테이블 및 데이터베이스 생성

ClickHouse 클러스터에서 필요한 데이터베이스와 테이블을 생성하십시오. ClickHouse를 단일 노드로 실행하는 경우 SQL 명령에서 클러스터 부분은 생략하고 ReplicatedMergeTree 대신 다른 엔진을 사용하십시오.

데이터베이스 생성

Kafka 테이블 생성

첫 번째 Kafka 클러스터용 첫 번째 Kafka 테이블을 생성합니다:
두 번째 Kafka 클러스터용 두 번째 Kafka 테이블을 생성합니다:

복제된 테이블(Replicated Table) 생성

첫 번째 Kafka 테이블에 사용할 테이블을 생성합니다:
두 번째 Kafka 테이블에 사용할 테이블을 생성합니다:

materialized view 생성

첫 번째 Kafka 테이블의 데이터를 첫 번째 복제된 테이블(Replicated Table)에 삽입할 materialized view를 생성합니다:
두 번째 Kafka 테이블의 데이터를 두 번째 복제된 테이블에 삽입하도록 materialized view를 생성합니다:

설정 확인

이제 Kafka 클러스터에서 해당 consumer group을 확인할 수 있습니다:
  • cluster_1cluster_1_clickhouse_consumer
  • cluster_2cluster_2_clickhouse_consumer
두 테이블의 데이터를 확인하려면 ClickHouse 노드 아무 곳에서나 다음 쿼리를 실행하십시오:

참고

이 가이드에서는 두 Kafka 토픽으로 수집되는 데이터가 동일합니다. 실제 환경에서는 서로 다를 수 있습니다. 필요한 만큼 Kafka 클러스터를 추가할 수 있습니다. 예시 출력:
이로써 이름이 지정된 컬렉션을 사용한 ClickHouse와 Kafka 통합 설정이 완료됩니다. Kafka 구성을 ClickHouse config.xml 파일에 중앙에서 관리하면 설정을 더 쉽게 관리하고 조정할 수 있어, 통합을 더욱 간편하고 효율적으로 운영할 수 있습니다.
마지막 수정일 2026년 7월 3일