このプロジェクトについて
# リアルタイムクリックストリーム分析ダッシュボード
Apache Kafka、Python、Pandas、Matplotlibで構築されたリアルタイムウェブサイトトラフィック分析ダッシュボード。本システムはクリックストリームのトラフィックデータをシミュレートし、Kafka経由でストリーム配信、生 analytics の可視化を表示します。
## 主な機能
- リアルタイムクリックストリームデータストリーミングパイプライン
- Kafkaプロデューサーとコンシューマーのアーキテクチャ
- アニメーショングラフ付きライブMatplotlibベースのダッシュボード
- 国別のトラフィック分布追跡
- 時間の経過に伴うユニーク訪問者数の増加分
- Kafkaインフラ向けのDocker Composeセットアップ
## 使用技術
Python、Apache Kafka、Docker、Pandas、Matplotlib、NumPy
## プロジェクト構造
```
kafka-project/
├── consumer.py # Kafkaコンシューマー + Matplotlibダッシュボード
├── producer.py # クリックストリームイベントを送信するKafkaプロデューサー
├── generate_data.py # 合成クリックストリームデータジェネレーター
├── docker-compose.yml # Kafkaスタック設定
└── README.md
```
## 動作概要
1. `generate_data.py` が合成クリックストリームレコード(ユーザーセッション、ページビュー、国コード、タイムスタンプ)を生成します。
2. `producer.py` がそれらのレコードを読み取り、Kafkaトピック(`clickstream-topic`)に publish します。
3. `consumer.py` はKafkaからメッセージを消費し、100メッセージごとにライブMatplotlib図を更新し、国別分布を棒グラフ、ユニークユーザー増加分を折れ線グラフとして表示します。
4. KafkaはDocker Composeを使用してDockerコンテナ内で実行されます。
## プロジェクトの実行方法
1. Kafkaサービスを開始する:
```bash
docker compose up -d
```
2. トピックを作成する:
```bash
docker exec -it kafka /opt/kafka/bin/kafka-topics.sh --create --topic clickstream-topic --bootstrap-server localhost:9092
```
3. データセットを生成する:
```bash
python generate_data.py
```
4. プロデューサーを実行する:
```bash
python producer.py
```
5. 別のターミナルを開いてコンシューマードashboardを実行する:
```bash
python consumer.py
```
Matplotlibウィンドウは、コンシューマーメッセージが届くたびにリアルタイムで更新されます。
## 今後の改善予定
- ウェブベースのダッシュボード(例:StreamlitまたはDash)
- Apache Spark Streamingの統合
- 履歴分析用の永続データベースストレージ
- セッションレベルの分析
- ユーザー行動予測モデル
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.