Tải bản đầy đủ (.pdf) (57 trang)

ÁP DỤNG KỸ THUẬT OLAP VÀ KHO DỮ LIỆU TRONG DỰ BÁO TÀI CHÍNH

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.73 MB, 57 trang )

2


ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Vũ Ngọc Anh

ÁP DỤNG KỸ THUẬT OLAP VÀ KHO DỮ LIỆU
TRONG DỰ BÁO TÀI CHÍNH





KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Các hệ thống thông tin






HÀ NỘI - 2010


3


ĐẠI HỌC QUỐC GIA HÀ NỘI


TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Vũ Ngọc Anh

ÁP DỤNG KỸ THUẬT OLAP VÀ KHO DỮ LIỆU
TRONG DỰ BÁO TÀI CHÍNH





KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Các hệ thống thông tin



Cán bộ hướng dẫn:

TS. Nguyễn Hà Nam


Cán bộ đồng hướng dẫn:

Ths. Nguyễn Thu Trang


HÀ NỘI - 2010



4

Lời cảm ơn
Trước tiên tôi xin gửi lời cảm ơn và lòng biết ơn sâu sắc tới TS.Nguyễn Hà Nam và
Ths.Nguyễn Thu Trang đã tận tình chỉ bảo và hướng dẫn tôi trong suốt quá trình thực hiện
khóa luận tốt nghiệp.
Tôi xin chân thành cảm ơn các thầy, các cô đã tạo cho tôi những điều kiện thuận lợi để
học tập và nghiên cứu tại trường Đại Học Công Nghệ.
Tôi xin cảm ơn các bạn trong nhóm làm “Data Warehouse và OLAP” đã cùng thả o luận
và trao đổi và giúp tôi rất nhiều trong quá trình thu thập tài liệu.
Tôi xin gửi lời cảm ơn vô hạn tới gia đình, bạn bè, những người thân yêu đã luôn bên
cạnh động viên tôi trong suốt quá trình thực hiện khóa luận.
Tôi xin chân thành cảm ơn!
Sinh viên
Vũ Ngọc Anh
1

Mục lục
Mục lục 1
Danh sách các hình 3
Bảng từ viết tắt 5
Lời mở đầu 6
Chương 1. Giới thiệu kho dữ liệu và dữ liệu tài chính 7
1.1. Dữ liệu trong lĩnh vực tài chính 7
1.2. Kho dữ liệu (Data warehouse) 8
1.2.1. Kho dữ liệu 8
1.2.2. Mục đích của kho dữ liệu 9
1.2.3. Lợi ích của kho dữ liệu 9
1.2.4. Thành phần của kho dữ liệu 10
1.2.5. Cấu trúc của kho dữ liệu 11

1.2.6. Mô hình thực thể trong kho dữ liệu 12
1.2.7. Các lĩnh vực ứng dụng của kho dữ liệu 15
Chương 2. Kỹ thuật phân tích OLAP 16
2.1. Giới thiệu OLAP 16
2.2. Mô hình dữ liệu đa chiều 16
2.3. Kiến trúc khối (Cube) của OLAP 18
2.4. So sánh OLAP và OLTP 19
2.5. Các thành phần của OLAP 20
2.6. Chuyển đổi dữ liệu từ OLTP tới OLAP 21
2.7. Các mô hình lưu trữ hỗ trợ OLAP 22
2.7.1. Mô hình Multidimentional OLAP (MOLAP) 22
2.7.2. Mô hình Relational OLAP (ROLAP) 23
2.7.3. Mô hình Hybird OLAP (HOLAP) 24
2.7.4. So sánh các mô hình 25
Chương 3. Bộ công cụ Pentaho 26
3.1 Tổng quan 26
3.2 Các khả năng BI của pentaho 26
2

3.3 Những đặc tính và lợi ích 29
Chương 4. Giới thiệu bài toán triển khai trên Pentaho và kết quả đạt được 33
4.1. Giới thiệu bài toán 33
4.2. Thu thập,xử lý dữ liệu 33
4.3. Tạo data warehouse 36
4.4. Xử lý dữ liệu bằng kỹ thuật OLAP 42
4.4.1. Tạo cube 42
4.4.2. Analysis View 43
Kết luận 52
Tài liệu tham khảo 53







3

Danh sách các hình
Hình 1. Các thành phần của kho dữ liệu 11
Hình 2. Mô hình sao 13
Hình 3. Mô hình bông tuyết 14
Hình 4. Mô hình chòm sao 15
Hình 5. Mô phỏng các chiều trong kinh doanh 17
Hình 6. Mô hình dữ liệu MOLAP 22
Hình 7. Mô hình dữ liệu ROLAP 23
Hình 8. Mô hình dữ liệu HOLAP 24
Hình 9. Cấu trúc Pentaho 26
Hình 10. Dữ liệu tỷ giá 33
Hình 11. Dữ liệu giá vàng 34
Hình 12. Dữ liệu giá dầu 35
Hình 13. Dữ liệu chỉ số VnIndex 35
Hình 14. Dữ liệu tổng hợp 36
Hình 15. Mô hình kho dữ liệu 37
Hình 16. Spoon workspace 37
Hình 17. Spoon nhập dữ liệu 38
Hình 18. Combination Lookup/Update 38
Hình 19. Thay đổi thuộc tính 39
Hình 20. Kết nối cơ sở dữ liệu 39
Hình 21. Tạo bảng Dim_time 40
Hình 22. Tạo bảng dim_factor 40

Hình 23. Tạo Table Output 41
4

