Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

Các kỹ thuật cho Tính toán Data Cube (Data Cube Computations) là gì?

Dưới đây là các kỹ thuật tối ưu hóa chung cho tính toán data cube hiệu quả:

Sắp xếp, băm và nhóm (Sorting, Hashing, and Grouping)

Các thao tác sắp xếp, băm và nhóm phải được áp dụng cho các thuộc tính chiều (dimension attributes) để sắp xếp lại và gom cụm các tuple liên quan. Trong tính toán cube, tổng hợp (aggregation) được thực hiện trên các tuple chia sẻ cùng tập giá trị chiều. Do đó, cần phân tích các dịch vụ sắp xếp, băm và nhóm để truy cập và gom nhóm dữ liệu như vậy nhằm hỗ trợ đánh giá các tổng hợp đó.

Có thể tính tổng bán hàng theo chi nhánh, ngày và mặt hàng. Hiệu quả hơn là sắp xếp tuple hoặc cell theo chi nhánh, sau đó theo ngày, rồi gom nhóm theo tên mặt hàng. Việc triển khai hiệu quả các thao tác như vậy trên tập dữ liệu lớn đã được nghiên cứu rộng rãi trong cộng đồng nghiên cứu cơ sở dữ liệu.

Triển khai như vậy có thể được mở rộng cho tính toán data cube. Phương pháp này cũng có thể mở rộng để thực hiện shared-sorts (chia sẻ chi phí sắp xếp qua các cuboid khác nhau khi dùng kỹ thuật dựa trên sắp xếp) hoặc shared-partitions (chia sẻ chi phí phân vùng qua các cuboid khác nhau khi dùng thuật toán dựa trên băm).

Tổng hợp đồng thời và lưu đệm kết quả trung gian (Simultaneous Aggregation and Caching of Intermediate Results)

Trong tính toán cube, hiệu quả là tính toán các tổng hợp cấp cao hơn từ các tổng hợp cấp thấp đã tính trước, thay vì từ bảng факт cơ sở (base fact table). Hơn nữa, tổng hợp đồng thời từ kết quả tính toán trung gian đã lưu đệm có thể dẫn đến giảm thiểu các hoạt động nhập/xuất đĩa (I/O) tốn kém.

Ví dụ, để tính doanh số theo chi nhánh, có thể dùng kết quả trung gian từ tính toán cuboid cấp thấp hơn như doanh số theo chi nhánh và ngày. Phương pháp này có thể mở rộng để thực hiện amortized scans (quét phân摊 - tính toán nhiều cuboid càng nhiều càng tốt cùng lúc để phân摊 đọc đĩa).

Tổng hợp từ cuboid con nhỏ nhất khi tồn tại nhiều cuboid con (Aggregation from Smallest Child)

Khi tồn tại nhiều cuboid con, thường hiệu quả hơn là tính cuboid cha mong muốn (tức là cuboid tổng quát hơn) từ cuboid con nhỏ nhất, đã tính trước đó.

Phương pháp cắt tỉa Apriori để tính Iceberg Cube hiệu quả (Apriori Pruning for Iceberg Cubes)

Tính chất Apriori trong bối cảnh data cube, định nghĩa như sau: Nếu một cell cho trước không thỏa mãn ngưỡng hỗ trợ tối thiểu (minimum support), thì không có con cháu nào của cell đó (tức là cell cụ thể hơn) sẽ thỏa mãn ngưỡng hỗ trợ tối thiểu. Tính chất này có thể dùng để giảm đáng kể tính toán iceberg cube.

Mô tả iceberg cube bao gồm điều kiện iceberg, là ràng buộc trên các cell được vật thể hóa (materialized). Điều kiện iceberg phổ biến là cell phải thỏa mãn ngưỡng hỗ trợ tối thiểu bao gồm số lượng tối thiểu hoặc tổng. Trong thuật ngữ này, tính chất Apriori có thể dùng để cắt bỏ việc kiểm tra các con cháu của cell.