Giam Doc EVN
Đã tốn tiền
Hi các thím, vài tháng vừa rồi mình rảnh rỗi với lại được AMZ nó cho $300 miễn phí để vọc AWS nên mình có ý tưởng scrape vài data trên voz (chủ yếu user với thread) để tạo 1 ETL data pipeline từ RDS PostgreSQL -> S3 -> Redshift -> auto-update dashboard trên Google Data Studio. Bên cạnh đó mình dùng Docker-Airflow để schedule ETL cho nó tự chạy từ RDS Postgrel -> Redshift luôn.
Tech stack: Selenium Webdriver, Python, Postgesql, S3 bucket, RDS PostgreSQL database, Redshift data warehouse, Docker-compose, Airflow, Google Data Studio.
Một số điểm nhấn là mình sử dụng JSONB data type của PostgreSQL và SUPER data type của Redshift để lưu data dạng dict và array thay vì tạo bảng mới. Vì mình không thực hiện aggregation trên các field này nên việc read/write sẽ nhanh hơn, chỉ unpack khi lưu vào Redshift. Mình cũng thực hiện word-count tất các các comments của 1 thread (nếu có) để xem từ nào thường xuất hiện nhiều nhất trong các hot threads.
Mình đang học DE nên đây xem như 1 bài tập thôi. Xin các thím đóng góp ý kiến để nó hoàn thiện hơn
Một vài hình ảnh tổng quan.
Work flow
Dag
Dashboard - Threads Page
Dashboard - User Page
Các thím có thể tham khảo project ở link bên dưới
Source Code
Dashboard
Tech stack: Selenium Webdriver, Python, Postgesql, S3 bucket, RDS PostgreSQL database, Redshift data warehouse, Docker-compose, Airflow, Google Data Studio.
Một số điểm nhấn là mình sử dụng JSONB data type của PostgreSQL và SUPER data type của Redshift để lưu data dạng dict và array thay vì tạo bảng mới. Vì mình không thực hiện aggregation trên các field này nên việc read/write sẽ nhanh hơn, chỉ unpack khi lưu vào Redshift. Mình cũng thực hiện word-count tất các các comments của 1 thread (nếu có) để xem từ nào thường xuất hiện nhiều nhất trong các hot threads.
Mình đang học DE nên đây xem như 1 bài tập thôi. Xin các thím đóng góp ý kiến để nó hoàn thiện hơn
Work flow
Dag
Dashboard - Threads Page
Dashboard - User Page
Các thím có thể tham khảo project ở link bên dưới
Source Code
Dashboard
Sửa lần cuối:

)
