Dự án cuối khóa

Sau khi đã làm chủ từng công cụ riêng lẻ trong Modern Data Stack, đây là lúc để bạn kết nối chúng lại thành một hệ thống dữ liệu hoàn chỉnh. Trong môn học này, bạn sẽ làm việc theo nhóm để kiến tạo một hệ thống dữ liệu end-to-end. Dữ liệu sẽ được thu thập từ nhiều nguồn và lưu trữ trên một Data Lake ở nền tảng Cloud. Sau đó, bạn sẽ sử dụng sức mạnh của Apache Spark để xử lý và làm sạch dữ liệu ở quy mô lớn. Tiếp theo, bạn sẽ áp dụng dbt để mô hình hóa, kiểm thử và chuyển đổi dữ liệu thành các bảng phân tích đáng tin cậy trong một Data Warehouse. Cuối cùng, toàn bộ quy trình này sẽ được tự động hóa và điều phối một cách nhịp nhàng bởi Apache Airflow.

Trên hết, đồ án này yêu cầu bạn phải áp dụng tư duy DataOps xuyên suốt quá trình. Bạn sẽ học cách đóng gói các thành phần bằng Docker, quản lý mã nguồn chuyên nghiệp trên GitHub, và thiết lập một quy trình CI/CD cơ bản để tự động hóa việc kiểm thử và triển khai. Hoàn thành đồ án này chính là minh chứng thuyết phục nhất về năng lực của bạn: một Kỹ sư Dữ liệu toàn diện, sẵn sàng giải quyết các bài toán phức tạp và tham gia vào bất kỳ đội ngũ dữ liệu chuyên nghiệp nào.

Thời lượng: 30h

KẾT QUẢ ĐẠT ĐƯỢC

Yêu cầu tiên quyết:

    • Hoàn thành kiến thức của 8 module trước trong lộ trình Data Engineer.
    • Kỹ năng lập trình Python chuyên sâu, bao gồm cả Lập trình Hướng đối tượng (OOP).
    • Thành thạo SQL để xử lý và mô hình hóa dữ liệu.
    • Có kinh nghiệm thực hành với Spark, dbt, và Apache Airflow.
    • Hiểu biết về các dịch vụ cloud (AWS/GCP) và có khả năng đóng gói ứng dụng với Docker.

Nội dung khóa học

 1. Quy trình thực hiện chi tiết

Dự án được thực hiện theo các giai đoạn, mô phỏng vòng đời của một hệ thống dữ liệu trong thực tế:

  • Giai đoạn 1: Thiết kế Kiến trúc và Lập kế hoạch
    • Làm việc nhóm để lựa chọn một bài toán kinh doanh (ví dụ: phân tích dữ liệu bán hàng).
    • Thiết kế kiến trúc hệ thống tổng thể: xác định nguồn dữ liệu, cấu trúc Data Lake, mô hình Data Warehouse (Star Schema).
    • Lập kế hoạch chi tiết cho các giai đoạn và phân công nhiệm vụ.
  • Giai đoạn 2: Thu thập và Lưu trữ (Ingestion & Storage)
    • Viết các script Python để thu thập dữ liệu từ nhiều nguồn (API, Database).
    • Lưu trữ dữ liệu thô vào Data Lake trên nền tảng cloud (Amazon S3 hoặc Google Cloud Storage).
  • Giai đoạn 3: Xử lý, Chuyển đổi và Nạp (Processing, Transformation & Loading)
    • Sử dụng Apache Spark để đọc dữ liệu từ Data Lake, thực hiện làm sạch, xử lý và làm giàu dữ liệu.
    • Sử dụng dbt để mô hình hóa dữ liệu đã xử lý, áp dụng các bài kiểm thử chất lượng và nạp vào kho dữ liệu (Data Warehouse) trên BigQuery.
  • Giai đoạn 4: Tự động hóa và Điều phối (Automation & Orchestration)
    • Xây dựng một DAG (Directed Acyclic Graph) trên Apache Airflow để điều phối toàn bộ pipeline.
    • Thiết lập lịch trình để pipeline tự động chạy, đảm bảo dữ liệu luôn được cập nhật.
  • Giai đoạn 5: Vận hành và Hoàn thiện (DataOps & Finalization)
    • Đóng gói các thành phần của dự án (script Python, Airflow) bằng Docker để dễ dàng triển khai.
    • Thiết lập một quy trình CI/CD cơ bản với GitHub Actions để tự động kiểm thử và triển khai.
    • Viết tài liệu kỹ thuật và chuẩn bị bài thuyết trình cuối khóa.
 2. Đề tài gợi ý
  • Hệ thống phân tích dữ liệu bán hàng từ nhiều nguồn: Thu thập dữ liệu từ hệ thống CRM, website, và file bán hàng để xây dựng một kho dữ liệu tập trung cho việc phân tích.
  • Hệ thống phân tích log người dùng: Thu thập log truy cập từ một ứng dụng web/di động, xử lý để phân tích hành vi người dùng, xây dựng phễu chuyển đổi và phát hiện các bất thường.
 3. Yêu cầu đầu ra

Để hoàn thành môn học, mỗi nhóm cần nộp các sản phẩm sau:

  • Hệ thống Data Pipeline hoạt động: Một pipeline hoàn chỉnh, tự động chạy từ đầu đến cuối.
  • Mã nguồn dự án: Được quản lý chuyên nghiệp trên GitHub, có cấu trúc rõ ràng.
  • Tài liệu dự án: Một file README.md chi tiết giải thích kiến trúc hệ thống, hướng dẫn cài đặt và vận hành pipeline.

Bài viết liên quan