Bu sistem ndjson
formatında verilmiş dosyaları, belirli sürede bir -mesela 60 saniyede bir- Kafka
' ya yazmaya yarar. Kafka
' ya yazılan veriler hiçbir temizleme işlemi olmadan olduğu gibi yazılmaktadır.
Öncelikle sisteminizde Kafka
kurulu olmalıdır. Bu sistem geliştirilirken Kafka
kurulumu için docker
kullanılmıştır. Kullanmış olduğum docker-compose
dosyası repo' nun root dizininde bulunmaktadır.
Sistemin çalışması için gerekli python
kütüphanelerini ise aşağıdaki komutla kurabilirsiniz;
pip3 install -r requirements.txt
Yukarıdaki resimde de görüldüğü gibi producer.py
dosyası birden fazla kez çalıştırılarak belirli json
dosyaları aynı anda belirli Kafka
topic
' lerine yazılır.
producer.py
dosyası ndjson
formatındaki verileri ndjson.py
script' i sayesinde list
formatında elde eder.
producer.py
, Kafka
' nın çalıştığı url' ı config.yml
dosyasından config.py
sayesinde elde eder.
producer.py
, hangi ndjson
dosyasını okuyacağını(--file), veriyi hangi topic
' e yazacağını(--topic) ve verinin hangi sürede(--second) bir Kafka
' ya yazılacağını argümanlar ile elde eder.
Aşağıda klasör yapısını görebilirsiniz.
.
├── producer.py
├── README.md
├── requirements.txt
└── src
├── config.py
├── config.yml
└── ndjson.py
1 directory, 6 files
python3 producer.py --topic product --file data/product-views.json --second 1
python3 producer.py --topic order --file data/orders.json --second 60
- Sistem sadece
ndjson
formatındaki verileri okuyupKafka
' ya yazıyor. Yeni bir format eklenmek istese sistemde değişiklik yapılmak zorundadır. - Unittest yok.