Hình 24. Tạo bảng fact_price 41
Hình 25. Nhập dữ liệu 42
Hình 26. Kết nối cơ sở dữ liệu 42
Hình 27. Kiến trúc Cube 43
Hình 28. Repository Login 43
Hình 29. Kết nối cơ sở dữ liệu 44
Hình 30. Khung làm việc Pentaho 45
Hình 31. Chọn schema và cube 45
Hình 32. Dữ liệu schema và cube 45
Hình 33. Nội dung phân tích 46
Hình 34. Chọn Measures 46
Hình 35. Chọn factor 46
Hình 36. Chọn năm phân tích 47
Hình 37. Chọn chi tiết ngày tháng 47
Hình 38. Chọn loại biểu đồ 48
Hình 39. Biểu đồ tỷ giá USD/VND 48
Hình 40. Biểu đồ giá vàng 49
Hình 41. Biểu đồ giá dầu 49
Hình 42. Biểu đồ chỉ số VnIndex 50
Hình 43. Biểu đồ giá vàng và giá dầu 50
Hình 44. Biểu đồ tỷ giá và giá vàng 51
Hình 45. Biểu đồ giá vàng và VNIndex 51

5

Bảng từ viết tắt
OLAP Online Analysis Processing

MOLAP Multidimensional Online Analysis Processing
ROLAP Relational Online Analysis Processing
HOLAP Hybird Online Analysis Processing
BI Business Intelligence
OLTP OnLine Transaction Processing
6

Lời mở đầu
Cùng với việc áp dụng rộng rãi công nghệ thông tin vào trong hầu hết các lĩnh vực
trong đời sống, kinh tế, xã hội đó là việc dữ liệu thu nhận được qua thời gian ngày
càng nhiều.Vì vậy, yêu cầu thiết yếu đặt ra đối với các doanh nghiệp đó là việc khai
thác các dữ liệu này một các hiệu quả để phục vụ cho việc kinh doanh ngày càng tốt
hơn.
Khóa luận này với đề tài “Áp dụng kỹ thuật OLAP và kho dữ liệu trong báo cáo tài
chính” giới thiệu về kho dữ liệu, phương pháp OLAP và ứng dụng trong phân tích biên
động giá dầu, giá vàng và chỉ số VNIndex bằng công cụ Pentaho.
Khóa luận gồm bốn chương:
Chương 1. Giới thiệu kho dữ liệu và dữ liệu tài chính giới thiệu về đặc điểm của dữ
liệu tài chính, giới thiệu tổng quan về kho dữ liệu, cấu trúc kho dữ liệu, các thành
phần của kho dữ liêu, cách thiết kế kho dữ liệu và ứng dụng của kho dữ liệu.
Chương 2. Giới thiệu tổng quan về OLAP giới thiệu tổng quan về kỹ thuật OLAP, các
mô hình lưu trữ hỗ trợ kỹ thuật OLAP, ưu điểm và nhược điểm của các mô hình. Các
bước để chuyển dữ liệu từ OLTP sang OLAP.
Chương 3. Giới thiệu bộ công cụ Pentaho giới thiệu tổng quan bộ công cụ Pentaho,
kiến trúc, công nghệ, và các tiện ích của Pentaho.
Chương 4. Giới thiệu bài toán triển khai trên Pentaho và kết quả đạt được triển khai
Pentaho trên một bài toán thực, áp dụng kỹ thuật kho dữ liệu và kỹ thuật OLAP để
thực hiện
Phần kết luận tổng kết và tóm lược những kết quả, đóng góp chính của khóa luận.
7


Chương 1. Giới thiệu kho dữ liệu và dữ liệu tài chính
1.1. Dữ liệu trong lĩnh vực tài chính
Với đặc điểm tính toán chính xác, nhanh chóng, khách quan nên công nghệ
thông tin được áp dụng khá rộng rãi trong lĩnh vực tài chính từ rất sớm.
Dữ liệu trong lĩnh vực tài chính có đặc điểm sau:
- Luôn luôn biến đổi
- Dữ liệu phân tán
- Giao dịch chồng chéo
- Số lượng giao dịch lớn
Do đó, cần có một chiến lược lưu trữ dữ liệu một cách hiệu quả.Những hệ thống đáp
ứng được các đặc điểm trên thuộc nhóm hệ thống xử lý giao dịch trực tuyến OLTP
(OnLine Transaction Processing)[4].
Các ứng dụng xử lý giao dịch trực tuyến – OLTP (OnLine Transaction Processing)
là những ứng dụng giúp người dùng truy cập trực tiếp thông tin theo hình thức ứng
dụng Client/Server. OLTP bao gồm một dãy lệnh: thu nhận (gathering) dữ liệu đầu
vào, xử lý (processing) dữ liệu, và cập nhật (updating) dữ liệu cũ với dữ liệu mới được
nhập và xử lý.
OLTP là phương thức hiệu quả khi người dùng muốn:
- Xử lý các dữ liệu đơn với số lượng và tần số không thể ước lượng.
- Truy cập tức thì vào dữ liệu đã được cập nhật, phản ánh các giao dịch trước đó.
- Thay đổi dữ liệu tức thì để phản ánh giao dịch vừa xử lý.
Các chức năng cơ bản của OLTP[4]: cùng với khả năng truy cập và cập nhật các dữ
liệu chia sẻ, các hệ thống OLTP còn hỗ trợ các user khả năng truy cập trực tuyến
(online), khả năng truy cập tức thời (availability), khả năng phản hồi nhanh chóng
(response), và tiết kiệm chi phí đối với từng transaction (low cost).
Để trả lời các câu hỏi đơn giản trong quá trình kinh doanh như doanh thu của tháng
8

này bao nhiêu? Tháng này bán được bao nhiêu sản phẩm… những sản phẩm về số liệu

