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

Các chiến lược tính toán khối dữ liệu (Cube Computation) trong OLAP

Tổng quan kỹ thuật tối ưu hóa

Có 4 kỹ thuật tối ưu hóa chung cho tính toán khối dữ liệu (data cubes) hiệu quả:

1. Sắp xếp, băm và nhóm (Sorting, hashing, and grouping)

Sử dụng sắp xếp, băm, nhóm trên thuộc tính chiều để sắp xếp lại và gom cụm các tuple liên quan. Trong tính toán khối, tổng hợp thực hiện trên các tuple/ô chia sẻ cùng tập giá trị chiều. Do đó cần khai thác sắp xếp, băm, nhóm để truy cập và gom nhóm dữ liệu, thúc đẩy tính toán tổng hợp.

Ví dụ: Tính tổng bán hàng theo chi nhánh, ngày, mặt hàng → hiệu quả hơn nếu sắp xếp tuple theo chi nhánh, rồi ngày, sau đó nhóm theo tên mặt hàng. Các triển khai hiệu quả cho tập dữ liệu lớn đã được nghiên cứu rộng rãi trong cộng đồng CSDL và áp dụng cho tính toán khối dữ liệu.

2. Tổng hợp đồng thời và lưu kết quả trung gian (Simultaneous aggregation and caching intermediate results)

Trong tính toán khối, đủ hiệu quả để tính tổng hợp cấp cao từ tổng hợp cấp thấp đã tính trước, thay vì từ bảng sự kiện cơ sở (base fact table). Ngoài ra, tổng hợp đồng thời từ kết quả trung gian đã lưu cache giảm thiểu chi phí I/O đĩa đắt đỏ.

Ví dụ: Tính bán hàng 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: bán hàng theo chi nhánh và ngày. Phương pháp mở rộng để thực hiện quét phân摊 (amortized scans) - tính nhiều cuboid cùng lúc để phân摊 đọc đĩa.

3. Tổng hợp từ cuboid con nhỏ nhất (Aggregation from the smallest child)

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

Ví dụ: Tính cuboid bán hàng C_{Branch}, có 2 cuboid đã tính: C_{Branch, Year} và C_{Branch, Item}. Hiệu quả hơn tính từ C_{Branch, Year} nếu số mặt hàng riêng biệt nhiều hơn số năm riêng biệt.

4. Phương pháp cắt tỉa Apriori cho Iceberg Cubes (Apriori pruning for iceberg cubes)

Tính chất Apriori trong bối cảnh khối dữ liệu: Nếu một ô cho trước không thỏa mãn hỗ trợ tối thiểu, thì không có con cháu (phiên bản chi tiết/đúng hơn) nào của ô đó thỏa mãn hỗ trợ tối thiểu. Tính chất này dùng để giảm đáng kể tính toán iceberg cubes.

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