Thứ Hai, 11 tháng 10, 2010

dw - cube

1. Khái niệm
Cube có thể coi là một dạng cơ sở dữ liệu đa chiều và thường để chứa thông tin tổng hợp (summary, count, max, min....). Khái niệm của cube khá gần với data warehouse, chủ yếu cũng loanh quanh về dimensions và measures (fact).

Về mặt lưu trữ vật lý, người ta lưu trữ cube trong các file thông thường được tổ chức theo một cấu trúc nhất định nào đó. Cách này là nhanh nhất để truy cập dữ liệu của cube nhưng đồng thời cũng rất tốn dung lượng. Một cách nữa để lưu trữ dữ liệu của cube là dùng relational database. Cách này tiết kiệm được dung lượng nhưng truy cập sẽ chậm hơn.

Về mặt lý thuyết mà nói, người ta hoàn toàn có thể xây dựng các file chứa dữ liệu dạng cube với dữ liệu được lấy trực tiếp từ các source databases (relational, flat file, xml, maineframe...). Trong thực tế, mình thấy người ta thường xây dựng một data warehouse trước rồi từ đó mới xây dựng cube. Cách này có vẻ dễ hơn, đỡ phải tính toán nhiều bởi vì các tool đã làm cho hết rồi.

Mỗi lần có dữ liệu mới, người ta phải build lại cube. Tùy theo tần suất update mà cube được build theo giờ, ngày, tuần, tháng, năm... Data Warehouse database cũng được update theo kiểu này.
2. Update cube
Tần suất update cube càng gần với real time thì càng ảnh hưởng nhiều đến downtime của cube và dung lượng. Tất cả các yếu tố này phải được đánh giá dựa trên nhu cầu của người dùng và sẽ phải có thỏa hiệp.
Một kỹ thuật mình có nghe người ta nói là khi có dữ liệu mới, một cube mới được built trong khi cube cũ vẫn được dùng song song trong lúc đó. Sau khi cube mới đã built xong, switch từ cube cũ qua cube mới. Như vậy cube không bao giờ bị down. Thỏa hiệp ở đây là dữ liệu trong cube sẽ hơi chậm một chút so với real time bù lại người dùng có thể luôn truy cập cube mà không phải chờ hàng tiếng đồng hồ.

3. Partition

Cách partition thông dụng nhất là theo thời gian bởi vì thường thì người ta có xu hướng truy cập các thông tin gần nhất. Ví dụ bạn partition cube theo năm (hoặc tháng) và thường thì dữ liệu của năm 2009 sẽ được truy cập nhiều nhất. Khi đó, chỉ có partition của 2009 được truy cập và do đó sẽ tăng tốc độ đọc cube lên rất nhiều. Điều này cũng giúp ích cho update cube bởi vì cũng chỉ các dữ liệu của 2009 là hay được cập nhật nhất. Khi đó, chỉ việc update riêng partition của 2009 nơi mà thay đổi thực sự diễn ra, các partition khác đâu có thay đổi nên vẫn có giữ nguyên.

4. Công cụ
Một công cụ để tiếp cận cube dễ dàng là SSAS. SSAS rất tốt và dễ sử dụng. Sách vở về nó cũng nhiều.
copy có chọn lọc từ diễn đàn fotech.org
Tác giả: Huy Nguyen

Không có nhận xét nào:

Đăng nhận xét