chi tiết được hệ thống OLTP trả lời 1 cách nhanh chóng.Nhưng đối với các nhà quả lý
cấp cáo trong doanh nghiệp, họ không yêu cầu những dữ liệu quá chi tiết như vậy. Họ
yêu cầu muốn biết những thông tin mang tính hoạch định và lãnh đạo ví dụ như: mặt
hàng này đang bán chạy ở khu vực này liệu có bán chạy ở khu vực khác không? Nếu
trả lời các câu hỏi này ở hệ thống OLTP thì sẽ rất khó và hiệu quả thấp vì dữ liệu của
OLTP quá chi tiết, lưu trữ phân tán…Để giải quyết vấn đề này, hệ thống data
warehouse (kho dữ liệu) ra đời cùng với các kỹ thuật OLAP, Data mining (khai phá dữ
liệu) để có thể giúp được người quản trị cấp cao trả lời các câu hỏi mà họ yêu cầu.
1.2. Kho dữ liệu (Data warehouse)
1.2.1. Kho dữ liệu
Data warehouse - kho dữ liệu là 1 tập hợp thông tin cơ bản trên máy vi tính mà
chúng có tính quyết định đến việc thực hiện thành công bước đầu trong công việc kinh
doanh[1].
Một kho dữ liệu, gọi một cách chính xác hơn là kho thông tin (information
warehouse), là một cơ sở dữ liệu hướng đối tượng được thiết kế với việc tiếp cận các ý
kiến trong mọi lĩnh vực kinh doanh. Nó cung cấp các công cụ để đáp ứng thông tin cần
thiết cho các nhà quản trị kinh doanh tại mọi cấp độ tổ chức - không những chỉ là
những yêu cầu dữ liệu phức hợp, mà còn là điều kiện thuận tiện nhất để đạt được việc
lấy thông tin nhanh, chính xác. Một kho dữ liệu được thiết kế để người sử dụng có thể
nhận ra thông tin mà họ muốn có và truy cập đến bằng những công cụ đơn giản[9].
Một kho dữ liệu là một sự pha trộn của nhiều công nghệ, bao gồm các cơ sở dữ
liệu đa chiều và mối quan hệ giữa chúng, kiến trúc chủ khách, giao diện người dùng đồ
họa và nhiều nữa. Dữ liệu trong kho dữ liệu không giống dữ liệu của hệ điều hành là
loại chỉ có thể đọc nhưng không chỉnh sửa được. Hệ điều hành tạo ra, chỉnh sửa và xóa
những dữ liệu sản xuất mà những dữ liệu này cung cấp cho kho dữ liệu. Nguyên nhân
chính cho sự phát triển một kho dữ liệu là hoạt động tích hợp dữ liệu từ nhiền nguồn
khác nhau vào một kho dữ liệu đơn lẻ và dày đặc mà kho này cung cấp cho việc phân
tích và ra quyết định trong công việc kinh doanh.
Đối với một số công việc kinh doanh thông tin là nguồn tài nguyên có giá trị rất
lớn thì một kho dữ liệu tương đối giống như một nhà kho chứa hàng. Hệ điều hành tạo

9

ra những phần dữ liệu và nạp chúng vào kho. Một số phần được tóm tắt trong thành
phần thông tin và được cất vào kho. Người sử dụng kho dữ liệu đưa ra những yêu cầu
và được cung cấp sản phẩm được tạo ra từ các thành phần và các phân đoạn được lưu
trong kho.
Một kho dữ liệu được xác định đúng hướng, hoạt động hiệu quả có thể trở
thành một công cụ cạnh tranh có giá trị cao trong kinh doanh.
1.2.2. Mục đích của kho dữ liệu
Mục tiêu chính của kho dữ liệu là đạt những mục tiêu sau:
- Phải có khả năng đáp ứng mọi thông tin yêu cầu của người dùng
- Hỗ trợ nhân viên của tổ chức thực hiện tốt, hiệu quả công việc của họ
- Giúp các tổ chức xác định, quản lý, điều hành các dự án, nghiệp vụ một cách hiệu
quả và chính xác.
- Tíc hợp dữ liệu và siêu dữ liệu từ nhiều nguồn khác nhau.
Muốn đạt được các mục tiêu trên thì kho dữ liệu phải:
- Nâng cao chất lượng dữ liệu bằng cách làm sạch và hướng chủ đề nhất định
- Tổng hợp và kết nối dữ liệu
- Đồng bộ hóa các nguồn dữ liệu
- Phân định và đồng nhất các hệ cơ sở dữ liệu tác nghiệp
- Quản lý siêu dữ liệu
- Cung cấp thông tin được tích hợp, tóm tắt hoặc được liên kết, tổ chức theo các chủ
đề
- Dùng trong các hệ thống hỗ trợ ra quyết định.
1.2.3. Lợi ích của kho dữ liệu
Tạo ra những quyết định có ảnh hưởng lớn. Một kho dữ liệu cho phép trích rút
tài nguyên nhân lực và máy tính theo yêu cầu để cung cấp các câu truy vấn và các báo
cáo dựa vào cơ sở dữ liệu hoạt động và sản xuất. Điều này tạo ra sự tiết kiệm đáng kể.
10


