メインコンテンツへスキップ

Kafka と JSON データ型

新しい JSON データ型の導入により、ClickHouse は JSON 分析向けのデータベース として有力な選択肢となりました。 このガイドでは、Apache Kafka の JSON メッセージを ClickHouse の単一の JSON カラムに直接読み込む方法を紹介します。

Kafka をセットアップする

まず、ローカル環境で Kafka ブローカーを起動します。また、Kafka を扱いやすくするため、コンテナのポート 9092 をホスト OS のポート 9092 にマッピングします。

Kafka にデータを取り込む

起動したら、次はデータを取り込みます。 Wikimedia の recent changes feed はストリーミングデータの優れたソースなので、これを wiki_events トピックに取り込みましょう。
次のコマンドを実行して、データが取り込まれているか確認できます。
ここまでは順調です。

ClickHouse にデータを取り込む

次に、データを ClickHouse に取り込みます。 まず、次のプロパティを設定して、JSON type (現在は実験的機能) を有効にします。
次に、Kafka テーブルエンジンを使用する wiki_queue テーブルを作成します。
JSONAsObject フォーマットを使用している点に注意してください。これにより、受信したメッセージを JSON オブジェクトとして利用できます。 このフォーマットを解析できるのは、JSON 型の単一カラムを持つテーブルだけです。 次に、Wiki データを保存するための基になるテーブルを作成します。
最後に、wikiテーブルにデータを格納するための materialized view を作成しましょう。

ClickHouse で JSON データをクエリする

次に、wiki テーブルに対してクエリを実行できます。 たとえば、変更をコミットしたボットの数を数えることができます:
あるいは、en.wikipedia.org で最も多く編集しているユーザーを調べることもできます。
最終更新日 2026年6月19日