
Xử lý Dữ liệu Lớn với Spark (Batch & Streaming)
Đến một thời điểm, mọi Kỹ sư Dữ liệu đều phải đối mặt với một sự thật: dữ liệu đã trở nên quá lớn để có thể xử lý trên một máy tính duy nhất. Khi đó, Apache Spark không chỉ là một lựa chọn, mà là công cụ tiêu chuẩn của ngành để phá vỡ giới hạn này. Khóa học này được thiết kế để đưa bạn từ thế giới xử lý dữ liệu đơn lẻ sang mô hình điện toán phân tán, trang bị cho bạn năng lực xử lý các tập dữ liệu hàng terabyte một cách hiệu quả và nhanh chóng.
Chương trình sẽ cung cấp cho bạn một sự hiểu biết sâu sắc về kiến trúc cốt lõi của Spark và hệ sinh thái Hadoop, nền tảng của mọi hệ thống Big Data. Trọng tâm của khóa học là làm chủ DataFrame API và Spark SQL – giao diện mạnh mẽ và quen thuộc giúp bạn thực hiện các phép biến đổi, tổng hợp và kết nối dữ liệu phức tạp trên quy mô lớn. Bên cạnh đó, bạn sẽ được bước chân vào thế giới xử lý dữ liệu thời gian thực hấp dẫn với Structured Streaming, học cách xây dựng các ứng dụng có khả năng phản ứng với dữ liệu ngay khi nó được tạo ra.
Thời lượng: 39h


Hình thức đào tạo:
-
- Đào tạo trực tiếp tại lớp học
- Đào tạo trực tuyến
- Đào tạo hybrid (trực tuyến kết hợp trực tiếp)
- Đào tạo tại văn phòng khách hàng
KẾT QUẢ ĐẠT ĐƯỢC:
-
NẮM VỮNG KIẾN TRÚC SPARK & HỆ SINH THÁI HADOOPHiểu rõ các thành phần của một hệ thống phân tán (HDFS, MapReduce) và kiến trúc cốt lõi của Spark (Driver, Executor, Lazy Evaluation).
-
THÀNH THẠO XỬ LÝ DỮ LIỆU LỚN THEO LÔ (BATCH)Sử dụng thành thạo DataFrame API và Spark SQL để thực hiện các phép biến đổi, tổng hợp, và kết nối dữ liệu phức tạp trên các tập dữ liệu lớn.
-
XÂY DỰNG ĐƯỢC PIPELINE STREAMING ĐẦU TIÊNNắm bắt các khái niệm của Structured Streaming và có khả năng xây dựng một ứng dụng xử lý dữ liệu theo thời gian thực đơn giản.
-
VIẾT MÃ PYSPARK HIỆU QUẢ VÀ TỐI ƯUHiểu cách Spark tối ưu hóa câu lệnh qua Catalyst Optimizer và biết cách áp dụng các kỹ thuật như Caching, Partitioning để cải thiện hiệu năng.
-
XÂY DỰNG PIPELINE XỬ LÝ DỮ LIỆU BATCH HOÀN CHỈNHKhả năng thiết kế và triển khai một pipeline xử lý dữ liệu batch hoàn chỉnh, từ việc đọc dữ liệu thô, biến đổi, cho đến việc ghi kết quả ra Data Lake.

Đối tượng tham gia

Sinh viên
Muốn học và thực hành Spark để xử lý dữ liệu lớn trong môi trường tính toán phân tán.

Lập trình viên
Muốn mở rộng kiến thức và kỹ năng sang các hệ thống xử lý dữ liệu lớn, phân tán.

Chuyên viên Phân tích Dữ liệu
Bị giới hạn bởi công cụ, muốn tự tay xử lý các tập dữ liệu quy mô hàng terabyte.