Có kho dữ liệu cũng trích rút tài nguyên khan hiếm của hệ thống sản xuất khi thực thi
một chương trình quá lâu hoặc các báo cáo và các câu truy vấn phức hợp.
Công việc kinh doanh trở nên thông minh hơn. Tăng thêm chất lượng và tính
linh hoạt của việc phân tích kinh doanh do phát sinh từ cấu trúc dữ liệu đa tầng của
kho dữ liệu, đó là nơi cung cấp dữ liệu được sắp xếp từ mức độ chi tiết của công việc
kinh doanh cho đến mức độ cao hơn - mức độ tổng quát. Đảm bảo được dữ liệu chính
xác và đáng tin cậy do đảm bảo được là trong kho dữ liệu chỉ chứa duy nhất dữ liệu có
chất lượng cao và ổn định (trusted data).
Dịch vụ khách hàng được nâng cao. Một doanh nghiệp có thể giữ gìn mối quan
hệ với khách hàng tốt hơn do có mối tương quan với dữ liệu của tất cả khách hàng qua
một kho dữ liệu riêng.
Tái sáng tạo những tiến trình kinh doanh. Sự cho phép phân tích không ngừng
thông tin kinh doanh thường cung cấp sự hiểu biết mọi mặt của phương thức kinh
doanh do đó có thể làm nảy sinh ra những ý kiến cho sự sáng tạo ra những tiến trình
này lại. Chỉ khi xác định chính xác các nhu cầu từ kho dữ liệu thì mới giúp ta đánh giá
được những hạn chế và mục tiêu kinh doanh một cách chính xác hơn.
Tái sáng tạo hệ thống thông tin. Một kho dữ liệu là nền tảng cho các yêu cầu dữ
liệu trong mọi lĩnh vực kinh doanh, nó cung cấp một chi phí ảnh hưởng nghĩa là đưa ra
thói quen cho cho cả hai sự chuẩn hóa dữ liệu và sự chuẩn hóa hoạt động của hệ điều
hành theo chuẩn quốc tế.
1.2.4. Thành phần của kho dữ liệu
Chi tiết hiện hành
Trung tâm của kho dữ liệu là chi tiết hiện hành của nó. Đó là nơi mà phần lớn
dữ liệu được lưu trữ. Chi tiết hiện hành đến trực tiếp từ hệ điều hành và có thể được
lưu trữ như là dữ liệu thô hoặc như sự tập hợp của dữ liệu thô.
11



Chi tiết hiện hành là phần lõi dữ liệu mức thấp nhất trong kho dữ liệu. Mọi thực

thể dữ liệu trong chi tiết hiện hành là một bức ảnh chụp nhanh, tại một thời điểm, là sự
minh họa khi dữ liệu chính xác. Chi tiết hiện hành là đặc trưng từ hai đến năm năm. Sự
chính xác của chi tiết hiện hành xảy ra thường xuyên như là điều kiện cần thiết để
cung cấp những yêu cầu trong kinh doanh.
Hệ thống bản ghi
Một hệ thống bản ghi là nguồn dữ liệu tốt nhất hoặc phải nhất (rightest data)
dùng để nuôi dưỡng kho dữ liệu. Dữ liệu phải nhất là dữ liệu hợp thời nhất, đầy đủ
nhất, chính xác nhất, và có sự thích nghi về cấu trúc nhất trong kho dữ liệu. Dữ liệu
phải nhất thường đóng nhất đối với nguồn ghi nhận trong môi trường sản xuất. Trong
những trường hợp khác, một hệ thống bản ghi có thể là một nơi dùng để chứa dữ liệu
tổng hợp.
1.2.5. Cấu trúc của kho dữ liệu
Một kho dữ liệu có thể có một vài phần của cấu trúc sau:
Rel
ational

Data Store

Data Marts
and Cubes
Clients

Source
Hình 1. Các thành phần của kho dữ liệu
12

Kho dữ liệu mức vật lý
Cơ sở dữ liệu mức vật lý trong tất cả dữ liệu của kho dữ liệu được lưu trữ , theo
cùng với metada và tiến trình xử lý logic cho việc lọc, tổ chức và đóng gói dữ liệu, xử
lý dữ liệu chi tiết.

Kho dữ liệu mức logic
Cũng chứa đựng metadata bao gồm những luật kinh doanh và xử lý logic cho
việc lọc, tổ chức, đóng gói và xử lý dữ liệu, nhưng không chứa đựng dữ liệu thật sự.
Thay vào đó nó chứa đựng những thông tin cần thiết để truy cập dữ liệu bất cứ nơi
đâu.
Kho dữ liệu thông minh hay dữ liệu theo chủ đề (Data mart)
Là tập con của một kho dữ liệu diện rộng. Điển hình là nó cung cấp những
thành phần lớn (phân khu, vùng, chức năng,…). Nói tóm lại, Data mart như là những
phần chuyên biệt hóa của kho dữ liệu.
1.2.6. Mô hình thực thể trong kho dữ liệu
Mô hình thực thể mối quan hệ được sử dụng phổ biến trong mô hình cơ sở dữ
liệu OLTP. Tuy nhiên, mô hình cơ sở dữ liệu ER này không thích hợp cho việc thiết
kế kho dữ liệu vì phải truy vấn tới quá nhiều bảng khác nhau. Hầu hết các kho dữ liệu
sử dụng mô hình sao (star schema). Mô hình này chỉ gồm duy nhất một bảng sự kiện
và một bảng chiều (dimention) cho mỗi chiều. Trong bảng sự kiện sẽ có các trường
khóa ngoài liên kết với khóa chính của các bảng chiều. Ví dụ về mô hình sao:
13



Mô hình sao không hỗ trợ tốt cho các bảng chứa các thuộc tính phân cấp. Mô
hình bông tuyết (SnowFlake Schema) đưa ra giải pháp cho mô hình sao khi bảng có
thuộc tính phân cấp.
OrderNo
OrderDate
CustomerNo
CustomerName
CustomerAddress
City
OrderNo

SalespersionID
CustomerNo
ProdNo
DateKey
CityName
Quantity
TotalPrice
CityName

State
Country
SalespersonID
SalespersonName
City
Quota

DateKey
Date
Month
Year

ProdNo
ProdName
ProdDescr
Category
CategoryDescr
UnitPrice
QOH
Orders


