Data Engineering

Hiểu về “Data Skew” (độ lệch dữ liệu) trong hệ thống phân tán

5 Tháng Năm, 2025 DataXplorer

Hiện tượng data skew là một trong những vấn đề khó chịu nhưng phổ biến trong các hệ thống xử lý dữ liệu lớn. Nó xuất phát từ sự khác biệt giữa cách dữ liệu được phân vùng và cách dữ liệu thực sự được truy cập.

Hiểu về “Data Skew” (độ lệch dữ liệu) trong hệ thống phân tán

Khi làm việc với hệ thống dữ liệu lớn (big data) hoặc các hệ thống phân tán (distributed systems), một khái niệm quan trọng mà bạn cần nắm rõ là data skew (độ lệch dữ liệu). Đây không phải là một khái niệm đặc thù của AWS, nhưng lại cực kỳ quan trọng trong việc tối ưu hiệu năng khi xử lý và lưu trữ dữ liệu.

Data Skew là gì?

Nói một cách đơn giản, data skew là hiện tượng phân phối dữ liệu không đồng đều giữa các partition (phân vùng). Trong các hệ thống phân tán, dữ liệu thường được chia thành nhiều phân vùng để xử lý song song, từ đó tăng hiệu suất. Tuy nhiên, nếu một số phân vùng chứa nhiều dữ liệu hoặc nhận nhiều traffic hơn các phân vùng khác, thì sẽ xảy ra hiện tượng lệch – data skew.

Một cách ẩn dụ thường được dùng là “celebrity problem” (vấn đề người nổi tiếng). Ví dụ, hãy tưởng tượng bạn đang xây dựng một cơ sở dữ liệu như IMDb – nơi lưu trữ thông tin về diễn viên và phim ảnh. Nếu bạn sử dụng hashing (băm) trên actor ID để phân phối dữ liệu thì thoạt nghe có vẻ hợp lý. Tuy nhiên, một số diễn viên như Brad Pitt sẽ có lưu lượng truy cập cao hơn rất nhiều so với những diễn viên ít tên tuổi. Kết quả là, phân vùng chứa dữ liệu về Brad Pitt sẽ bị quá tải, trong khi các phân vùng khác thì nhàn rỗi.

Các nguyên nhân gây ra Data Skew

Non-uniform data distribution (Phân phối dữ liệu không đồng đều): Khi dữ liệu không được phân phối đều từ đầu.

Ineffective partitioning strategy (Chiến lược phân vùng kém hiệu quả): Sử dụng thuật toán băm hoặc phương pháp phân vùng không phù hợp.

Temporal skew (Lệch dữ liệu theo thời gian): Khi dữ liệu tăng mạnh theo thời gian, ví dụ như phân vùng theo tháng hoặc năm, sẽ dẫn đến phân vùng gần đây chứa nhiều dữ liệu hơn.

Tác hại của Data Skew

Data skew dẫn đến việc một số nodes (nút) trong hệ thống phải xử lý nhiều dữ liệu hơn, gây bottleneck (điểm nghẽn) và ảnh hưởng đến hiệu suất toàn hệ thống. Điều này khiến khả năng parallel processing (xử lý song song) bị suy giảm nghiêm trọng.

Một số giải pháp cho Data Skew

Mặc dù trong kỳ thi AWS bạn không cần phải nhớ tất cả các giải pháp này, nhưng việc hiểu chúng sẽ giúp bạn có cái nhìn sâu hơn khi thiết kế hệ thống:

Adaptive partitioning (Phân vùng thích ứng): Tự động điều chỉnh phân vùng dựa trên quan sát thực tế về lưu lượng và phân phối dữ liệu.

Salting (Bổ sung ngẫu nhiên): Thêm một giá trị ngẫu nhiên vào trước partition key để tăng tính ngẫu nhiên và phân phối đồng đều hơn.

Repartitioning (Tái phân vùng): Di chuyển lại dữ liệu giữa các phân vùng – nhưng cách này khá tốn kém và có thể gây gián đoạn hệ thống.

Sampling (Lấy mẫu): Dựa vào một mẫu nhỏ dữ liệu để phân tích và điều chỉnh chiến lược xử lý.

Custom partitioning (Phân vùng tùy chỉnh): Sử dụng các quy tắc đặc biệt dựa trên kiến thức domain – ví dụ như tạo riêng một phân vùng chỉ cho Brad Pitt.

Giám sát và cảnh báo

Cuối cùng, điều quan trọng nhất là bạn phải monitor (giám sát) hệ thống và thiết lập alert (cảnh báo) khi phát hiện hiện tượng data skew. Với các dịch vụ của AWS, bạn có thể sử dụng CloudWatch để theo dõi các chỉ số và phát hiện sớm vấn đề.

Tổng kết

Hiện tượng data skew là một trong những vấn đề khó chịu nhưng phổ biến trong các hệ thống xử lý dữ liệu lớn. Nó xuất phát từ sự khác biệt giữa cách dữ liệu được phân vùng và cách dữ liệu thực sự được truy cập. Nắm được bản chất của nó sẽ giúp bạn thiết kế hệ thống hiệu quả hơn, tránh được những bottleneck khó lường trong thực tế.

Bài viết liên quan

Lesson Image

Bài 1 - Giới Thiệu Về Các Loại Dữ Liệu: Structured, Unstructured, và Semi-Structured

Bắt Đầu
Lesson Image

Bài 2 - 3 Đặc Tính Của Dữ Liệu: Khối Lượng, Tốc Độ và Đa Dạng

Bắt Đầu
Lesson Image

Bài 3 - Sự Khác Biệt Giữa Data Warehouse và Data Lake

Bắt Đầu
Lesson Image

Bài 4 - Hiểu về Data Mesh: Xu Hướng Mới Trong Data Engineering

Bắt Đầu
Lesson Image

Bài 5 - ETL và ELT: Hiểu Rõ Quy Trình Xử Lý Dữ Liệu Trong Data Warehouse và Data Lake

Bắt Đầu
Lesson Image

Bài 6 - Các Nguồn Dữ Liệu và Định Dạng Dữ Liệu Quan Trọng trong Xử Lý Dữ Liệu

Bắt Đầu
Lesson Image

Bài 7 - Mô hình dữ liệu – các khái niệm về Star Schema, Data Lineage và Schema Evolution

Bắt Đầu
Lesson Image

Bài 8 - Tối ưu hóa hiệu suất cơ sở dữ liệu: Các kỹ thuật quan trọng để truy vấn nhanh và lưu trữ hiệu quả

Bắt Đầu
Lesson Image

Bài 9 - Phương Pháp Lấy Mẫu Dữ Liệu (Data Sampling): Khái Niệm, Tầm Quan Trọng và Ứng Dụng

Bắt Đầu
Lesson Image

Bài 10 - Hiểu về “Data Skew” (độ lệch dữ liệu) trong hệ thống phân tán

Bắt Đầu
Lesson Image

Bài 11 - Data Validation (Xác minh dữ liệu) và Data Profiling (Phân tích dữ liệu)

Bắt Đầu