Người chuyển ngành
Đã có nền tảng dữ liệu, cần nâng cấp kỹ năng xử lý dữ liệu theo lô và thời gian thực với Spark.
Nội dung khóa học
1. Tổng quan về Hệ sinh thái Big Data và Kiến trúc Spark
-
- Lịch sử và nhu cầu của Big Data:
-
-
- Vì sao các doanh nghiệp không còn đủ sức xử lý dữ liệu lớn trên Excel, SQL Server thông thường?
- Khái niệm dữ liệu lớn (Big Data): đặc điểm, thách thức, sự phát triển của Hadoop, Spark.
-
-
- Giới thiệu Hadoop Distributed File System (HDFS) & MapReduce:
-
-
- Nguyên lý lưu trữ, chia nhỏ file lớn thành block, phân phối và đảm bảo an toàn dữ liệu trên nhiều node.
- Mô hình lập trình MapReduce: từ phân tán tính toán tới tổng hợp kết quả.
- Hạn chế của MapReduce truyền thống
-
-
- Kiến trúc tổng thể của Apache Spark:
-
-
- Thành phần cốt lõi: Driver, Executor, Cluster Manager (Standalone, YARN, Mesos).
- Cách Spark quản lý job, phân chia task tới node xử lý.
-
-
- Nguyên lý Lazy Evaluation:
-
-
- Lý do Spark không thực hiện từng câu lệnh ngay, tối ưu pipeline bằng việc xây dựng DAG (Directed Acyclic Graph).
-
-
- Giới thiệu RDDs (Resilient Distributed Datasets):
-
-
- Khái niệm tập dữ liệu phân tán, khả năng phục hồi (fault-tolerant).
- Phân biệt Transformation (biến đổi) và Action (hành động) – các thao tác cơ bản đầu tiên trên Spark.
-
2. Xử lý Dữ liệu theo lô với Spark SQL & DataFrames
-
- Làm quen với DataFrame API và Spark SQL:
-
-
- Khởi tạo SparkSession, tạo DataFrame từ nhiều nguồn dữ liệu (Parquet, CSV, JSON, kết nối database qua JDBC).
- Xem nhanh dữ liệu, schema, kiểu dữ liệu.
-
-
- Các phép biến đổi dữ liệu với DataFrame:
-
-
- Chọn trường (select), lọc dữ liệu (filter), tạo cột mới với withColumn, đổi tên, thay đổi kiểu dữ liệu.
- Tổng hợp dữ liệu: groupBy, agg (SUM, COUNT, AVG, MIN, MAX), phân nhóm dữ liệu quy mô lớn.
- Kết hợp nhiều bảng dữ liệu lớn với join (inner, left, right, cross join), xử lý null.
-
-
- Sử dụng User-Defined Functions (UDFs):
-
-
- Khi các phép tính có logic đặc biệt, hướng dẫn viết UDF bằng Python áp dụng cho từng dòng dữ liệu.
-
-
- Tối ưu hóa câu lệnh với Catalyst Optimizer:
-
-
- Spark SQL tự động tối ưu hóa pipeline xử lý như thế nào, tránh lặp lại phép tính, pushdown predicate, kiểm soát hiệu năng.
-
3. Giới thiệu về Xử lý Dữ liệu Thời gian thực (Structured Streaming)
-
- Kiến thức nền về Streaming:
-
-
- Dữ liệu bất tận (Unbounded Data), sự khác biệt giữa batch và streaming.
- Phân biệt Event Time và Processing Time – tại sao sự trễ (latency) và thứ tự sự kiện lại quan trọng.
-
-
- Kiến trúc Spark Structured Streaming:
-
-
- Vai trò các thành phần: nguồn vào (Source), đích ra (Sink), Trigger, Output Mode.
- Hướng dẫn cấu hình đọc dữ liệu theo stream từ thư mục/folder, Kafka hoặc socket.
-
-
- Thực hành xây dựng pipeline streaming đầu tiên:
-
-
- Đọc stream dữ liệu từ folder (file xuất liên tục), xuất kết quả ra console hoặc file.
- Biến đổi dữ liệu trong dòng: select, filter, groupBy trên dòng sự kiện.
- Xử lý trạng thái (Stateful Transformations):
- Sử dụng windowing để tổng hợp dữ liệu trên từng cửa sổ thời gian (ví dụ: doanh thu mỗi 10 phút).
- Thực hành xử lý sự kiện đến không đều, late data (dữ liệu đến muộn).
-
4. Tối ưu hóa và Thực hành Nâng cao
-
- Kỹ thuật tối ưu hiệu năng:
-
-
- Partitioning dữ liệu: phân chia hợp lý để tận dụng tài nguyên cluster, tránh skew.
- Coalesce và Repartition: khi nào cần giảm/tăng số partition, ảnh hưởng đến tốc độ và chi phí.
-
-
- Caching & Persistence:
-
-
- Khi nào nên lưu kết quả tạm thời (cache), các chiến lược quản lý bộ nhớ hiệu quả trong Spark.
-
-
- Sử dụng Spark UI để theo dõi & debug:
-
-
- Phân tích plan thực thi, xác định bottleneck trong pipeline.
- Theo dõi tài nguyên sử dụng, giải thích log Spark.
-
-
- Best practices khi viết ứng dụng PySpark:
-
-
- Tổ chức code, chia nhỏ pipeline, kiểm thử, tài liệu hóa và quản lý phiên bản mã nguồn.
- Qui tắc để vận hành Spark trên Cloud (AWS EMR, Databricks, …).
-
5. BÀI THỰC HÀNH CUỐI KHÓA: Xây dựng pipeline phân tích dữ liệu giao dịch thương mại điện tử
-
- Yêu cầu:
- Đọc dữ liệu: Viết một Spark job để đọc dữ liệu giao dịch (định dạng Parquet) từ một Data Lake. Dữ liệu bao gồm thông tin về đơn hàng, khách hàng và sản phẩm.
- Làm sạch và Biến đổi: Sử dụng DataFrame API để làm giàu dữ liệu, ví dụ: kết nối (join) bảng đơn hàng với bảng khách hàng và sản phẩm.
- Phân tích và Tổng hợp: Thực hiện các phép phân tích:
- Tính tổng doanh thu theo từng danh mục sản phẩm.
- Tìm ra top 10 khách hàng chi tiêu nhiều nhất.
- Phân tích xu hướng mua sắm theo tháng.
- Lưu trữ kết quả: Ghi các bảng kết quả tổng hợp ra định dạng Parquet để các hệ thống báo cáo (BI) có thể sử dụng.
- Yêu cầu:
LỊCH KHAI GIẢNG
(Đang cập nhật)

Bài viết liên quan