Custormers

Salespersons

Date

Fact Table

Products

City

Hình 2. Mô hình sao
14


Điều này giúp cho vệc bảo trì các bảng chiều tốt hơn. Tuy nhiên cấu trúc mặc định
trong sơ đồ sao của các bảng chiều có thể thích hợp hơn khi duyệt các chiều.
Sơ đồ chòm sao (fact constellation) là một ví dụ cho cấu trúc phức tạp khi có
nhiều hơn 1 bảng sự kiện. Mỗi sơ đồ sao có thể xây dựng thành sơ đồ chòm sao (ví dụ
bằng cách chia tách các lược đồ sao gốc thành các lược đồ sao mà mỗi chúng được mô
tả trên các cấp khác nhau của các chiều phân cấp). Các kiến trúc sơ đồ chòm sao bao
gồm nhiều bảng sự kiện và được chia sẻ cho nhiều bảng chiều.
OrderNo

OrderDate
Month

Year
OrderNo


SalespersonID
CustomerNo
DateKey
CityName
ProdNo
Quantity
TotalPrice
DateKey

Date
Month
SalespersonID

SalespersonName
City
Quota
ProdNo

ProdName
ProdDescr
Category
UnitPrice
QOH

CustomerNo

CustomerName
CustomerAddress
City

CategoryName

CategoryDescr
CityName

State
Orders
Customers
Fact table
Month
Year

Products
Category
Salesperson
Date
City
State

Hình 3. Mô hình bông tuyết
15


Hình 4. Mô hình chòm sao
1.2.7. Các lĩnh vực ứng dụng của kho dữ liệu
Các lĩnh vực hiện tại có ứng dụng data warehouse bao gồm:
- Thương mại điện tử.
- Kế hoạch hóa nguồn lực doanh nghiệp.
- Quản lý quan hệ khách hàng.
- Chăm sóc sức khỏe.

- Viễn thông.
16

Chương 2. Kỹ thuật phân tích OLAP

2.1. Giới thiệu OLAP
OLAP là một kỹ thuật sử dụng các thể hiện dữ liệu đa chiều gọi là các khối
(cube) nhằm cung cấp khả năng truy xuất nhanh đến dữ liệu của kho dữ liệu. Tạo khối
(cube) cho dữ liệu trong các bảng chiều (dimension table) và bảng sự kiện (fact table)
trong kho dữ liệu và cung cấp khả năng thực hiện các truy vấn tinh vi và phân tích cho
các ứng dụng client – theo Hari Mailvaganam [5].
Trong khi kho dữ liệu và data mart lưu trữ dữ liệu cho phân tích, thì OLAP là kỹ
thuật cho phép các ứng dụng client truy xuất hiệu quả dữ liệu này. OLAP cung cấp
nhiều lợi ích cho người phân tích, cho ví dụ như:
- Cung cấp mô hình dữ liệu đa chiều trực quan cho phép dễ dàng lựa chọn, định
hướng và khám phá dữ liệu.
- Cung cấp một ngôn ngữ truy vấn phân tích, cung cấp sức mạnh để khám phá các
mối quan hệ trong dữ liệu kinh doanh phức tạp.
- Dữ liệu được tính toán trước đối với các truy vấn thường xuyên nhằm làm cho
thời gian trả lời rất nhanh đối với các truy vấn đặc biệt.
- Cung cấp các công cụ mạnh giúp người dùng tạo các khung nhìn mới của dữ
liệu dựa trên một tập các hàm tính toán đặc biệt.
OLAP được đặt ra để xử lý các truy vấn liên quan đến lượng dữ liệu rất lớn mà
nếu cho thực thi các truy vấn này trong hệ thống OLTP sẽ không thể cho kết quả hoặc
sẽ mất rất nhiều thời gian.
2.2. Mô hình dữ liệu đa chiều
Các nhà quản lý kinh doanh có khuynh hướng suy nghĩ theo “nhiều chiều”
(multidimensionally). Ví dụ như họ có khuynh hướng mô tả những gì mà công ty làm
như sau:
“Chúng tôi kinh doanh các sản phẩm trong nhiều thị trường khác nhau, và chúng tôi

đánh giá hiệu quả thực hiện của chúng tôi qua thời gian”.
Những người thiết kế kho dữ liệu thường lắng nghe cẩn thận những từ đó và họ
thêm vào những nhấn mạnh đặc biệt của họ như:
“Chúng tôi kinh doanh các sản phẩm trong nhiều thị trường khác nhau, và chúng tôi
đánh giá hiệu quả thực hiện của chúng tôi qua thời gian”.
17

Suy nghĩ một cách trực giác, việc kinh doanh như một khối (cube) dữ liệu, với các
nhãn trên mỗi cạnh của khối (xem hình bên dưới). Các điểm bên trong khối là các giao
điểm của các cạnh. Với mô tả kinh doanh ở trên, các cạnh của khối là Sản phẩm, Thị
trường, và Thời gian. Hầu hết mọi người đều có thể nhanh chóng hiểu và tưởng tượng
rằng các điểm bên trong khối là các độ đo hiệu quả kinh doanh mà được kết hợp giữa
các giá trị Sản phẩm, Thị trường và Thời gian [5].
Thò tröôøng
Thôøi gian
Saûn phaåm

Hình 5. Mô phỏng các chiều trong kinh doanh

Một khối dữ liệu (datacube) thì không nhất thiết phải có cấu trúc 3 chiều (3-D),
nhưng về cơ bản là có thể có N chiều (N-D). Những cạnh của khối được gọi là các
chiều (dimensions), mà đó là các mặt hoặc các thực thể ứng với những khía cạnh mà
tổ chức muốn ghi nhận. Mỗi chiều có thể kết hợp với một bảng chiều (dimension
table) nhằm mô tả cho chiều đó. Ví dụ, một bảng chiều của Sản phẩm có thể chứa
những thuộc tính như Ma_sanpham, Mo_ta, Ten_sanpham, Loai_SP,… mà có thể
được chỉ ra bởi nhà quản trị hoặc các nhà phân tích dữ liệu. Với những chiều không
được phân loại, như là Thời gian, hệ thống kho dữ liệu sẽ có thể tự động phát sinh
tương ứng với bảng chiều (dimension table) dựa trên loại dữ liệu. Cần nói thêm rằng,
chiều Thời gian trên thực tế có ý nghĩa đặc biệt đối với việc hỗ trợ quyết định cho các
khuynh hướng phân tích. Thường thì nó được mong muốn có một vài tri thức gắn liền

với lịch và những mặt khác của chiều thời gian.
Hơn nữa, một khối dữ liệu trong kho dữ liệu phần lớn được xây dựng để đo hiệu
quả của công ty. Do đó một mô hình dữ liệu đa chiều đặc thù được tổ chức xung quanh
một chủ đề mà được thể hiện bởi một bảng sự kiện (fact table) của nhiều độ đo số học
(là các đối tượng của phân tích). Ví dụ, một bảng sự kiện có thể chứa số mặt hàng bán,
thu nhập, tồn kho, ngân sách,… Mỗi độ đo số học phụ thuộc vào một tập các chiều
cung cấp ngữ cảnh cho độ đo đó. Vì thế, các chiều kết hợp với nhau được xem như xác
định duy nhất độ đo, là một giá trị trong không gian đa chiều. Ví dụ như một kết hợp
18

của Sản phẩm, Thời gian, Thị trường vào 1 thời điểm là một độ đo duy nhất so với các
kết hợp khác.
Các chiều được phân cấp theo loại. Ví dụ như chiều Thời gian có thể được mô tả
bởi các thuộc tính như Năm, Quý, Tháng và Ngày. Mặt khác, các thuộc tính của một
chiều có thể được tổ chức vào một lưới mà chỉ ra một phần trật tự của chiều. Vì thế,
cũng với chiều Thời gian có thể được tổ chức thành Năm, Quý, Tháng, Tuần và Ngày.
Với sự sắp xếp này, chiều Thời gian không còn phân cấp vì có những tuần trong năm
có thể thuộc về nhiều tháng khác nhau.
Vì vậy, nếu mỗi chiều chứa nhiều mức trừu tượng, dữ liệu có thể được xem từ
nhiều khung nhìn linh động khác nhau. Một số thao tác điển hình của khối dữ liệu như
roll-up (tăng mức độ trừu tượng), drill-down (giảm mức độ trừu tượng hoặc tăng mức
chi tiết), slice and dice (chọn và chiếu), và pivot (định hướng lại khung nhìn đa chiều
của dữ liệu), cho phép tương tác truy vấn và phân tích dữ liệu rất tiện lợi. Những thao
tác đó được biết như Xử lý phân tích trực tuyến (OnLine Analytical Processing –
OLAP).
Những nhà ra quyết định thường có những câu hỏi có dạng như “tính toán và xếp
hạng tổng số lượng hàng hoá bán được theo mỗi quốc gia (hoặc theo mỗi năm)”. Họ
cũng muốn so sánh hai độ đo số học như số lượng hàng bán và ngân sách được tổng
hợp bởi cùng các chiều. Như vậy, một đặc tính để phân biệt của mô hình dữ liệu đa
chiều là nó nhấn mạnh sự tổng hợp của các độ đo bởi một hoặc nhiều chiều, mà đó là

một trong những thao tác chính yếu để tăng tốc độ xử lý truy vấn.
2.3. Kiến trúc khối (Cube) của OLAP
Đối tượng chính của OLAP là khối (cube), một thể hiện đa chiều của dữ liệu chi
tiết và tổng hợp. Một khối bao gồm một nguồn dữ liệu (Data source), các chiều
(Dimensions), các độ đo (Measures) và các phần dành riêng (Partitions). Các khối
được thiết kế dựa trên yêu cầu phân tích của người dùng. Một kho dữ liệu có thể hỗ trợ
nhiều khối khác nhau như khối Bán hàng, khối Bảng kiểm kê…
Dữ liệu nguồn của một khối chỉ ra nơi chứa kho dữ liệu cung cấp dữ liệu cho khối.
Các chiều (dimension) được ánh xạ từ các thông tin của các bảng chiều (dimension
table) trong kho dữ liệu vào các mức phân cấp, ví dụ như chiều Địa lý thì gồm các
mức như Lục địa, Quốc gia, Tỉnh-Thành phố. Các chiều có thể được tạo một cách độc
lập và có thể chia sẻ giữa các khối nhằm xây dựng các khối dễ dàng và để chắc chắn
rằng thông tin tổng hợp cho phân tích luôn ổn định. Ví dụ, nếu một chiều chia sẻ một
19

