Liên hệ với chúng tôi
 Thời gian kéo dài 21 Giờ học

Đề cương khóa học

Module 1: Nền tảng Big Data & Spark

  • Tổng quan về hệ sinh thái Big Data và vai trò của Spark trong các nền tảng dữ liệu hiện đại
  • Hiểu kiến trúc Spark: driver, executors, cluster manager, đánh giá lười (lazy evaluation), DAG và lập kế hoạch thực thi
  • Sự khác nhau giữa các API RDD và DataFrame và khi nào nên sử dụng từng cách tiếp cận
  • Tạo và cấu hình SparkSession, hiểu các nguyên tắc cơ bản của cấu hình ứng dụng

Module 2: PySpark DataFrames

  • Đọc và viết dữ liệu từ các nguồn và định dạng doanh nghiệp: CSV, JSON, Parquet và Delta
  • Làm việc với PySpark DataFrames: biến đổi, các hành động, biểu thức cột, lọc, ghép nối và tổng hợp
  • Thực hiện các thao tác nâng cao như hàm cửa sổ (window functions), xử lý timestamp và làm việc với dữ liệu lồng nhau
  • Áp dụng các kiểm tra chất lượng dữ liệu và viết mã PySpark có thể tái sử dụng, dễ bảo trì

Module 3: Nền tảng Kubernetes & Docker dành cho người dùng Spark

  • Hiểu mối quan hệ giữa ảnh Docker và pod Kubernetes với các tiến trình driver và executor của Spark — góc nhìn khái niệm cho người tiêu dùng cụm, không phải quản trị viên
  • Hiểu những gì xảy ra khi một công việc Spark chạy trên Kubernetes: lịch trình pod, yêu cầu và giới hạn tài nguyên, và cách cài đặt phiên ánh xạ lên chúng
  • Hiểu những gì bạn điều khiển thông qua các tham số phiên Spark so với những gì nhóm nền tảng điều khiển thông qua việc cung cấp cụm — và tại sao ranh giới này quan trọng đối với tinh chỉnh
  • Bài tập thực hành: Kiểm tra một công việc Spark-on-Kubernetes đang chạy trong cụm sandbox và xác định các pod driver và executor

Module 4: Cấu hình Phiên Spark trên Kubernetes — Đi sâu

  • Hiểu số lượng executor so với kích thước executor: sự đánh đổi giữa bộ nhớ và lõi (cores) và cách suy luận về chúng
  • Phân bổ bộ nhớ cho driver và executor, bộ nhớ dự phòng (overhead), và cách chúng chuyển đổi thành tài nguyên pod
  • Phân bổ động (Dynamic allocation): cách nó hoạt động trên Kubernetes, khi nào nó tiết kiệm tài nguyên và khi nào thì không
  • Bài tập thực hành: Chạy cùng một công việc với các cấu hình executor và lõi khác nhau và so sánh thời gian thực thi và mức sử dụng tài nguyên

Module 5: Hành vi Mở rộng & Tối ưu hóa Chi phí

  • Hiểu cách việc thêm hoặc loại bỏ các nút thay đổi hành vi của công việc, thời gian hoàn thành và mức tiêu thụ tài nguyên
  • So sánh nhiều executor nhỏ với ít executor lớn: sự đánh đổi về hiệu suất và chi phí
  • Hành vi shuffle và tinh chỉnh phân vùng shuffle, bao gồm việc ước tính tác động chi phí của các lựa chọn cấu hình
  • Bài tập thực hành: Mở rộng cụm sandbox từ năm lên mười nút và quan sát tác động lên thời gian hoàn thành công việc và mức tiêu thụ tài nguyên

Module 6: Tiếp nhận & Phân vùng Dữ liệu Hiệu quả

  • Hiểu vấn đề tệp nhỏ: tại sao các nguồn dữ liệu bị chia cắt thành nhiều tệp Parquet 1–5 MB làm suy giảm hiệu suất và méo mó phân vùng
  • Chiến lược phân vùng lại (repartitioning) và gộp (coalescing)
  • Điều chỉnh kích thước phân vùng khi đọc và khi viết
  • Viết Parquet hiệu quả để tránh tạo lại vấn đề tệp nhỏ ở các bước tiếp theo
  • Bài tập thực hành: Nạp một bộ dữ liệu bao gồm nhiều phân vùng Parquet nhỏ, áp dụng các chiến lược phân vùng lại khác nhau và so sánh hiệu suất trước và sau khi tối ưu hóa

