概要
- Ubuntu で Kafka をセットアップする方法
- データストリームを Kafka トピックに取り込む
- トピックを購読する ClickHouse テーブルを作成する
1. Ubuntu で Kafka をセットアップ
- Ubuntu ec2 インスタンスを作成し、SSH で接続します:
- Kafka をインストールします (以下の手順を参照: https://www.linode.com/docs/guides/how-to-install-apache-kafka-on-ubuntu/) :
- ZooKeeper を起動します。
- 新しいターミナルを開いて、Kafka を起動します:
- 3つ目のターミナルを開き、
wikimediaという名前のトピックを作成します:
- 正常に作成されたことを、次の方法で確認できます:
2. Wikimedia Stream を Kafka に取り込む
- まず、いくつかのユーティリティが必要です。
- データは、最新の Wikimedia イベントを取得し、JSON データを抽出して Kafka トピックに送信する、巧妙な curl コマンドを使って Kafka に送られます。
- トピックを”describe”して確認できます:
- いくつかのイベントを取り込んで、すべてが正常に動作していることを確認しましょう。
- 前のコマンドを停止するには、Ctrl+c を押します。
3. データを ClickHouse に取り込む
- 取り込まれるデータは以下のようになります。
- Kafka テーブルエンジンを使用して Kafkaトピックからデータを取り込む必要があります:
- 何らかの理由で、Kafkaのテーブルエンジンがパブリックな ec2 URL をプライベート DNS 名に変換してしまうようなので、ローカルの
/etc/hostsファイルにもそれを追加する必要がありました。
- Kafkaテーブルから読み取るには、設定を有効にするだけです。
- これらの受信イベントを保存するには、MergeTree テーブルが必要です。
- Kafka テーブルで insert が行われたときにトリガーされ、データを rawEvents テーブルに送る materialized view を定義しましょう:
- ほぼすぐに、データが rawEvents に取り込まれ始めるはずです:
- いくつかの行を確認してみましょう:
- どのようなイベントが入ってきているか見てみましょう:
- 結果を確認するには、-Merge 関数が必要です: