L ỜI CAM ĐOAN
2.3.2.1. Kĩ thuật lưu trữ theo cột
Khối lượng dữ liệu cần được xử lí, đặc biệt trong các ứng dụng CSDL chuyên sâu
như kho dữ liệu, Business Intelligence (BI, tạm dịch là kinh doanh thông minh), …
tăng vô cùng nhanh chóng trong những năm gần đây. Theo [10], số liệu từ
Wintercorp’s 2005 TopTen Program Summary, trong vòng 5 năm, từ 1998 đến 2003, kích thước lớn nhất của kho dữ liệu phát triển theo cấp số nhân từ 5 TB đến 30 TB, lượng tải công việc trung bình là 2.000.000 câu lệnh SQL/h. Nhưng chỉ trong vòng 4
năm, 2001 – 2005, kích thước này tăng từ 10 TB tới 100 TB, và lượng tải trung bình có thể đạt tới 30.000.000 câu lệnh SQL/h. Hơn nữa, các nhà khoa học cũng chỉ ra rằng, kích thước kho dữ liệu tăng gấp đôi theo chu kì 3 năm. Sự phát triển nhanh chóng,
không ngừng của kích thước dữ liệu trong kho dữ liệu và nhu cầu về hiệu suất, hiệu
quả của các ứng dụng báo cáo, phân tích, xử lí sự kiện, khai phá dữ liệu chuyên sâu cùng với sự phổ biến của BI (Business Intelligence) đã đặt các hệ CSDL lưu trữ theo
hiện như là một giải pháp cho những yêu cầu về chi phí và hiệu suất trên các hệ thống
này.
Trong các hệ CSDL truyền thống, các giá trị được tập hợp và quản lí như các dòng
độc lập. Nhưng trong các ứng dụng phân tích và BI, các báo cáo, các câu truy vấn đặc
biệt thường chỉ quan tâm tới một hoặc một tập thuộc tính (cột) nhất định mà không phải toàn bộ dòng. Do đó việc đọc toàn bộ dòng trong khi chỉ quan tâm tới một số
thuộc tính nhất định là không cần thiết và làm giảm hiệu suất của hệ thống.
Lưu trữ dữ liệu theo cột là tổ chức và lưu trữ dữ liệu theo các cột (thuộc tính) độc
lập. Khi truy vấn, hệ CSDL lưu trữ theo cột có thể đánh giá những cột sẽ được truy cập
và chỉ tìm kiếm giá trị yêu cầu trên các cột được chỉ định. Một cách tự nhiên, các giá trị dữ liệu trong mỗi cột là chỉ mục cho chính nó nên không cần hỗ trợ chỉ mục như trong CSDL lưu trữ theo dòng khác. Như vậy, hệ CSDL có thể chỉ tập trung vào các thuộc tính có ích mà bỏ qua một lượng lớn các thuộc tính không cần thiết nên giảm chi
phí vào/ra, cho phép truy cập nhanh tới dữ liệu mà không cần mở rộng không gian lưu
trữ (footprint) của CSDL và hệ quả cuối cùng là cải thiện hiệu suất truy vấn.
Những lợi ích của lưu trữ dữ liệu hướng cột:
- Là kiến trúc cho hiệu suất phân tích: không cần sử dụng chỉ mục, đây là kiến trúc để lưu trữ dữ liệu hơn là cơ chế tham chiếu tới các vùng lưu trữ khác. CSDL lưu
trữ theo cột chỉ truy cập vào các cột dữ liệu thỏa mãn truy vấn. Các thao tác vào/ra
được thực thi song song. Khi tìm kiếm, các cột được duy trì trong bộ đệm sử dụng các
thuật toán lưu đệm hướng tới việc tối ưu truy cập bộ nhớ trong và hệ quả là giảm lưu lượng vào/ra trên đĩa.
- Kết hợp và gộp nhóm nhanh: dòng truy cập dữ liệu trong dữ liệu lưu trữ cột cho phép tăng tính toán kết quả cho các hàm gộp nhóm, điều này có ý nghĩa quan
trọng trong các ứng dụng kinh doanh thông minh BI. Hơn nữa, do không yêu cầu các
cột dữ liệu lưu trữ gần nhau nên có thể lưu trữ dữ liệu trên nhiều đơn vị xử lí, sau đó
xử lí song song đa luồng. Kết quả là làm tăng hiệu suất truy vấn.
- Thích hợp cho nén: Nén dữ liệu theo cột cho kết quả tốt hơn.
- Tối ưu truy vấn một cách hiệu quả: cấu trúc dữ liệu dựa trên bitmap sử dụng
trong một vài lưu trữ phân tích theo cột cung cấp hiệu suất truy vấn cao thông qua các phép toán bitmap và tập hợp tinh vi bên trong và trên các cột. Nếu sử dụng một bitmap để mô tả dữ liệu, có thể đếm các biến cố duy nhất tại thời điểm tải, do đó có thể cung
cấp giá trị đếm trước khi gộp nhóm thay vì phân tích dữ liệu thực tế trên các cột.
- Tải dữ liệu nhanh: Mỗi cột được lưu trữ độc lập, cho phép hệ CSDL tải các cột
song song sử dụng đa luồng. Hơn nữa, xử lí phép hợp trên một cột nhanh hơn thời gian
tải trên toàn bảng, giảm độ trễ khi nhận dữ liệu mới cho các xử lí truy vấn. Cuối cùng, vì các cột được lưu trữ độc lập nên toàn bộ các cột trong bảng có thể được bổ sung hay
hủy bỏ mà không ảnh hưởng nhiều tới hệ thống và quan trọng là không cần điều chỉnh
lại hệ thống sau những thay đổi đó.