phân cấp sản phẩm và được sử dụng trong tất cả các khối thì cấu tạo của thông tin tổng
hợp về sản phẩm sẽ ổn định giữa các khối sử dụng chiều đó.
Một chiều ảo (virtual dimension) là một dạng đặc biệt của chiều mà ánh xạ các
thuộc tính từ các thành viên (member) của một chiều khác để sau đó có thể được sử
dụng trong các khối. Ví dụ, một chiều ảo của thuộc tính kích thước sản phẩm cho phép
một khối (cube) tổng hợp dữ liệu như số lượng sản phẩm bán được theo kích thước,
hoặc như số lượng áo bán được theo kiểu và theo kích thước. Các chiều ảo (virtual
dimension) và các thuộc tính thành viên được đánh giá là cần thiết cho các truy vấn và
chúng không đòi hỏi phải có các khối lưu trữ vật lý.
Các độ đo (measure) xác định các giá trị số từ bảng sự kiện (fact table) mà được
tổng hợp cho phân tích như giá bán, chi phí hoặc số lượng bán.
Các phần dành riêng (partition) là các vật chứa lưu trữ đa chiều, giữ dữ liệu của
khối. Mỗi khối chứa ít nhất một partition, và dữ liệu của khối có thể kết hợp từ nhiều
partition. Mỗi partition có thể lấy dữ liệu một nguồn dữ liệu khác nhau và có thể lưu
trong một vị trí riêng biệt (separate). Dữ liệu của một partition có thể được cập nhật

độc lập với các partition khác trong một khối. Ví dụ, dữ liệu của một khối có thể được
chia theo thời gian, với một partition chứa dữ liệu của năm hiện hành, một partition
khác chứa dữ liệu của năm trước, và một partition thứ ba chứa tất cả dữ liệu của các
năm trước nữa.
Các partition của một khối có thể được lưu trữ độc lập trong các cách thức khác
nhau với các mức độ tổng kết khác nhau. Các partition không thể hiện đối với người
dùng, đối với họ một khối (cube) là một đối tượng đơn, và chúng cung cấp các tuỳ
chọn đa dạng để quản lý dữ liệu OLAP.
Một khối ảo (virtual cube) là một khung nhìn luận lý (logic) của các phần chia của
một hoặc nhiều khối. Một khối ảo có thể được sử dụng để nối (join) các khối khác
nhau để chia sẻ một chiều chung nào đó, ví dụ như có thể kết giữa khối Bán hàng và
khối Kho nhằm các mục đích phân tích đặc biệt nào đó trong khi duy trì các khối tách
biệt cho đơn giản. Các chiều (dimension) và các độ đo (measure) có thể được chọn từ
các khối được kết để thể hiện trong khối ảo.
2.4. So sánh OLAP và OLTP
Đặc trưng của các ứng dụng OLTP (On-Line Transaction Processing) là các tác vụ
xử lý tự động ghi chép dữ liệu xử lý tác vụ của một tổ chức như ghi nhận đơn đặt hàng
và các giao dịch ngân hàng (chúng là những công việc hàng ngày của tổ chức thương
mại) mà cần phải đọc hoặc cập nhật một vài mẩu tin dựa trên khoá chính của chúng[5].
20

Những tác vụ đó có cấu trúc, được lặp lại, bao gồm các giao dịch ngắn, tối giản và tách
biệt, yêu cầu dữ liệu chi tiết và mới cập nhật. Các cơ sở dữ liệu tác nghiệp có xu
hướng từ vài trăm megabyte đến hàng gigabyte kích thước và chỉ lưu trữ các dữ liệu
hiện hành. Tính nhất quán và khả năng phục hồi của cơ sở dữ liệu là then chốt, và tối
đa thông lượng giao dịch là thước đo chính yếu. Vì thế cơ sở dữ liệu được thiết kế để
tối thiểu các xung đột trùng lặp.
Còn kho dữ liệu, mục tiêu là hỗ trợ quyết định cho các nhà quản lý. Tính chi tiết và
riêng lẻ của các mẩu tin thì ít quan trọng hơn tính lịch sử, tổng kết và hợp nhất của dữ
liệu. Do đó, kho dữ liệu thường chứa dữ liệu hợp nhất từ một hoặc nhiều cơ sở dữ liệu

tác nghiệp và được thu thập qua một thời gian dài. Kết quả là kích thước kho dữ liệu
có khuynh hướng từ vài trăm gigabyte đến hàng terabyte so với các cơ sở dữ liệu tác
nghiệp. Kho dữ liệu hỗ trợ các truy vấn phức tạp với thời gian hồi đáp nhanh, các truy
vấn phức tạp có thể truy xuất hàng triệu mẩu tin và thực hiện nhiều lần các thao tác
quét, kết và tổng hợp. Đối với kho dữ liệu, số lượng truy vấn đưa vào và thời gian hồi
đáp quan trọng hơn số lượng giao dịch đưa vào. Mà OLAP là một trong những công
cụ cho phép thực hiện hiệu quả các truy vấn này.
Căn cứ vào đó, các cơ sở dữ liệu tác nghiệp được xây dựng để hỗ trợ tốt các tác vụ
OLTP, vì thế nếu cố gắng thực thi các truy vấn OLAP phức tạp đối với các cơ sở dữ
liệu tác nghiệp sẽ cho kết quả là hiệu quả thực hiện không thể chấp nhận được.
2.5. Các thành phần của OLAP
Những thành phần mà OLAP sử dụng để thực hiện các dịch vụ bao gồm:
- Nguồn dữ liệu: Các cơ sở dữ liệu OLTP và các nguồn dữ liệu hợp lệ khác chứa
các dữ liệu có thể chuyển đổi thành dữ liệu OLAP trong kho lưu trữ.
- Kho trung gian: là nơi lưu trữ và xử lý dữ liệu được tập hợp, sau đó được sắp
xếp, sàng lọc, chuyển đổi thành dữ liệu OLAP hữu ích.
- Máy chủ lưu trữ: Các máy tính chạy cơ sở dữ liệu liên kết chứa các kho dữ liệu
cho kho lưu trữ, và các máy chủ quản lý dữ liệu OLAP (warehouse server).
- Ứng dụng thông minh: Các bộ công cụ và ứng dụng thực hiện truy vấn dữ liệu
OLAP và cung cấp các báo cáo và thông tin cho người ra quyết định của doanh
nghiệp (Business Intelligence).
- Siêu dữ liệu: Các đối tượng như các bảng biểu trong cơ sở dữ liệu OLTP, các
khối trong kho lưu trữ dữ liệu, và các bản ghi mà ứng dụng tham chiếu tới các đoạn
dữ liệu khác nhau.
21

