Xây dựng kho dữ liệu quản lý thông tin dịch vụ khách hàng của VinaphoneXây dựng kho dữ liệu quản lý thông tin dịch vụ khách hàng của VinaphoneXây dựng kho dữ liệu quản lý thông tin dịch vụ khách hàng của VinaphoneXây dựng kho dữ liệu quản lý thông tin dịch vụ khách hàng của VinaphoneXây dựng kho dữ liệu quản lý thông tin dịch vụ khách hàng của VinaphoneXây dựng kho dữ liệu quản lý thông tin dịch vụ khách hàng của VinaphoneXây dựng kho dữ liệu quản lý thông tin dịch vụ khách hàng của VinaphoneXây dựng kho dữ liệu quản lý thông tin dịch vụ khách hàng của VinaphoneXây dựng kho dữ liệu quản lý thông tin dịch vụ khách hàng của VinaphoneXây dựng kho dữ liệu quản lý thông tin dịch vụ khách hàng của VinaphoneXây dựng kho dữ liệu quản lý thông tin dịch vụ khách hàng của VinaphoneXây dựng kho dữ liệu quản lý thông tin dịch vụ khách hàng của Vinaphone
Trang 2LUẬN VĂN THẠC SĨ KỸ THUẬT
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS LÊ HỮU LẬP
HÀ NỘI – 2018
Trang 3LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi
Các số liệu, kết quả nêu trong luận văn là trung thực và chƣa từng đƣợc
ai công bố trong bất kì tài liệu nào khác
Tác giả
Hoàng Nguyễn Phúc
Trang 4LỜI CẢM ƠN
Để hoàn thành được luận văn này, ngoài sự nghiên cứu và những cố gắng của bản thân, em xin gửi lời cảm ơn sâu sắc tới giảng viên hướng dẫn Khoa học PGS.TS Lê Hữu Lập đã tận tình chỉ bảo và định hướng cho em trong suốt quá trình nghiên cứu và thực hiện luận văn
Em xin gửi lời cảm ơn chân thành các thầy cô giảng viên trong Khoa Quốc Tế và Sau Đại Học, Khoa Công Nghệ Thông Tin, Khoa Cơ Bản của Học Viện Công Nghệ Bưu Chính Viễn Thông đã tận tình giảng dạy, hướng dẫn em trong suốt quá trình học tập và nghiên cứu ở Học Viện Bưu chính Viễn Thông
Cuối cùng, em xin gửi lời cảm ơn tới gia đình, bạn bè và những người
đã luôn ở bên em cổ vũ tinh thần, tạo điều kiện thuận lợi cho em để em có thể học tập tốt và hoàn thiện luận văn
Em xin chân thành cảm ơn!
Học viên
Hoàng Nguyễn Phúc
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT v
DANH MỤC HÌNH VẼ vi
DANH MỤC CÁC BẢNG viii
MỞ ĐẦU 1
CHƯƠNG 1 TỔNG QUAN VỀ KHO DỮ LIỆU 3
1.1 Định nghĩa về kho dữ liệu 3
1.2 Đặc tính của kho dữ liệu 5
1.2.1 Hướng chủ đề (Subject-oriented) 5
1.2.2 Tích hợp (Integrated) 5
1.2.3 Tính thời gian cụ thể (Time-variant) 5
1.2.4 ít thay đổi (nonvalatile) 6
1.2.5 Dữ liệu chi tiết và dữ liệu tổng hợp 6
1.3 Lợi ích của kho dữ liệu 6
1.4 Một số thuật ngữ trong kho dữ liệu 7
1.4.1 OLTP và OLAP 7
1.4.2 Tiến trình ETL (Extract, Transform & Load) 8
1.4.3 Kho dữ liệu chủ đề (Data Mart) 9
1.4.4 Siêu dữ liệu (Metadata) 11
1.5 Kiến trúc kho dữ liệu 12
1.6 Mô hình dữ liệu đa chiều 14
1.6.1 Các khái niệm chính của mô hình dữ liệu đa chiều 15
1.6.2 Đặc điểm của mô hình dữ liệu đa chiều 15
1.6.3 Lược đồ lưu trữ dữ liệu đa chiều 17
1.6.4 Kỹ thuật OLAP 19
1.7 Kết luận chương 21
CHƯƠNG 2 PHƯƠNG PHÁP THIẾT KẾ KHO DỮ LIỆU 22
2.1 Xác định yêu cầu nghiệp vụ 22
Trang 62.1.1 Xác định mục đích xây dựng kho dữ liệu 22
2.1.2 Phạm vi xây dựng kho dữ liệu 24
2.2 Xác định mô hình kiến trúc kho dữ liệu 25
2.3 Xác định bảng chiều, bảng sự kiện 25
2.3.1 Xác định bảng chiều 25
2.3.2 Xác định bảng sự kiện 27
2.4 Xây dựng lược đồ lưu trữ dữ liệu 31
2.5 Tích hợp dữ liệu từ nguồn dữ liệu vào kho dữ liệu 32
2.5.1 Trích xuất dữ liệu 32
2.5.2 Biến đổi dữ liệu 33
2.5.3 Nạp dữ liệu 35
2.6 Khai thác và phân tích kho dữ liệu 35
2.7 Kết luận chương 36
CHƯƠNG 3 XÂY DỰNG KHO DỮ LIỆU THỬ NGHIỆM QUẢN LÝ THÔNG TIN DỊCH VỤ KHÁCH HÀNG CỦA DOANH NGHIỆP VIỄN THÔNG(VINAPHONE) 37
3.1 Bài toán xây dựng kho dữ liệu của Vinaphone 37
3.2 Xây dựng kho dữ liệu thử nghiệm 38
3.2.1 Mô hình kiến trúc của kho dữ liệu 39
3.2.2 Xác định nguồn dữ liệu 39
3.2.3 Xác định các bảng chiều, bảng sự kiện, xây dựng lược đồ hình sao 46
3.2.4 Cài đặt kho dữ liệu quản lý dịch vụ khách hàng trên SQL Server 52
3.2.5 Tích hợp dữ liệu từ nguồn dữ liệu vào kho dữ liệu 54
3.2.6 Phân tích dữ liệu hỗ trợ ra quyết định trong quản lý 63
3.3 Kết luận chương 66
KẾT LUẬN 68
DANH MỤC CÁC TÀI LIỆU THAM KHẢO 70
Trang 7DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
Viết tắt Tiếng Anh Tiếng Việt
CSDL Database Cơ sở dữ liệu
DM Data Mart Kho dữ liệu chủ đề
ETL Extract, Transform &
OLTP Online Transaction
Processing
Hệ thống xử lý giao dịch thời gian thực
SSAS SQL Server Analysis
Services SSIS SQL Server Integration
Services
Trang 8DANH MỤC HÌNH VẼ
Hình 1.1 Kiến trúc tổng thể của một hệ thống Data Warehouse [2] 3
Hình 1.2 Tiến trình ETL [11] 8
Hình 1.3 Kho dữ liệu chủ đề (Data Mart) 9
Hình 1.4 Datamart phụ thuộc 10
Hình 1.5 Datamart độc lập 10
Hình 1.6 Kiến trúc ba tầng của kho dữ liệu 12
Hình 1.7 Lƣợc đồ hình sao quản lý bán hàng 17
Hình 1.8 Lƣợc đồ hình bông tuyết quản lý bán hàng 18
Hình 1.9 Đặc tính Roll-up của OLAP 20
Hình 1.10 Đặc tính Drill- down của OLAP 21
Hình 2.1 Quy trình thiết kế một kho dữ liệu 22
Hình 2.2 Cấu trúc cơ bản một bảng chiều [12] 26
Hình 2.3 Cấu trúc bảng chiều thời gian 27
Hình 2.4 Cấu trúc cơ bản của một bảng sự kiện 28
Hình 3.1 Kiến trúc kho dữ liệu dịch vụ khách hàng 39
Hình 3.2 Mô hình thực thể quan hệ cơ sở dữ liệu nguồn 40
Hình 3.3 Tạo dữ liệu bảng VungMien 43
Hinh 3.4 Tạo dữ liệu bảng NhomKH 43
Hinh 3.5 Tạo dữ liệu bảng TinhThanh 43
Hinh 3.6 Tạo dữ liệu bảng ChiNhanh 44
Hinh 3.7 Tạo dữ liệu bảng NhomDichVu 44
Hinh 3.8 Tạo dữ liệu bảng DichVu 45
Hinh 3.9 Tạo dữ liệu bảng GiaoDich 45
Hình 3.10 Bảng chiều thời gian _DimDate 46
Hình 3.11 Nạp dữ liệu cho bảng chiều thời gian 47
Hình 3.12 Bảng chiều dịch vụ_DimService 48
Hình 3.13 Bảng chiều chi nhánh_DimBranch 49
Hình 3.14 Bảng chiều nhóm khách hàng_DimCusGroup 50
Hình 3.15 Bảng sự kiện dịch vụ khách hàng_FactServiceCustomer 51
Hình 3.16 Lƣợc đồ hình sao Kho dữ liệu dịch vụ khách hàng Vinaphone 52
Trang 9Hình 3.17 Tiến trình ETL—Extract, Transform, Load 54
Hình 3.18 Khởi động SQL Server Data Tools for Visual Studio 2012 55
Hình 3.19 Tạo một Integration Services Project có tên LuanvanThs_SSIS_V2 55
Hình 3.20 Tạo Data Flow cho một package trong SSIS project 56
Hình 3.21 Các SSIS toolbox thường được sử dụng khi xử lý ETL 56
Hình 3.22 ETL cho bảng chiều dịch vụ 58
Hình 3.23 ETL cho bảng chiều chi nhánh 59
Hình 3.24 ETL cho bảng chiều nhóm khách hàng 59
Hình 3.25 ETL cho bảng sự kiện dịch vụ khách hàng 60
Hình 3.26 Tạo một Analysis Services Project có tên LuanvanThs_SSAS_V2 63
Hình 3.27 Cube cho kho dữ liệu gồm 4 dimensions và một measure 64
Hình 3.28 Thống kê lượng thuê bao ĐKSD dịch vụ trên toán quốc năm 2017 64
Hình 3.29 Thống kê lượng thuê bao ĐKSD dịch vụ năm 2017 theo NhomKH 65
Hình 3.30 Báo cáo lượng thuê bao ĐKSD dịch vụ trong tháng 1 năm 2017 theo TinhThanh 66
Hình 3.31 Biểu đồ thống kê lượng thuêbao ĐKSD dịch vụ trong năm 2017 của Vinaphone Hà Nội 66
Trang 10DANH MỤC CÁC BẢNG
Bảng 1.1 So sánh OLTP và OLAP 7
Bảng 1.2 So sánh lược đồ hình sao và lược đồ bông tuyết 19
Bảng 3.1 Bảng dữ liệu VungMien 40
Bảng 3.2 Bảng dữ liệu TinhThanh 41
Bảng 3.3 Bảng dữ liệu ChiNhanh 41
Bảng 3.4 Bảng dữ liệu NhomDichVu 41
Bảng 3.5 Bảng dữ liệu DichVu 41
Bảng 3.6 Bảng dữ liệu NhomKH 41
Bảng 3.7 Bảng dữ liệu Khachhang 42
Bảng 3.8 Bảng dữ liệu Giaodich 42
Bảng 3.9 Đặc tả bảng chiều thời gian 47
Bảng 3.10 Đặc tả bảng chiều dịch vụ_DimService 48
Bảng 3.11 Đặc tả bảng chiều ChiNhanh_DimBranch 49
Bảng 3.12 Đặc tả bảng chiều nhóm khách hàng_DimCusGroup 50
Bảng 3.13 Đặc tả bảng sự kiện_FactServiceCustomer 51
Bảng 3.14 Bảng DimDate 53
Bảng 3.15 Bảng DimService 53
Bảng 3.16 Bảng DimBranch 53
Bảng 3.17 Bảng DimCusGroup 53
Bảng 3.18 Bảng FactServiceCustomer 54
Bảng 3.19 Một số SSIS toolbox thường sử dụng 57
Bảng 3.20 Dữ liệu của bảng chiều DimCusGroup 61
Bảng 3.21 Dữ liệu của bảng DimService 61
Bảng 3.22 Dữ liệu của bảng DimBranch 62
Bảng 3.23 Dữ liệu của bảng FactServiceCustomer 62
Trang 11MỞ ĐẦU
Trong những năm qua cùng với sự phát triển CNTT, các hệ thống thông tin
đã được phát triển mạnh cả vể số lượng lẫn chất lượng, đặc biệt trong nhiều doanh nghiệp tồn tại nhiều hệ thống thông tin đa dạng và phong phú Các lãnh đạo doanh nghiệp thì luôn thiếu thông tin phục vụ điều hành, chưa kể đến có những thông tin sai lệch thậm chí mâu thuẫn về cùng một sự việc trong khi doanh nghiệp đang sở hữu một khối lượng dữ liệu khổng lồ
Đến thời điểm hiện nay, phương pháp xây dựng kho dữ liệu (Data Warehousing) đã phát triển cả vềlý thuyết cũng như thực tế Lý thuyết xây dựng kho dữ liệu đã được hình thành khá rõ nét, bên cạnh đó các nhà cung cấp phần mềm cũng đã đưa ra các công cụ để xây dựng, duy trì và phát triển kho dữ liệu Một kho
dữ liệu sẽ giúp doanh nghiệp có khả năng quản lý dữ liệu, khai thác thông tin phục
vụ việc điều hành kinh đoanh phù hợp hơn
Cũng như các doanh nghiệp khác, Vinaphone có một mạng lưới các ứng dụng nghiệp vụ cục bộ tại từng đơn vị thành viên Việc tập hợp và quản trị dữ liệu trên phạm vi toàn ngành để cung cấp thông tin cho "quá trình phân tích, hoạch định chiến lược, hỗ trợ ra quyết định" trong môi trường cạnh tranh và hội nhập là một thách thức lớn mà Vinaphone đang tìm hướng giải quyết
Xuất phát từ thực tế này, học viên chọn đề tài ―Xây dựng Kho dữ liệu quản
lý thông tin dịch vụ khách hàng của Vinaphone‖ Đề tài được thực hiện với
những tiêu chuẩn cơ bản về các dịch vụ thông tin di động và khách hàng trong mỗi doanh nghiệp viễn thông, chẳng hạn như Vinaphone Đề tài này nghiên cứu lý thuyết, nắm chắc phương pháp luận và một công cụ xây dựng kho dữ liệu cụ thể, tạo nền tảng triển khai xây dựng một kho dữ liệu thực tế-hướng giải quyết yêu cầu củađề tài nói trên
Ngoài phần mở đầu và kết luận, nội dung chính của luận văn được trình bày trong 3 chương:
Trang 12Chương 1 Tổng quan về kho dữ liệu
Trình bày cơ sở lý thuyết của kho dữ liệu với các nội dung như : định nghĩa
về kho dữ liệu, các đặc tính của kho dữ liệu, lợi ích của kho dữ liệu, một số thuật ngữ dùng trong kho dữ liệu, kiến trúc của kho dữ liệu và mô hình dữ liệu đa chiều
Chương 2 Phương pháp thiết kế kho dữ liệu
Trình bày quy trình thiết kế một kho dữ liệu gồm 6 pha cơ bản đó là: xác định yêu cầu nghiệp vụ, xác định mô hình kiến trúc, xác định các bảng chiều, bảng
sự kiện, xây dựng lược đồ, tích hợp dữ liệu từ nguồn dữ liệu vào kho dữ liệu và khai thác, phân tích kho dữ liệu
Chương 3 Xây dựng kho dữ liệu thử nghiệm quản lý thông tin dịch vụ khách hàng của doanh nghiệp viễn thông(Vinaphone)
Giới thiệu bài toán xây dựng kho dữ liệu quản lý thông tin dịch vụ khách hàng của doanh nghiệp viễn thông cụ thể là Vinaphone đồng thời tiến hành xây dựng một kho dữ liệu thử nghiệm giải quyết bài toán này
Mặc dù đã có nhiều cố gắng nhưng do thời gian và trình độ còn hạn chế, luận văn không tránh khỏi những thiếu sót Kính mong các thầy cô và đồng nghiệp thông cảm
Tác giả
Trang 13CHƯƠNG 1 TỔNG QUAN VỀ KHO DỮ LIỆU
Chương này giới thiệu cơ sở lý thuyết của kho dữ liệu bao gồm các nội dung như: định nghĩa về kho dữ liệu, đặc tính của kho dữ liệu, lợi ích của kho dữ liệu, kiến trúc kho dữ liệu, mô hình dữ liệu đa chiều và một số thuật ngữ trong kho dữ liệu
1.1 Định nghĩa về kho dữ liệu
Hình 1.1 Kiến trúc tổng thể của một hệ thống Data Warehouse[2]
Kho dữ liệu là hệ thống cơ sở dữ liệu máy tính được thiết kế, sắp xếp có mục đích và định hướng rõ ràng của một tổ chức nhằm mục đích quản lý, cung cấp thông tin một cách kịp thời, chính xác, đồng thời là nền tảng cho việc xây dựng các ứng phân tích dữ liệu, hỗ trợ quyết định (xem hình 1.1)
Có ý kiến cho rằng các cơ sở dữ liệu nghiệp vụ thông thường vẫn có thể hỗ trợ việc lên các báo cáo thống kê, hỗ trợ quyết định vì vậy chúng ta không cần thiết phải xây dựng kho dữ liệu Trong thực tế, đối với các cơ sở dữ liệu có kích thước nhỏ, số lượng bản ghi ít thì việc xây dựng kho dữ liệu là không cần thiết Tuy nhiên
Trang 14với cơ sở dữ liệu có hàng chục triệu đến trăm triệu bản ghi thì việc phân tích, khai thác dữ liệu thông qua các báo cáo thống kê sẽ phát sinh hàng loạt vấn đề:
- Người xây dựng báo cáo không hiểu mối quan hệ phức tạp giữa các bảng dữ liệu trong một loạt cơ sở dữ liệu của các ứng dụng nghiệp vụ khác nhau
- Cơ sở dữ liệu của các ứng dụng nghiệp vụ có thể để rải rác trên nhiều server, rất khó cho việc tìm kiếm các bảng dữ liệu để xây dựng câu truy vấn
- Việc phân quyền nghiêm ngặt không cho phép người dùng có thể lấy dữ liệu chi tiết
- Người quản trị cơ sở dữ liệu hạn chế việc chạy các câu truy vấn lớn nhằm ngăn chặn nguy cơ làm tê liệt hệ thống
Qua đó để thấy rằng các hệ thống nghiệp vụ hiện nay với cơ sở dữ liệu sẵn
có không đủ linh hoạt cho mục đích lên báo cáo, phân tích dữ liệu hỗ trợ ra quyết định trong kinh doanh Điều này dẫn đến sự ra đời của kho dữ liệu
Kho dữ liệu ra đời với mục tiêu lưu trữ, quản lý dữ liệu tập trung đồng thời tạo một nền tảng thuận lợi để người dùng có thể khai thác, phân tích số liệu trong kho dữ liệu thông qua những kỹ thuật hỗ trợ trực tuyến OLAP
Kho dữ liệu cung cấp những lợi ích sau tới người dùng phân tích số liệu:
- Dữ liệu được tổ chức để tạo thuận lợi cho các truy vấn phân tích chứ không phải cho việc xử lý các nghiệp vụ thường ngày như thêm, sửa , xóa
- Sự khác biệt về cấu trúc dữ liệu được lưu trữ trên nhiều nguồn dữ liệu không đồng nhất sẽ được giải quyết
- Những quy tắc thống nhất sẽ được áp dụng khi hợp nhất dữ liệu từ các hệ thống không đồng nhất sang kho dữ liệu
- Tính bảo mật và hiệu suất có thể được cải thiện mà không cần phải thực hiện bất kỳ sửa đổi nào trên hệ thống dữ liệu gốc
Có nhiều định nghĩa khác nhau về kho dữ liệu nhưng định nghĩa về kho dữ liệu của Bill Inmon[6]là phổ biến nhất : ―Kho dữ liệu là tập hợp dữ liệu hướng chủ
đề, mang tính tích hợp, ít thay đổi, và mỗi đơn vị dữ liệu đều gắn với một khoảng thời gian cụ thể Kho dữ liệu được thiết kế để hỗ trợ quản trị hệ hỗ trợ quyết định‖
Trang 151.2 Đặc tính của kho dữ liệu
Theo định nghĩa của Bill Inmon kho dữ liệu có 4 đặc tính cơ bản gồm[6]:
Hướng chủ đề (Subject Oriented), Tích hợp (Integrated), Tính thời gian cụ thể
(Time Variant) và ít thay đổi (Nonvalatile) Một số định nghĩa khác về kho dữ liệu
có bổ sung thêm tính chất kho dữ liệu bao gồm cả dữ liệu chi tiết và dữ liệu tổng hợp
1.2.1 Hướng chủ đề (Subject-oriented)
Dữ liệu được tập hợp, phân lớp, lưu trữ và xử lý theo từng chủ đề.Các dữ liệu của mỗì chủ đề chính trong tổ chức được liên kết bởi các khoá đại diện và đưa vào cùng một vị trí Ví dụ dữ liệu liên quan đến: khách hàng, sản phẩm, tài chính, bán hàng
Cấu trúc dữ liệu theo một cách thức chung được chấp nhận mặc dù xuất phát
từ rất nhiều cấu trúc dữ liệu nguồn khác nhau Dữ liệu tích hợp phải đảm bảo tính nhất quán, đôi khi chấp nhận tính dư thừa để tăng tính hiệu quả của các truy vấn 1.2.3 Tính thời gian cụ thể (Time-variant)
Một kho dữ liệu bao hàm một khối lượng lớn dữ liệu lịch sử Dữ liệu được lưu trữ thành một loạt các bản sao (snapshort), mỗi bản sao phản ánh những giá trị của dữ liệu tại một thời điểm nhất định, thể hiện một khung nhìn của một vùng chủ
đề trong một giai đoạn
Do vậy cho phép khôi phục lai dữ liệu lịch sử và so sánh một cách chính xác các giai đoạn khác nhau Yếu tố thời gian đóng vai trò như một phần của khóa để đảm bảo tính đơn nhất của mỗi hàng và cung cấp đặc trưng về thời gian cho dữ liệu
Trang 161.2.4 ít thay đổi (nonvalatile)
Dữ liệu trong kho dữ liệu là dữ liệu chỉ đọc Dữ liệu được tải vào kho dữ liệu
ở lần đầu tiên dưới dạng bản sao tại một thời điểm và sau đó thường xuyên được làm tươi (Refresh) Chu kỳ làm tươi được xác định tùy theo yêu cầu nghiệp vụ, có những kho dữ liệu đòi hỏi được làm tươi hàng ngày trong khi có những kho dữ liệu chỉ cần đươc làm tươi hàng tháng
Thông tin trong kho dữ liệu được tải vào sau khi dữ liệu trong hệ thống điều hành tác nghiệp được xác định Tính ít biến đổi thể hiện ở chỗ: Dữ liệu được lưu trữ lâu dài trong kho dữ liệu, mặc dù có thêm dữ liệu mới nhập vào nhưng dữ liệu cũ trong kho vẫn không bị xóa, điều đó cho phép cung cấp thông tin về một khoảng thời gian dài, cung cấp đủ số liệu cần thiết cho các mô hình nghiệp vụ phân tích, dự báo
1.2.5 Dữ liệu chi tiết và dữ liệu tổng hợp
Dữ liệu chi tiết là thông tin mức thấp nhất được lưu trữ trong kho dữ liệu Dữ liệu tác nghiệp là thông tin mức thấp nhất cho toàn xí nghiệp Dữ liệu tác nghiệp thuần túy không được lưu trữ trong kho dữ liệu Dữ liệu tổng hợp là dữ liệu được kết hợp từ dữ liệu chi tiết và lưu qua nhiều giai đoạn khác nhau
1.3 Lợi ích của kho dữ liệu
Mục tiêu chung cho tất cả các doanh nghiệp là đưa ra quyết định kinh doanh tốt hơn so với đối thủ cạnh tranh Khi một kho dữ liệu được triển khai vào kế hoạch kinh doanh, các công ty có thể hưởng lợi từ nó bằng nhiều cách[9]:
- Ra quyết định tốt hơn: Các nhà hoạch định chính sách của công ty sẽ không còn phải đưa ra các quyết định kinh doanh quan trọng dựa trên dữ liệu có hạn
và linh cảm Kho dữ liệu lưu trữ dữ liệu và số liệu thống kê đáng tin cậy và người ra quyết định sẽ có thể lấy thông tin từ kho dữ liệu dựa trên nhu cầu cá nhân của họ
- Truy cập dữ liệu nhanh và dễ dàng: Tốc độ là một yếu tố quan trọng giúp doanh nghiệp vượt trên đối thủ cạnh tranh Người dùng doanh nghiệp có thể nhanh chóng truy cập dữ liệu từ nhiều nguồn từ kho dữ liệu, có nghĩa là thời
Trang 17gian sẽ không bị lãng phí khi thực hiện việc lấy dữ liệu từ nhiều nguồn Điều này cho phép đƣa các quyết định nhanh chóng và chính xác, với sự hỗ trợ ít hoặc không có từ bộ phận công nghệ thông tin của công ty
- Chất lƣợng dữ liệu và tính nhất quán: Do các kho dữ liệu thu thập thông tin
từ các nguồn khác nhau và chuyển đổi nó thành một định dạng duy nhất và đƣợc sử dụng rộng rãi, các phòng ban sẽ tạo ra các kết quả phù hợp và nhất quán với nhau Khi dữ liệu đƣợc chuẩn hóa với sự chính xác cao sẽ hỗ trợ các quyết định kinh doanh trở nên thuyết phục hơn
Kho dữ liệu là cần thiết cho bất kỳ doanh nghiệp nào muốn có lợi từ những quyết định kinh doanh đúng đắn
1.4 Một số thuật ngữ trong kho dữ liệu
1.4.1 OLTP và OLAP
Bảng 1.1 So sánh OLTP và OLAP
Trang 18OLTP – Hệ thống xử lý giao dịch thời gian thực là hệ quản trị CSDL nghiệp
vụ Các nghiệp vụ hàng ngày của các doanh nghiệp như bán hàng, mua hàng, thanh
lý hàng tồn kho, đều được mô hình hóa trong OLTP để xử lý hàng ngày Trong OLTP dữ liệu chỉ đại diện cho hiện tại, nó không có ý nghĩa lịch sử, đồng thời dữ liệu trong OLTP được chuẩn hóa rất cao vên tốc độ xử lý truy vấn phức tạp tương đối kém
OLAP – Hệ thống xử lý phân tích trực tuyến là hệ quản trị CSDL chuyên
dùng cho tạo báo cáo và phân tích dữ liệu Dữ liệu là vô nghĩa nếu chúng chỉ là các bản ghi trong CSDL, chỉ khi nào chúng được sử dụng để làm số liệu phân tích, tổng hợp thì lúc đó dữ liệu mới trở thành thông tin OLAP là công cụ được dùng để khai thác dữ liệu kho dữ liệu với nhiệm vụ hỗ trợ truy vấn phức tạp , đồng thời tạo ra các báo cáo đầy đủ, chính xác nhất
Những tính chất đặc trưng của OLTP và OLAP được mô tả chi tiết trong bảng so sánh OLTP và OLAP ( bảng 1.1)[4]
1.4.2 Tiến trình ETL (Extract, Transform & Load)
Hình 1.2 Tiến trình ETL[11]
Tiến trình ETL (hình 1.2) là tiến trình tích hợp dữ liệu từ nguồn dữ liệu vào Kho dữ liệu chiếm khoảng 70% khối lượng công việc khi xây dựng kho dữ liệu, bao gồm 3 quá trình: Trích xuất (Extract), Biến đổi (Transform) và Nạp (Load)
Trích xuất dữ liệu là quá trình chọn lọc những dữ liệu nghiệp vụ cần thiết
cho việc xây dựng kho dữ liệu.Ví dụ một doanh nghiệp muốn xây dựng kho dữ liệu
Trang 19cho nghiệp vụ bán hàng, như vậy pha trích xuất dữ liệu sẽ chọn lựa từ dữ liệu
nghiệp vụ của doanh nghiệp nguồn dữ liệu liên quan đến hoạt động bán hàng như : sản phẩm, khách hàng, nhân viên bán hàng, Ngược lại những dữ liệu về kho bãi, tiền lương, sẽ không tham gia vào quá trình xây dựng kho dữ liệu
Nói cách khác, trích xuất dữ liệu là quá trình xác định dữ liệu nguồn
Biến đổi dữ liệu là quá trình biến đổi dữ liệu nguồn sang dạng thích hợp để
nạp vào kho dữ liệu Ví dụ trong bài toán xây dựng kho dữ liệu cho nghiệp vụ bán hàng, dữ liệu nguồn được xác định là những dữ liệu trong cơ sở dữ liệu nghiệp vụ
Dữ liệu nghiệp vụ thường gặp một số vấn đề như: dữ liệu trùng nhau, dữ liệu không
chính xác, dữ liệu sai định dạng, Và nhiệm vụ của pha biến đổi dữ liệu là làm sạch
dữ liệu, tập hợp những dữ liệu có cùng ý nghĩa, và tổng hợp dữ liệu lại với nhau
Nạp dữ liệu là quá trình ghi dữ liệu lấy được từ pha biến đổi dữ liệu vào kho
dữ liệu đồng thời cập nhật những thay đổi từ dữ liệu nghiệp vụ vào kho dữ liệu 1.4.3 Kho dữ liệu chủ đề (Data Mart)
Kho dữ liệu chủ đề (Datamart) là CSDL có những đặc điểm giống với kho
dữ liệu nhưng với quy mô nhỏ hơn và lưu trữ dữ liệu về một lĩnh vực, một chuyên ngành Hình 1.3 mô tả ba kho dữ liệu chủ đề là kho dữ liệu chủ đề bán hàng, kho dữ liệu chủ đề tiếp thị và kho dữ liệu chủ đề hàng tồn kho
Hình 1.3 Kho dữ liệu chủ đề (Data Mart)
Trang 20Các datamart có thể được hình thành từ một tập con dữ liệu của kho dữ liệu hoặc cũng có thể được xây dựng độc lập và sau khi xây dựng xong, các datamart có thể được kết nối tích hợp lại với nhau tạo thành kho dữ liệu Vì vậy có thể xây dựng kho dữ liệu bắt đầu bằng việc xây dựng các datamart hay ngược lại xây dựng kho
dữ liệu trước sau đó tạo ra các datamart Có thể chia datamart ra làm hai loại làdatamart độc lập và datamart phụ thuộc
- Datamart phụ thuộc : chứa những dữ liệu được lấy từ kho dữ liệu và những
dữ liệu này sẽ được trích lọc và làm sạch, tích hợp lại ờ mức cao hơn để phục
vụ một chủ đề nhất định của datamart Hình 1.4 mô tả một datamart phụ thuộc
Hình 1.4 Datamart phụ thuộc
- Datamart độc lập : không giống như datamart phụ thuộc, datamart loại này
được xây dựng trước kho dữ liệu và dữ liệu được trực tiếp lấy từ các nguồn Phương pháp này đơn giản hơn và chi phí thấp hơn nhưng đổi lại có những điểm yếu Mỗi kho dữ liệu độc lập có cách tích hợp riêng, do đó đữ liệu từ nhiều datamart khó đồng nhất với nhau Hình 1.5 mô tả một datamart độc lập
Hình 1.5 Datamart độc lập
Trang 211.4.4 Siêu dữ liệu (Metadata)
Siêu dữ liệulà dữ liệu về dữ liệu, được sử dụng trong kho dữ liệu để mô tả
cũng như sử dụng dữ liệu đảm bảo sử dụng triệt để và nhất quán dữ liệu nghiệp
và siêu dữ liệu vận dụng
Siêu dữ liệu trong giai đoạn xây dựng: là siêu dữ liệu được tạo ra trong quá
trình thiết kế, xây dựng ứng dụng và cơ sở dữ liệu Thông thường, chúng được tạo
ra và lưu trữ trong các mô hình dữ liệu và công cụ thiết kế ứng dụng
Siêu dữ liệu kiểm soát: là siêu dữ liệu được sử dụng chủ động trong hoạt
động của kho dữ liệu, trong đó siêu dữ liệu hiện hành và siêu dữ liệu sử dụng đóng vai trò quan trọng trong việc quản lý và xây dựng kho dữ liệu
Siêu dữ liệu hiện hành: mô tả thông tin chính xác về tính hiện thời hay vị trí của dữ liệu nghiệp vụ theo thời gian
Siêu dữ liệu sử dụng : gắn chặt với vấn đề an ninh và các chức năng xác định thẩm quyển, kiểm soát việc truy cập tới kho dữ liệu Hơn nữa chúng cung cấp các phương tiện nhằm giám sát dữ liệu và các chức năng này được sử dụng trong kho
dữ liệu như thế nào, và do đó xác định được giá trị của dữ liệu đối với người sử
dụng cuối
Siêu dữ liệu vận dụng: là siêu dữ liệu quan trọng nhất đối với người sử dụng
dữ liệu nghiệp vụ, đặc biệt trong môi trường thông tin Với chúng người dùng có thể đạt được những lợi ích trong nghiệp vụ và nâng cao hiệu quả công việc
Siêu dữ liệu vận dụng có nguồn gốc và nội dung tương tự siêu dữ liệu trong giai đoạn xây dựng Sự khác biệt ờ chỗ siêu dữ liệu này được cấu trúc nhằm đảm bảo hiệu năng tìm kiếm của người sử dụng
Trang 221.5 Kiến trúc kho dữ liệu
Một trong các bước đầu tiên khi thiết kế kho dữ liệu là xây dựng kiến trúc tổng thể và làm kiến trúc đó được chấp nhận một cách rộng rãi
Dựa vào thực tế xây dựng kho dữ liệu người ta đưa ra ba mô hình kiến trúc
dữ liệu[7]với sự khác nhau về thành phần tham gia vào hệ thống kho dữ liệu, bao gồm:
Kiến trúc 1 tầng - Data Warehouse Architecture: Basic
Kiến trúc 2 tầng - Data Warehouse Architecture: with a Staging Area
Kiến trúc 3 tầng - Data Warehouse Architecture: with a Staging Area and Data
Marts
Trong đó, mô hình kiến trúc ba tầng đã bao hàm các thành phần của mô hình kiến trúc hai tầng và một tầng Do vậy, chúng ta sẽ xem xét mô hình kiến trúc dữ liệu ba tầng, sau đó chỉ ra những thành phần khác biệt so với kiến trúc hai tầng và một tầng
Hình 1.6 Kiến trúc ba tầng của kho dữ liệu
Với mô hình kiến trúc dữ liệu ba tầng (hình 1.6), một hệ thống kho dữ liệu gồm ba thành phần chính sau:
Trang 23- Một công cụ để thu thập dữ liệu từ hệ thống nghiệp vụ, chuẩn hóa chúng về định dạng dữ liệu đa chiều, nạp vào kho dữ liệu (Extract-Transform-Load)
- Một cơ sở dữ liệu dùng làm kho dữ liệu để lưu trữ dữ liệu
- Kho dữ liệu phân ra thành các kho dữ liệu chủ đề, hỗ trợ ra quyết định theo từng nhóm người sử dụng
- Bước nạp dữ liệu (load) : ghi dữ liệu đã được chuyển đổi vào kho dữ liệu
Trang 24Tầng kho dữ liệu chủ đề
Một kho dữ liệu thường bao gồm một hoặc nhiều kho dữ liệu chủ đề như kho
dữ liệu chủ đề bán hàng, kho dữ liệu chủ đề mua hàng,
Tầng kho dữ liệu chủ đề chứa các Datamart được phân ra từ kho dữ liệu hỗ trợ người dùng cuối khai thác, sử dụng theo mục đích riêng thông qua các công cụ như hệ thống OLAP, báo cáo thống kê, hệ thống khai phá dữ liệu
Mô hình kiến trúc ba tầng của kho dữ liệu khi không có tầng kho dữ liệu chủ
đề cho ta hình ảnh về kiến trúc dữ liệu hai tầng Kiến trúc hai tầng thường xuất hiện trong các tổ chức nhỏ hoặc trong giai đoạn đầu của quá trình xây dựng một kho dữ liệu quy mô doanh nghiệp
Mô hình kiến trúc dữ liệu hai tầng khi không có tầng xử lý dữ liệu cho ta mô hình kiến trúc dữ liệu một tầng Kiến trúc một tầng hiếm khi xuất hiện vì nó tạo ra xung đột khi nhiều người dùng cùng truy cập tới một dữ liệu
1.6 Mô hình dữ liệu đa chiều
Khác với dữ liệu trong các cơ sở dữ liệu nghiệp vụ thông thường được tối ưu hóa cho các thao tác thêm mới, chỉnh sửa hoặc xóa, dữ liệu trong kho dữ liệu được tối ưu hóa cho việc phân tích và báo cáo Và cơ sở dữ liệu đa chiều đã phát triển và
đi vào công nghệ cơ sở dữ liệu như là một sự lựa chọn cho những ứng dụng phân tích dữ liệu
Theo Oracle: ― Cơ sở dữ liệu đa chiều là một dạng của cơ sở dữ liệu được tối
ưu hoá nhằm cho kho dữ liệu và những ứng dụng xử lý phân tích trực tuyến Cơ sở
dữ liệu đa chiều thường xuyên được tạo ra bằng cách sử dụng dữ liệu đầu vào từ những cơ sở dữ liệu quan hệ đã tồn tại ‖[8]
Mô hình dữ liệu đa chiều được đề xuất và thiết kế cho mục đích phân tích dữ liệu, và nó là một ứng dụng của cơ sở dữ liệu đa chiều Các thao tác với dữ liệu của Kho dữ liệu dựa trên cơ sở là mô hình dữ liệu đa chiều
Trang 251.6.1 Các khái niệm chính của mô hình dữ liệu đa chiều
Mô hình dữ liệu đa chiều là một mô hình quản lý dữ liệu theo đó các cơ sở
dữ liệu được phát triển theo nhu cầu của người dùng, để được sử dụng cho các loại truy vấn cụ thể
Mô hình này xem dữ liệu ở dạng khối dữ liệu (data cube) Một khối dữ liệu cho phép dữ liệu được mô hình hóa và xem xét theo nhiều chiều, đồng thời một khối dữ liệu được xác định bởi các chiều (dimensions) và sự kiện (facts)
Sự kiện là những thước đo quan trọng được sử dụng để đo lường kết quả kinh doanh[7] Ví dụ như sự kiện bán hàng, sự kiện sản xuất, sự kiên hàng tồn kho
Một chiều là một cấu trúc phân loại dữ liệu để cho phép người dùng trả lời các câu hỏi kinh doanh[7] Trong kho dữ liệu, một chiều là một tập hợp các thông tin tham chiếu đến một sự kiện có thể đo đếm được Một số chiều thường gặp như khách hàng, sản phẩm, thời gian Ví dụ chiều sản phẩm trong sự kiện bán hàng trả lời cho câu hỏi số lượng bán ra từng sản phẩm trong một khoảng thời gian cụ thể
Một khối dữ liệu có thể có nhiều chiều, về mặt lý thuyết thì số chiều là không hạn chế Nếu khối dữ liệu có nhiều hơn ba chiều thì được gọi là siêu khối (hypercube) Trong một khối bao gồm nhiều ô dữ liệu, mỗi ô dữ liệu là một liên kết giữa các giá trị của các chiều đồng thời một ô có thể là rỗng Một khối dữ liệu được coi là thưa nếu có nhiều ô rỗng, ngược lại với ít ô rỗng người ta gọi là khối đặc 1.6.2 Đặc điểm của mô hình dữ liệu đa chiều
Mô hình dữ liệu đa chiều lưu trữ dữ liệu trong các bảng chiều, bảng sự kiện trong cơ sở dữ liệu
a Bảng chiều
Bảng chiều được sử dụng để mô tả các chiều, chứa tất cả các thuộc tính đặc trưng của chiều đó Ví dụ, bảng chiều sản phẩm sẽ bao gồm các thuộc tính như tên sản phẩm, mô tả sản phẩm, đơn giá, màu sắc, trọng lượng,
Bảng chiều thường có kích thước nhỏ, từ vài đến vài nghìn hàng Thỉnh thoảng kích thước bảng chiều có thể phát triển khá lớn như ngân hàng có thể có bảng chiều khách hàng với kích thước hàng triệu hàng
Trang 26Bảng chiều chứa các dữ liệu cần thiết cho việc thực hiện thao tác nghiệp vụ nào đó, đồng thời nó là đối tượng mà ta có thể dựa vào để phân loại dữ liệu
Bảng chiều chứa các thuộc tính phân cấp trên các chiều của chúng Ví dụ trên chiều thời gian, chúng ta định nghĩa được một mối quan hệ cấp bậc: ngàytuầnthángquýnăm
Một số loại bảng chiều thường gặp như bảng chiều chuẩn (conformed dimension table), bảng chiều suy biến (degenerate dimension table), bảng chiều thay đổi chậm (slowly changing dimension table)
b Bảng sự kiện
Bảng sự kiện là các phép đo của một quá trình kinh doanh, là bảng kết nối giữa các bảng chiều và các độ đo (measures) Bảng sự kiện chứa dữ liệu định lượng (là những dữ liệu có thể đo đếm được), đồng thời kích thước của bảng sự kiện rất lớn Ví dụ, một cửa hàng tạp hóa có một bảng sự kiện ghi chép việc bán từng mặt hàng, một trường đại học có một bảng sự kiện lưu trữ kết quả học tập của sinh viên Bảng sự kiện có hai đặc trưng cơ bản là độ đo và độ chi tiết của sự kiện (grain)
Độ đo thường là giá trị số đại diện cho các số liệu kinh doanh Trong thực tế, bảng sự kiện có thể có nhiều độ đo, ví dụ bảng sự kiện theo dõi hoạt động mua bán hàng hóa quốc tế, chúng ta có độ đo là các loại tiền tệ (USD, VND, ) Độ đo trong bảng sự kiện có thể là :
- Cộng dồn (additive): khi độ đo có thể được tổng hợp qua bất kỳ chiều nào Ví dụ với sự kiện bán hàng chúng ta có thể cộng dồn tiêu chí doanh thu theo chiều khách hàng, chiều sản phẩm hoặc chiều thời gian
- Bán cộng dồn (semi-additive): khi độ đo có thể được tổng hợp trên một số chiều nhất định Ví dụ với sự kiện hàng tồn kho chúng ta có thể cộng dồn tiêu chí lượng hàng hóa theo chiều sản phẩm tuy nhiên không thể cộng dồn nó theo chiều khách hàng vì nó vô nghĩa với chiều khách hàng
Trang 27- Không cộng dồn (non-additive): độ đo không thể tổng hợp ví dụ như phần trăm lợi nhuận Chẳng hạn, độ đo phần trăm lợi nhuận của từng loại sản phẩm không thể cộng dồn lại với nhau vì nó làm mất đi ý nghĩa của lợi nhuận với các sản phẩm
Độ chi tiết của sự kiện là việc xác định mức độ thấp nhất của sự kiện phục
vụ cho việc phân tích dữ liệu Ví dụ, một bệnh viện theo dõi doanh thu theo tháng,
dữ liệu theo ngày, giờ có thể không liên quan Một công ty tiếp thị sản phẩm theo dõi sức mua của nhóm khách hàng hơn là từng khách hàng riêng lẻ
1.6.3 Lược đồ lưu trữ dữ liệu đa chiều
Mô hình dữ liệu đa chiều tổ chức dữ liệu theo hai dạng lược đồ cơ bản là lược đồ
hình sao (star schema) và lược đồ hình bông tuyết (snowflake schema)[10]
a Lược đồ hình sao
Lược đồ hình sao là lược đồ lưu trữ dữ liệu kho dữ liệu gồm một bảng sự kiện liên kết với nhiều bảng chiều
Hình 1.7 Lược đồ hình sao quản lý bán hàng
Trang 28Trong lược đồ hình sao, một bảng chiều đại diện cho một và chỉ một chiều, đồng nghĩa với việc không có sự chuẩn hóa nào trong các bảng chiều Ví dụ về lược đồ hình sao được mô tả trong hình 1.7
b Lược đồ hình bông tuyết
Lược đồ hình bông tuyết là lược đồ lưu trữ dữ liệu kho dữ liệu gồm một bảng
sự kiện liên kết với nhiều bảng chiều
Hình 1.8 Lược đồ hình bông tuyết quản lý bán hàng
Trong lược đồ hình bông tuyết, một chiều được xác định bởi nhiều bảng chiều, đồng nghĩa với việc các thuộc tính trong bảng chiều được chuẩn hóa tương tự
dữ liệu trong các cơ sở dữ liệu thông thường Ví dụ như trong hình 1.8, bảng chiều DMSANPHAM có thuộc tính phân cấp Nhomhang
c So sánh lược đồ hình sao và lược đồ hình bông tuyết
Cả hai dạng lược đồ lưu trữ dữ liệu đa chiều là lược đồ hình sao và lược đồ bông tuyết đều có các ưu, nhược điểm riêng được thể hiện trong bảng 1.2
Trang 29Bảng 1.2 So sánh lược đồ hình sao và lược đồ bông tuyết
1.6.4 Kỹ thuật OLAP
OLAP là một kỹ thuật nhằm đáp ứng nhu cầu phân tích dữ liệu trực tuyến theo các góc độ khác nhau dựa trên cách tổ chức cơ sở dữ liệu đa chiều Nó sử dụng các khối dữ liệu trong mô hình dữ liệu đa chiều cung cấp khả năng truy xuất nhanh đến dữ liệu của kho dữ liệu, đồng thời thực hiện các truy vấn phức tạp Đồng thời, OLAP cung cấp nhiều lợi ích cho người dùng 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à khai phá dữ liệu
- Cung cấp một ngôn ngữ truy vấn, phân tích và 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
Căn cứ vào cách thức lưu trữ dữ liệu, người ta thường tiếp cận mô hình dữ liệu đa chiều theo 3 hướng sau:
- MOLAP (Multi-dimensional OLAP) là một dạng của OLAP xử lý và lưu trữ
dữ liệu trực tiếp vào cơ sở dữ liệu đa chiều MOLAP cho hiệu năng tốt hơn trong các phép truy vấn và tổng hợp số liệu Tuy nhiên, MOLAP bị hạn chế
về lượng dữ liệu lưu trữ và xử lý
Trang 30- ROLAP (Relational OLAP) là một dạng của OLAP thực hiện phân tích động
dữ liệu đa chiều được lưu trong cơ sở dữ liệu quan hệ chứ không phải là trong cơ sở dữ liệu đa chiều ROLAP có thể xử lý một lượng dữ liệu lớn hơn
so với MOLAP, tuy nhiên ROLAP lại đòi hỏi gia tăng thời gian xử lý cũng như không gian đĩa
- HOLAP (Hybrid OLAP) kết hợp những ưu điểm của 2 công nghệ MOLAP
và ROLAP, là tận dụng khả năng lưu trữ của ROLAP và khả năng xử lý của MOLAP
Thao tác phân tích dữ liệu của kho dữ liệu được OLAP cung cấp một số công
cụ phân tích cơ bản từ đơn giản đến phức tạp như: Cuộn lên (Roll up), Truy xuống (Drill down), Chọn và chiếu (Slice and Dice ), Xoay chiều (Pivot)
Cuộn lên (Roll up): Dựa vào quan hệ cấp bậc của chiều ta có thể cuộn lên
mức độ tổng quát hơn để xem dữ liệu ở mức tổng hợp Ví dụ ta cuộn lên để xem dữ
liệu ở mức tổng hợp theo quan hệ cấp bậc: Học kỳ Năm học Khóa học(hình
1.9)
Chiều thời gian
Hình 1.9 Đặc tính Roll-up của OLAP
Truy xuống (Drill down): Ngược lại với cuộn lên, từ mức độ tổng quát của
quan hệ cấp bậc của chiều ta có thể truy xuống để xem được chi tiết của dữ liệu Ví
dụ ta truy xuống để xem dữ liệu ở mức chi tiết theo quan hệ cấp bậc Khoa Bộ môn Ngành Lớp(hình 1.10)
Trang 31Chiều đơn vị
Hình 1.10 Đặc tính Drill- down của OLAP
Chọn và chiếu (Slice and Dice )
Chọn (Slice): thực hiện một phép chọn trên một chiều của khối trung tâm để
có được một khối con.Ví dụ trong hình 1.9, ta chọn từ khối trung tâm của chiều
thoigian với tiêu chí là namhoc =2004 học kỳ = 1
Chiếu (Dice) là thao tác thực hiện chọn trên hai chiều hay nhiều hơn để tìm
ra một khối con Ví dụ chọn theo 2 chiều với tiêu chí là: namhoc = 2004 and (lop=
“K06401” or lop = “K07403”)
Xoay chiều (Pivot): Thực hiện việc xoay khối dữ liệu để có thể xem dữ liệu ở
nhiều chiều khác nhau
1.7 Kết luận chương
Chương 1 đã trình bày tổng quan về kho dữ liệu từ những khái niệm cơ bản
về kho dữ liệu đến kiến trúc của một hệ thống kho dữ liệu cũng như mô hình lưu trữ
dữ liệu kho dữ liệu Qua đó học viên phần nào nắm được đặc điểm, tính chất, các thành phần tạo nên một kho dữ liệu cũng như nguyên lí hoạt động của kho dữ liệu
Việc nắm bắt được cơ sở lý thuyết của kho dữ liệu giúp ích rất nhiều trong việc thiết kế và xây dựng kho dữ liệu
Trong chương 2, luận văn sẽ trình bày quy trình cụ thể thiết kế một kho dữ liệu dựa trên nền tảng cơ sở lý thuyết về kho dữ liệu được trình bày trong chương 1
Trang 32CHƯƠNG 2 PHƯƠNG PHÁP THIẾT KẾ KHO DỮ
LIỆU
Chương này giới thiệu quy trình thiết kế một kho dữ liệu bao gồm sáu pha cơ bản: xác định yêu cầu nghiệp vụ, xác định mô hình kiến trúc kho dữ liệu, xác định bảng chiều, bảng sự kiện, xây dựng lược đồ lưu trữ dữ liệu, tích hợp dữ liệu từ nguồn dữ liệu vào kho dữ liệu và cuối cùng là khai thác và phân tích kho dữ liệu (hình 2.1)
Hình 2.1 Quy trình thiết kế một kho dữ liệu
2.1 Xác định yêu cầu nghiệp vụ
Việc thiết kế một kho dữ liệu được bắt đầu bằng việc xác định các yêu cầu nghiệp vụ của kho dữ liệu, đồng nghĩa với việc chúng ta phải xác định được mục đích và phạm vi xây dựng kho dữ liệu
2.1.1 Xác định mục đích xây dựng kho dữ liệu
Công việc đầu tiên trong pha xác định yêu cầu nghiệp vụ là xác định mục đích xây dựng kho dữ liệu của doanh nghiệp
Trang 33Chúng ta sẽ đi xác định lý do doanh nghiệp muốn xây dựng một kho dữ liệu riêng thông qua các câu hỏi phỏng vấn chiến lược, bao gồm:
- Lĩnh vực hoạt động của doanh nghiệp ? Doanh nghiệp của bạn đang hoạt động trên lĩnh vực nào : ngân hàng, bảo hiểm, viễn thông, hay xuất nhập khẩu
- Những ứng dụng nghiệp vụ nào đang được doanh nghiệp sử dụng ? Các hệ thống nghiệp vụ doanh nghiệp đang sử dụng là gì: HRM, CRM, CCBS
- Vấn đề gặp phải hiện nay của doanh nghiệp là gì ? Thiếu thông tin trong hoạt động sản xuất, kinh doanh, thông tin sai lệnh không chính xác, các báo cáo thống kê thiếu sự tin cây,
Bằng việc thực hiện các câu hỏi phỏng vấn chiến lược với các nhà lãnh đạo doanh nghiệp, chúng ta sẽ xác định được mục đích thực sự của họ khi xây dựng kho
- Tổng công ty xăng dầu hoạt động trong lĩnh vực sản xuất, cung cấp và phân phối các sản phẩm của ngành dầu khí như : xăng, dầu, gas
- Hiện tại tổng công ty sử dụng nhiều hệ thống ứng dụng nghiệp vụ khác nhau
từ hệ thống quản lý nhân viên, hệ thống quản lý sản lượng khai thác và tiêu thụ xăng dầu, hệ thống quản lý xuất nhập khẩu xăng dầu,
- Tổng công ty hiện đang gặp phải nhiều vấn đề từ cạnh tranh gay gắt của thị trường kinh doanh xăng dầu trong nước đến xu hướng biến động liên tục của thị trường xăng dầu quốc tế, bao gồm cả những khó khăn trong việc tích hợp
dữ liệu từ các hệ thống ứng dụng nghiệp vụ trong việc lên các báo cáo thông
kê đủ tin cậy về tình hình sản xuất kinh doanh của tổng công ty
Trang 34Vì vậy ban lãnh đạo tổng công ty xăng dầu cần giải pháp cho những vấn đề đang gặp phải, và kho dữ liệu được chọn như là một phương án giải quyết vấn đề tích hợp dữ liệu từ các hệ thống ứng dụng nghiệp vụ khác nhau, đồng thời là cơ sở
để thực hiện việc phân tích đưa ra được những báo cáo chính xác về tình trạnh hoạt động sản xuất kinh doanh của tổng công ty
2.1.2 Phạm vi xây dựng kho dữ liệu
Một trong những nguyên nhân dẫn đến thất bại khi xây dựng một kho dữ liệu
đó là việc chúng ta xác định phạm vi xây dựng kho dữ liệu quá rộng Việc xây dựng một kho dữ liệu đáp ứng nhiều nghiệp vụ khác nhau là rất khó khăn với nhiều rủi ro
về thời gian và tiền bạc Trong thực tế, người ta thường bắt đầu xây dựng kho dữ liệu cho một vài nghiệp vụ nhất định rồi mở rộng dần nếu muốn Việc lựa chọn phạm vi xây dựng kho dữ liệu phụ thuộc vào định hướng hoạt động của doanh nghiệp theo từng giai đoạn
Ví dụ, trong bài toán xây dựng kho dữ liệu cho tổng công ty xăng dầu, chúng
ta xác định phạm vi xây dựng kho dữ liệu là quản lý lượng xăng dầu trong các kho của tổng công ty Sự lựa chọn này xuất phát từ ba yếu tố:
- Thị trường kinh doanh xăng dầu thế giới ngày càng biến động theo chiều hướng bất lợi cho những đơn vị nhập khẩu xăng dầu Môi trường hoạt động kinh doanh xăng dầu trong nước cạnh tranh ngày càng gay gắt Trước những qui định quản lý kinh doanh xăng dầu ngày càng chặt chẽ của nhà nước, sức
ép của người tiêu dùng đòi hỏi quản lý kinh doanh xăng dầu phải được tổ chức thực hiện một cách hợp lý, để giảm giá thành
- Quản lý tổn kho hàng hoá đóng vai trò quan trọng trong cách điều hành kinh doanh Quản lý tồn kho hàng hoá nhằm cung cấp thông tin hỗ trợ lãnh đạo ra quyết định: nhập hàng hoá, nhập bao nhiêu? nhập vào kho nào? khi nào thì nhập?
- Thông tin về tổn kho hàng hoá sẽ giúp các nhà lãnh đạo ra quyết định đem lại hiệu quả kinh doanh: giảm thiểu chi phí lưu kho, chi phí hao hụt, luôn
Trang 35luôn chủ động cân đối, điều độ nguồn nhập xuất đáp ứng yêu cầu ổn định nguồn hàng cung cấp cho thị trường
Như vậy, việc lựa chọn phạm vi xây dựng kho dữ liệu hợp lý giúp chúng ta
có những cơ hội kinh doanh tốt hơn
Quá trình xác định nghiệp vụ hệ thống cũng giúp ta xác định được nghiệp vụ
và các đối tượng liên quan Ví dụ như trong bài toán kho dữ liệu cho quản lý kho xăng dầu trên, ta xác định nghiệp vụ ở đây chính là hoạt động quản lý xăng dầu tồn kho với các đối tượng liên quan như kho hàng, nhóm hàng hóa, hàng hóa và các sự kiện xuất nhập hàng hóa vào kho
2.2 Xác định mô hình kiến trúc kho dữ liệu
Chúng ta lựa chọn mô hình kiến trúc ba tầng của kho dữ liệu với vùng xử lý
và vùng dữ liệu chủ đề trong hình 1.6 làm mô hình thiết kế cho kho dữ liệu trong phạm vi luận văn này
2.3 Xác định bảng chiều, bảng sự kiện
Kho dữ liệu được xây dựng dựa trên cơ sở mô hình dữ liệu đa chiều, đồng nghĩa với việc dữ liệu của kho dữ liệu được lưu trữ trong các bảng chiều, bảng sự kiện trong cơ sở dữ liệu Các khái niệm cơ bản về bảng chiều, bảng sự kiện đã được trình bày trong nội dung ―Mô hình dữ liệu đa chiều‖ tại chương đầu tiên của luận văn Trong pha xác định bảng chiều, bảng sự kiện khi thiết kế kho dữ liệu, chúng ta
sẽ đi tìm hiểu các yêu cầu cụ thể khi xây dựng bảng chiều, bảng sự kiện cho kho dữ liệu
2.3.1 Xác định bảng chiều
Bảng chiều được sử dụng để mô tả các chiều, chứa tất cả các thuộc tính đặc trưng của chiều đó Bảng chiều chứa các dữ liệu cần thiết cho việc thực hiện thao tác nghiệp vụ nào đó, đồng thời nó là đối tượng mà ta có thể dựa vào để phân loại
dữ liệu Đồng thời bảng chiều cũng là nơi cung cấp thông tin, ngữ cảnh cụ thể cho
dữ liệu trong bảng sự kiện Việc sử dụng kho dữ liệu để phân tích yêu cầu nào đó phải được gắn với những đối tượng cụ thể, ví dụ như sự kiện bán hàng trong bảng
Trang 36sự kiện của kho dữ liệu quản lý bán hàng chỉ có nghĩa khi nó được gắn với một chiều cụ thể nếu không nó chỉ là những giá trị vô nghĩa
Do đó, việc xác định chính xác bảng chiều là yêu cầu cực kỳ quan trọng khi thiết kế kho dữ liệu, bất kỳ một sai sót nào trong quá trình xác định bảng chiều có thể dẫn đến thất bại cho cả dự án Nội dung đầu tiên chúng ta cần tìm hiểu là cấu trúc của một bảng chiều
a Cấu trúc bảng chiều
Hình 2.2 Cấu trúc cơ bản một bảng chiều[12]
Về cơ bản các bảng chiều đều có cấu trúc như hình 2.2
Khóa chính của bảng chiều thường là trường dữ liệu kiểu số lưu những giá trị duy nhất, không có ý nghĩa , còn được gọi với tên là khóa thay thế (surrogate key) Khóa thay thế được sinh ra trong các luồng xử lý dữ liệu trong kho dữ liệu, không chịu tác động của các thao tác bên ngoài
Một thành phần khác của bảng chiều là khóa tự nhiên (natural key) Nó đại diện cho một giá trị có nghĩa nào đó của bảng chiều Ví dụ bảng chiều sản phẩm sẽ
có trường productionId lưu mã sản phẩm lấy từ hệ thống nghiệp vụ
Thành phần cuối cùng của bảng chiều ngoài khóa chính, khóa tự nhiên là một loạt các thuộc tính mô tả Các thuộc tính mô tả có thể ở nhiều kiểu dữ liệu khác nhau và số lượng có thể rất nhiều
Trang 37b Thiết kế phẳng và thiết kế bông tuyết
Bảng chiều thường được thiết kế theo hai kiểu là thiết kế phẳng và thiết kế bông tuyết
Bảng chiều thiết kế phẳng là bảng chứa dữ liệu ở dạng phi chuẩn, nghĩa là đối với những dữ liệu phân cấp khi thiết kế bảng chiều dạng phẳng sẽ được làm phẳng lại vào một thể hiện duy nhất Ví dụ, chiều sản phẩm có dữ liệu sản phẩm ở dạng chuẩn hóa với cấu trúc phân cấp sản phẩmnhóm sản phẩm khi được sử dụng
để thiết kế bảng chiều sản phẩm thì dữ liệu sản phẩm sẽ được làm phẳng, tức gộp hai bảng sản phẩm và nhóm sản phẩm thành một bảng sản phẩm duy nhất Ngược lại, bảng chiều thiết kế bông tuyết giữ nguyên cấu trúc chuẩn hóa của dữ liệu
Việc lựa chọn thiết kế dạng phẳng hay bông tuyết hoàn toàn phụ thuộc vào lựa chọn của đội thiết kế Mỗi một loại đều có ưu, nhược điểm nội tại trong nó
c Bảng chiều thời gian
Bảng chiều thời gian là một bảng chiều đặc biệt trong kho dữ liệu Thông thường chúng ta sẽ tạo bảng chiều này một lần vào đầu dự án rồi giữ nguyên gần như không cập nhật trong suốt vòng đời xây dựng, vận hành, nâng cấp dự án đó Ngoại trừ những trường hợp hi hữu như chính sách công ty thay đổi, hoặc nhà nước thay đổi chính sách nghỉ lễ tết thì sẽ có sự điều chỉnh với bảng chiều thời gian Một cấu trúc đơn giản của bảng chiều thời gian (hình 2.3)
Hình2.3 Cấu trúc bảng chiều thời gian
2.3.2 Xác định bảng sự kiện
Bảng sự kiện là các phép đo của một quá trình kinh doanh, là bảng kết nối giữa các bảng chiều và các độ đo và là nơi chứa dữ liệu phân tích của kho dữ liệu
Trang 38Trong mô hình dữ liệu đa chiều, cụ thể hơn là trong kho dữ liệu, bảng sự kiện chứa các sự kiện cụ thể, bảng chiều chứa ngữ cảnh của sự kiện đó Mối quan
hệ này cung cấp cho ta một góc nhìn trực quan, đầy đủ về dữ liệu trong kho dữ liệu
a Cấu trúc bảng sự kiện
Hình 2.4 Cấu trúc cơ bản của một bảng sự kiện
Về cơ bản các bảng sự kiện có cấu trúc như hình 2.4
Mỗi bảng sự kiện bao gồm hai thành phần cơ bản là các khóa ngoại tham chiếu đến các bảng chiều và các độ đo
Bảng sự kiện thường không có khóa chính riêng, mà chứa một tập các khóa ngoại liên kết với các bảng chiều Tuy nhiên, chúng ta vẫn có thể tạo khóa chính cho bảng sự kiện nếu muốn
Bảng sự kiện có hai đặc trưng cơ bản là độ đo và độ chi tiết của sự kiện
- Độ đo thường là giá trị số đại diện cho các số liệu kinh doanh Trong thực tế, bảng sự kiện có thể có nhiều độ đo khác nhau
- Độ chi tiết của sự kiện là mức thấp nhất của sự kiện dùng trong phân tích dữ liệu
Trong thực tế bảng sự kiện nào cũng liên kết ít nhất với 3 bảng chiều, thường thì nhiều hơn Độ chi tiết dữ liệu càng cao, kho dữ liệu càng cần nhiều bảng chiều
Trang 39b Toàn vẹn dữ liệu
Như đã đề cập trước đó, mỗi bản ghi trong bảng sự kiện là một sự kiện cụ thể, được xác định với ngữ cảnh cụ thể Tuy nhiên trong kho dữ liệu, bảng sự kiện lại không có ràng buộc dữ liệu chặt chẽ dẫn đến việc thường xảy ra các lỗi như: dữ liệu trong bảng sự kiện không có ngữ cảnh cụ thể hoặc bản ghi trong bảng chiều bị xóa khi nó đã được sử dụng làm ngữ cảnh cho sự kiện nào đó
Do đó việc cấp thiết cần giải quyết ở đây là kiểm tra tính toàn vẹn của dữ liệu khi ghi chúng vào kho dữ liệu Có ba phương pháp thực hiện việc kiểm tra tính toàn vẹn dữ liệu:
- Kiểm tra kỹ dữ liệu trước khi ghi vào kho dữ liệu và trước khi xóa dữ liệu khỏi bảng chiều
- Đặt ràng buộc toàn vẹn vào kho dữ liệu đảm bảo không nạp dữ liệu sai hoặc xóa dữ liệu đúng trong kho dữ liệu
- Phát hiện và sửa lỗi toàn vẹn dữ liệu sau khi dữ liệu đã ghi vào kho dữ liệu bằng cách kiểm tra định kỳ bảng sự kiện, tìm ra các giá trị lỗi
Thực tế phương án giải quyêt tốt nhất thường chọn là việc kiểm tra kỹ dữ liệu trước khi ghi vào kho dữu liệu
c Phân loại bảng sự kiện
Bảng sự kiện chứa mọi sự kiện đại diện cho hoạt động sản xuất kinh doanh của doanh nghiệp Về cơ bản bảng sự kiện phân thành ba dạng chính, như sau:
- Bảng sự kiện mức chi tiết mô tả một sự kiện bất kỳ xảy ra trong thực tế được ghi nhận vào kho dữ liệu Các độ đo và chiều trong bảng này không mô tả quá trình mà chỉ ghi nhận giá trị thời điểm xảy ra sự kiện Bảng này có quy
mô lớn nhất và chi tiết nhất, là đầu vào để tổng hợp lên các bảng sự kiện có mức tổng hợp cao hơn
- Bảng sự kiện tổng hợp định kỳ mô tả tại một khoảng thời gian nhất định nào
đó và sẽ được lặp lại theo chu kỳ Kiểu thường thấy của dạng này là bảng sự kiện tổng hợp theo ngày, tháng, năm
Trang 40- Bảng sự kiện lũy kế lưu lại sự kiện có thời gian không định trước như doanh
số một sản phẩm từ lúc ra đời đến hiện tại
d Nạp dữ liệu vào bảng sự kiện
Vì là nơi tập trung số lượng lớn bản ghi trong kho dữ liệu nên việc ghi dữ liệu vào bảng sự kiện không phải là việc đơn giản, cần phải được xử lý cẩn thận
Xử lý index
Index rất hữu ích đối với truy vấn, nhưng ảnh hưởng tiêu cực đến việc ghi dữ liệu Trong một số trường hợp, bảng sự kiện có nhiều index làm chậm việc ghi đến mức có cảm giác cả tiến trình không hoạt động
Cách xử lý: Xoá hết index trước khi ghi dữ liệu; ghi xong tạo lại index
Xử lý partition
Partition cho phép bảng sự kiện (và cả index) được chia thành các bảng sự kiện nhỏ hơn về mặt vật lý Phép chia này cho phép câu truy vấn có thể chạy đến đúng phân khu chứa dữ liệu cần thiết mà không cần tìm kiếm trên toàn bộ bảng sự kiện Nếu được xử lý tốt, partition giúp làm tăng hiệu năng truy vấn lên đáng kể, đặc biệt là các bảng sự kiện lớn
Partitioning thường trong suốt với người dùng, được vận hành với DBA Kỹ thuật thông dụng nhất là phân vùng theo trường thời gian (năm/quý/tháng/tuần/ngày)
Ưu điểm của trường thời gian là luôn ổn định, được định nghĩa sẵn nên chúng ta luôn biết được khoá thay thế sắp được sử dụng là gì để sử dụng Sai lầm thường thấy là người thiết kế thêm một trường thời gian vào bản ghi sự kiện và dùng trường đó để đánh partition Nếu trường thời gian không xuất hiên trong câu truy vấn, việc phân vùng là vô nghĩa Vì vậy chỉ phân vùng vào trường thời gian được người dùng quan tâm, sử dụng
Loại bỏ rollback log
Mặc định tất cả CSDL quan hệ đều hỗ trợ xử lý lỗi khi transaction thất bại Hệ thống tra các bản ghi lỗi về trạng thái trước commit, bằng cách ghi nhận lại tất cả thao tác thay đổi dữ liệu Khi có lỗi, DB đọc bản ghi log này và sửa chữa tất cả thao tác