Module 7: Quản lý Bộ nhớ Pandas & Chẩn đoán Lỗi

  • Hiểu các nguyên nhân gốc rễ của các lỗi thiếu bộ nhớ trong Pandas và nhận biết các triệu chứng
  • Áp dụng các mẫu chuyển đổi hiệu quả về bộ nhớ giữa Spark và Pandas
  • Tránh sự phình to bộ nhớ khi viết các bộ dữ liệu lớn ra CSV
  • Sử dụng xử lý theo mảng (chunked processing) và tối ưu hóa dtype cho các môi trường bị hạn chế
  • Bài tập thực hành: Tái hiện một kịch bản thiếu bộ nhớ điển hình trong Pandas và giải quyết nó bằng cách sử dụng xử lý theo mảng và tối ưu hóa dtype

Module 8: Polars như một Công cụ Bổ trợ

  • Định vị Polars so với Pandas: đặc điểm hiệu năng, đánh giá lười và hành vi bộ nhớ
  • Hiểu vị trí của Polars bên cạnh PySpark và Pandas trong các stack dữ liệu đám mây hiện đại và các lộ trình di chuyển, bao gồm các môi trường AWS
  • Bài tập thực hành: Viết lại một phép biến đổi nặng Pandas bằng Polars và so sánh mức sử dụng bộ nhớ và tốc độ xử lý

Module 9: Áp dụng Tối ưu hóa vào Các Tác vụ ETL & ML

  • Áp dụng các nguyên tắc cấu hình, phân vùng và quản lý bộ nhớ xuyên suốt một đường ống ETL thực tế
  • Hiểu các cân nhắc tối ưu hóa đặc thù cho các tác vụ học máy chạy trên cùng một cụm
  • Áp dụng một quy trình tinh chỉnh thực tiễn để chẩn đoán hệ thống các vấn đề về chi phí và hiệu suất
  • Bài tập thực hành: Hoàn thành một mini-project đầu-cuối kết hợp nạp dữ liệu, biến đổi và một bước huấn luyện mô hình đơn giản, với việc người tham gia tự tinh chỉnh cấu hình Spark

Yêu cầu

Người tham gia nên có:

  • Kinh nghiệm thực hành với lập trình Python, bao gồm các hàm, module và các khái niệm hướng đối tượng cơ bản.
  • Kinh nghiệm từ cơ bản đến trung cấp khi làm việc với Pandas và các quy trình xử lý dữ liệu dạng bảng.
  • Sự quen thuộc cơ bản với PySpark và Spark DataFrames, bao gồm đọc dữ liệu, biến đổi, các hành động, ghép nối (joins) và tổng hợp.
  • Sự hiểu biết tổng quát về SQL và các khái niệm xử lý dữ liệu, bao gồm lọc, nhóm và ghép nối bộ dữ liệu.
  • Sự quen thuộc cơ bản với các khái niệm Docker và Kubernetes, chẳng hạn như container, ảnh (images) và pod. Không yêu cầu kinh nghiệm quản trị Kubernetes.
  • Sự hiểu biết cơ bản về các định dạng dữ liệu phổ biến như CSV, JSON và Parquet.

Người tham gia không cần phải là quản trị viên Kubernetes hoặc chuyên gia hạ tầng. Khóa học tập trung vào cách kỹ sư dữ liệu, nhà phát triển và khoa học dữ liệu có thể hiểu và tối ưu hóa các tác vụ Spark của họ đang chạy trên Kubernetes từ góc độ ứng dụng và cấu hình.

Đối tượng mục tiêu

Khóa học được thiết kế dành cho các chuyên gia phát triển, duy trì hoặc tối ưu hóa các tác vụ xử lý dữ liệu và học máy bằng Python và Spark trong môi trường đám mây hoặc container.

Nó đặc biệt phù hợp với:

  • Kỹ sư Dữ liệu làm việc với PySpark, xử lý dữ liệu phân tán và các đường ống ETL.
  • Khoa học Dữ liệu xử lý các bộ dữ liệu lớn hoặc chạy các tác vụ học máy với Spark, Pandas hoặc Polars.
  • Nhà Phát triển Python làm việc với các ứng dụng đòi hỏi nhiều dữ liệu và tìm cách cải thiện hiệu quả bộ nhớ và hiệu suất xử lý.
  • Kỹ sư Học máy quản lý các tác vụ chuẩn bị dữ liệu và huấn luyện mô hình trên các môi trường Kubernetes hoặc đám mây dùng chung.
  • Kỹ sư Phân tích làm việc với các bộ dữ liệu lớn và tìm cách cải thiện hiệu quả xử lý dữ liệu.
  • Kỹ sư DevOps, Nền tảng và Đám mây hỗ trợ các tác vụ Spark trên Kubernetes và cần hiểu cách cấu hình ở cấp độ ứng dụng ảnh hưởng đến mức sử dụng tài nguyên và hiệu suất.
  • Trưởng nhóm Kỹ thuật và Kiến trúc sư Giải pháp tham gia vào việc thiết kế hoặc tối ưu hóa các nền tảng xử lý dữ liệu hiện đại.

Số người tham gia


Giá cho mỗi học viên

Đánh giá (1)

Các khóa học sắp tới

Các danh mục liên quan