Skip to main content

Kafka와 JSON 데이터 타입

새로운 JSON 데이터 타입의 도입으로 ClickHouse는 이제 JSON 분석용 데이터베이스로 매우 적합한 선택지가 되었습니다. 이 가이드에서는 Apache Kafka의 JSON 메시지를 ClickHouse의 단일 JSON 컬럼에 직접 적재하는 방법을 알아보겠습니다.

Kafka 설정

먼저 로컬 머신에서 Kafka 브로커를 실행하겠습니다. 또한 Kafka와 더 쉽게 상호 작용할 수 있도록 호스트 운영 체제의 9092 포트를 동일한 9092 포트에 매핑하겠습니다:

Kafka로 데이터 수집

준비가 완료되면 데이터를 몇 건 수집해야 합니다. Wikimedia의 최근 변경 피드는 스트리밍 데이터 소스로 적합하므로, 이를 wiki_events topic으로 수집하겠습니다:
다음 명령을 실행해 데이터가 수집되고 있는지 확인할 수 있습니다:
지금까지는 잘 진행되고 있습니다.

ClickHouse로 데이터 수집

다음으로, 데이터를 ClickHouse로 수집하겠습니다. 먼저, 다음 설정을 지정하여 JSON 타입(현재는 Experimental 기능)을 활성화하겠습니다:
이제 Kafka 테이블 엔진을 사용하는 wiki_queue 테이블을 만듭니다.
JSONAsObject 포맷을 사용한다는 점에 유의하십시오. 이 포맷을 사용하면 들어오는 메시지를 JSON 객체로 사용할 수 있습니다. 이 포맷은 JSON 유형의 단일 컬럼이 있는 테이블에만 파싱할 수 있습니다. 다음으로, Wiki 데이터를 저장할 기본 테이블을 생성합니다:
마지막으로, wiki 테이블을 채우는 materialized view를 생성하겠습니다:

ClickHouse에서 JSON 데이터 쿼리하기

이제 wiki 테이블에 대해 쿼리를 작성할 수 있습니다. 예를 들어, 변경 사항을 커밋한 봇 수를 셀 수 있습니다:
또는 en.wikipedia.org에서 가장 많은 편집을 한 사용자를 찾을 수 있습니다:
마지막 수정일 2026년 7월 3일