2.6. Chuyển đổi dữ liệu từ OLTP tới OLAP
Để chuyển đổi dữ liệu OLTP sang dữ liệu OLAP trong kho dữ liệu được thực hiện
thông qua các qui trình sau:
- Hợp nhất dữ liệu: tất cả các dữ liệu liên quan tới các mục đặc trưng (sản phẩm,

khách hàng, hay nhân viên) phải có khả năng hợp nhất từ nhiều hệ thống OLTP tới
một hệ thống OLAP đơn. Quy trình hợp nhất phải giải quyết được sự khác nhau về
mã hoá giữa các hệ thống OLAP, phù hợp với các dữ liệu chung được sử dụng ở cả
hai hệ thống có thể bằng cách so sánh các trường tương tự, có thể biến đổi dữ liệu
lưu trữ từ nhiều loại dữ liệu khác nhau trong mỗi hệ thống OLTP thành một loại dữ
liệu duy nhất được sử dụng trong hệ thống OLAP.Các hệ thống cung cấp các dữ
liệu đầu vào cho một hệ thống OLAP không nhất thiết phải là các hệ thống OLTP
truyền thống mà có thể được lưu trữ ở nhiều dạng hợp lệ, chẳng hạn như các bản
ghi Microsoft Excel trong một tệp được chia sẻ.
- Quét dữ liệu: Việc hợp nhất dữ liệu OLTP vào một kho dữ liệu (data
warehouse) tạo điều kiện quét dữ liệu. Một số hệ thống OLTP đánh vần các đề mục
khác nhau, hoặc quá trình hợp nhất có thể gây ra các lỗi chính tả. Sự không thống
nhất này phải được chỉnh sửa trước khi dữ liệu có thể được nhập vào kho lưu trữ
phục vụ cho hệ thống OLAP.
- Tập hợp dữ liệu: Dữ liệu OLTP ghi nhận tất cả các chi tiết của transaction.
OLAP chỉ truy vấn những dữ liệu tổng kết cần thiết, hoặc các dữ liệu được tập hợp
bằng một số quy tắc nhất định. Ví dụ, một truy vấn lấy tổng doanh thu hàng tháng
cho mỗi sản phẩm trong năm trước sẽ chạy nhanh hơn nếu cơ sở dữ liệu chỉ có các
dòng tổng kết doanh thu hàng ngày (hoặc từng giờ) của mỗi sản phẩm, so với truy
vấn phải quét tất cả các bản ghi chi tiết trong vòng 1 năm. Mức độ tập hợp dữ liệu
trong kho lưu trữ phụ thuộc vào số lượng các yếu tố thiết kế (giống như lập trình
hướng đối tượng).
- Sắp xếp dữ liệu: Khi dữ liệu OLTP được chuyển vào kho lưu trữ, chúng sẽ
phải được biến đổi theo cách sắp xếp hợp lý hơn đối với nhu cầu phân tích nhằm
đưa ra quyết định và hạn chế tiêu phí thời gian. Quá trình thiết lập kho lưu trữ bao
gồm cả việc sắp xếp lại dữ liệu OLTP, lưu trong các bảng biểu liên kết, thành dữ
liệu OLAP được lưu trong các khối đa chiều. Dữ liệu sau đó được tải vào kho lưu
trữ.
- Truy cập và phân tích dữ liệu: Khi dữ liệu đã được tải vào kho lưu trữ, OLAP
cung cấp khả năng truy cập, xem, và phân tích dữ liệu với độ linh hoạt và hiệu quả

22

cao. OLAP trình bày dữ liệu thông qua mô hình dữ liệu tự nhiên và trực quan, giúp
cho người sử dụng xem và hiểu một cách tốt nhất những thông tin trong kho lưu
trữ. Từ đó cho phép người sử dụng nhận biết được giá trị của dữ liệu.
2.7. Các mô hình lưu trữ hỗ trợ OLAP
Dịch vụ OLAP hỗ trợ nhiều mô hình lưu trữ dữ liệu khác nhau, mỗi mô hình có các
ưu và khuyết điểm riêng, chúng được sử dụng tuỳ theo mục đích khai thác.
2.7.1. Mô hình Multidimentional OLAP (MOLAP)
Mô hình OLAP đa chiều (MOLAP) lưu trữ dữ liệu cơ sở (là dữ liệu từ các bảng
của kho dữ liệu hoặc data mart) và thông tin tổng hợp (là các độ đo được tính toán từ
các bảng) trong các cấu trúc đa chiều gọi là các khối (cube). Các cấu trúc này được lưu
bên ngoài cơ sở dữ liệu data mart hoặc kho dữ liệu.


Lưu trữ các khối (cube) trong cấu trúc MOLAP là tốt nhất cho các truy vấn tổng hợp
dữ liệu thường xuyên mà cần thời gian hồi đáp nhanh. Ví dụ, tổng sản phẩm bán được
của tất cả các vùng theo quý.
Ưu điểm của mô hình MOLAP:
- Thực thi nhanh: khối trong MOLAP thu hồi dữ liệu nhanh và tối ưu hóa
hoạt động[15].
- Có thể thực hiện các phép toán phức tạp: mọi tính toán được tạo ra trước
khi khối tạo ra [15].
Mysql
MOLAP
data
Oracle
Other
Dữ liệu trong môi
trường OLAP

Hình 6. Mô hình dữ liệu MOLAP

×