Skip to content

LongChen3120/coin_etl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MÔ TẢ

  • Dự án thu thập, xử lý, lưu trữ, trực quan thông tin dữ liệu tiền ảo trên sàn Binance.

CÔNG NGHỆ SỬ DỤNG

  • Python: websocket-client, kafka-python, pyspark
  • Docker, Mysql, Kafka, Spark

NỘI DUNG

1. Cài đặt môi trường

1.1. Cài đặt Docker, tạo các Container và cài đặt, chạy Mysql, Kafka, Spark. Mình sẽ hướng dẫn ở dự án khác

1.2. Tạo môi trường cho dự án

  • Chạy lệnh sau để tạo môi trường ảo cho dự án:

python -m venv etl_venv

  • Cài đặt các thư viện cho dự án:

pip install -r requirements.txt

2. Quy trình ETL

coin_etl

  • Producer: Định nghĩa lớp kafkaProducer với 2 phương thức chính là khởi tạo producer và gửi message tới Kafka theo topic
  • source_websocket: Khởi tạo các đối tượng từ lớp kafkaProducer, thực hiện gửi message nhận được từ Binance Kafka theo topic
  • Consumer: Định nghĩa lớp sparkConsumer với nhiều phương thức xử lý dữ liệu cho từng loại message, phương thức writeStream ghi dữ liệu theo lô vào Mysql
  • Database: vì dữ liệu các message không có ràng buộc nên các bảng không có liên quan tới nhau, mỗi bảng sẽ lưu dữ liệu từ 1 topic. Dữ liệu tăng lên khá nhanh, mỗi bảng có thể tăng vài triệu hàng một ngày.
  • Superset: Kết nối tới Mysql, tạo Dashboard, tạo Chart từ một số cột( ví dụ thời gian với giá của 1 loại tiền ảo), sau đó thêm Chart vào Dashboard.

3. Dashboard

  • Dữ liệu được Superset hiển thị theo thời gian thực image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages