Nó cho phép ta tập trung được các nguồn dữ liệu thô khác nhau, tổ chức lại và xây dựng trên đó những công cụ phân tích hữu hiệu giúp cho người sử dụng, những nhà quản lý, lãnh đạo có thể
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN QUANG HUY
DATAWAREHOUSE VÀ ỨNG DỤNG TRONG BÀI TOÁN
QUẢN LÝ CỬA HÀNG BÁN LẺ XĂNG DẦU
LUẬN VĂN THẠC SỸ
HÀ NỘI - 2012
Trang 2Luận văn tốt nghiệp cao học chuyên ngành Công nghệ phần mềm – Khóa 15
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN QUANG HUY
DATAWAREHOUSE VÀ ỨNG DỤNG TRONG BÀI TOÁN
QUẢN LÝ CỬA HÀNG BÁN LẺ XĂNG DẦU
Ngành : Công nghệ thông tin
Trang 3MỤC LỤC
MỤC LỤC 3
DANH SÁCH CÁC THUẬT NGỮ VÀ VIẾT TẮT 5
DANH MỤC HÌNH VẼ 6
MỞ ĐẦU 8
CHƯƠNG I: KHO DỮ LIỆU 10
1.1 Định nghĩa Kho dữ liệu 10
1.2 Các đặc trưng của kho dữ liệu 10
1.2.1 Hướng chủ đề 10
1.2.2 Tính tích hợp 10
1.2.3 Tính bền vững 11
1.2.4 Dữ liệu gắn thời gian và có tính lịch sử 11
1.2.5 Dữ liệu không biến động 11
1.2.6 Dữ liệu tổng hợp và chi tiết 11
1.3 Kiến trúc của kho dữ liệu 11
1.3.1 Nguồn dữ liệu 12
1.3.2 Tiến trình ETL 13
1.3.3 Kho dữ liệu 16
1.3.3.1 Cơ sở dữ liệu của kho dữ liệu 16
1.3.3.2 Siêu dữ liệu (Metadata) 16
1.3.3.3 Kho dữ liệu chủ đề (Datamart) 17
1.3.3.4 Bảng sự kiện tổng hợp (Fact) 18
1.4 Phương pháp xây dựng kho dữ liệu 18
1.5 Thiết kế CSDL cho kho dữ liệu 19
1.5.1 Lược đồ hình sao (Star) 19
1.5.2 Lược đồ hình bông tuyết (Snowflake) 21
1.5.3 Mô hình dữ liệu nhiều chiều (lược đồ kết hợp) 22
1.5.4 Những nhân tố thiết kế cần được cân nhắc 23
1.6 Khai phá kho dữ liệu 24
1.7 Quản trị kho dữ liệu 25
1.8 Ứng dụng của kho dữ liệu 26
1.8.1 Quản trị doanh nghiệp thông minh 26
1.8.2 Quản lý mối quan hệ khách hàng 26
1.8.3 Quản lý dữ liệu chủ 26
1.8.4 Tích hợp dữ liệu khách hàng 27
1.9 Xu hướng tương lai của kho dữ liệu 27
1.9.1 Dữ liệu phi cấu trúc 27
1.9.2 Tìm kiếm 27
1.9.3 Kiến trúc hướng dịch vụ 27
1.9.4 Kho dữ liệu thời gian thực 28
Trang 4CHƯƠNG II: CÔNG CỤ XÂY DỰNG KHO DỮ LIỆU 29
2.1 Tổng quan về hệ quản trị cơ sở dữ liệu Microsoft SQL Server 29
2.2 SQL Server Integration Services (SSIS) 30
2.3 SQL Server Analysis Services (SSAS) 32
2.4 Ngôn ngữ truy vấn MDX 33
2.5 SQL Server Reporting Service (SSRS) 34
2.6 Phương pháp xây dựng kho dữ liệu bằng các công cụ của Microsoft SQL Server 2008 36
CHƯƠNG III: GIỚI THIỆU HỆ THỐNG QUẢN LÝ CỬA HÀNG BÁN LẺ XĂNG DẦU 37
3.1 Tổng quan chung 37
3.2 Hiện trạng của hệ thống Quản lý cửa hàng bán lẻ xăng dầu 37
3.3 Kiến trúc của hệ thống 38
3.3.1 Mô hình tổng thể hệ thống 38
3.3.2 Phân loại dữ liệu 39
3.4 Các chức năng của hệ thống Quản lý cửa hàng bán lẻ xăng dầu 40
3.4.1 Nhóm chức năng nghiệp vụ 40
3.4.2 Chức năng truyền thông với Trung tâm dữ liệu 41
CHƯƠNG IV: XÂY DỰNG KHO DỮ LIỆU QUẢN LÝ CỬA HÀNG XĂNG DẦU 43
4.1 Những khó khăn và lợi ích khi xây dựng kho dữ liệu Quản lý cửa hàng 43
4.1.1 Khó khăn 43
4.1.2 Lợi ích 43
4.2 Thiết kế cơ sở dữ liệu của Kho dữ liệu 44
4.2.1 Kho dữ liệu chủ đề về Hàng hóa 44
4.2.2 Kho dữ liệu chủ đề về kế toán 47
4.3 Sử dụng SSIS để xây dựng tiến trình ETL 50
4.3.1 Mô tả chung 50
4.3.2 Ánh xạ dữ liệu cho các chiều và các bảng sự kiện 50
4.3.3 Xây dựng tiến trình ETL để đẩy dữ liệu vào Kho dữ liệu 53
4.4 Sử dụng dịch vụ SSAS để xây dựng các cơ sở dữ liệu nhiều chiều 53
4.4.1 Xây dựng cube cho kho dữ liệu chủ đề hàng hóa 53
4.4.2 Xây dựng cube cho kho dữ liệu chủ đề kế toán 58
4.5 Sử dụng dịch vụ SSRS để xây dựng các báo cáo 58
4.5.1 Các bước xây dựng báo cáo: 58
4.5.2 Một số kết quả báo cáo xây dựng được: 60
KẾT LUẬN 63
TÀI LIỆU THAM KHẢO 64
Trang 5DANH SÁCH CÁC THUẬT NGỮ VÀ VIẾT TẮT
OLTP (Online Transaction Processing): Xử lý giao dịch trực tuyến
OLAP (Online Analytical Processing): Xử lý phân tích trực tuyến
MOLAP (Multidimensional OLAP): Phương pháp lưu trữ dữ liệu theo cấu trúc đa
chiều
ROLAP (Relational OLAP): Phương pháp lưu trữ dữ liệu theo cấu trúc quan hệ
HOLAP (Hybrid OLAP): Phương pháp lưu trữ dữ liệu kết hợp
MSSQL (Microsoft SQL Server): Hệ quản trị cơ sở dữ liệu của Microsoft
SSIS (SQL Server Intergration Services): Dịch vụ tích hợp dữ liệu của SQL Server SSAS (SQL Server Analysis Services): Dịch vụ phân tích dữ liệu của SQL Server SSRS (SQL Server Reporting Services): Dịch vụ quản lý báo cáo của SQL Server ETL (Extract Transform Load): Tiến trình trích xuất, chuyển đổi và nạp dữ liệu
XML (eXtensible Markup Language): Ngôn ngữ đánh dấu mở rộng
MDX (Multidimensional eXpressions): Ngôn ngữ truy vấn đa chiều
BIDS (Business Intelligence Developtment Studio): Bộ công cụ phát triển của SQL
Server
DDL (Data Definition Language): Ngôn ngữ định nghĩa dữ liệu
DML (Data Manipulation Language): Ngôn ngữ thao tác dữ liệu
RDL (Report Definition Language): Ngôn ngữ định nghĩa báo cáo
ERP (Enterprise Resource Planning): Hệ thống quản trị nguồn lực doanh nghiệp ADSL (Asymmetric Digital Subscriber Line): Đường thuê bao bất đối xứng
DBMS (Database Management System): Hệ quản trị cơ sở dữ liệu
RDBMS (Relational DBMS): Hệ thống quản trị cơ sở dữ liệu quan hệ
DM (Datamart): Kho dữ liệu chủ đề
ODS (Operational Data Sources): Các nguồn dữ liệu tác nghiệp
DCE (Data Conversion and Extraction): Chuyển đổi và xuất ra dữ liệu
DSD (Data Sumaization & Data Enrichment): Tóm lược và làm giàu dữ liệu
SOA (Service- Oriented Architecture): Kiến trúc hướng dịch vụ
BI (Bussiness Intelligence): Giải pháp doanh nghiệp thông minh
Petrolimex: Tập đoàn xăng dầu Việt Nam
CHXD: Cửa hàng bán lẻ xăng dầu
Trang 6DANH MỤC HÌNH VẼ
Hình 1.1: Mô hình kiến trúc của kho dữ liệu
Hình 1.2: Tiến trình ETL nằm ở nguồn dữ liệu
Hình 1.3: Tiến trình ETL nằm ở server chứa kho dữ liệu Hình 1.4: Tiến trình ETL nằm ở server trung gian
Hình 1.5: Lược đồ hình sao (Star)
Hình 1.6: Lược đồ hình bông tuyết
Hình 1.7: Lược đồ kết hợp
Hình 2.1: Các dịch vụ của SQL Server 2008
Hình 2.2: Công cụ phát triển SSIS
Hình 2.3: Kiến trúc của SSAS
Hình 2.4: Kiến trúc của Reporting Service
Hình 2.5: Mô hình xây dựng kho dữ liệu
Hình 3.1: Mô hình tổng thể kiến trúc hệ thống Quản lý CHXD Hình 3.2: Phân loại dữ liệu
Hình 4.1: Kho dữ liệu chủ đề Hàng hóa
Hình 4.2: Kho dữ liệu chủ đề Kế toán
Hình 4.9: Ánh xạ chiều thời gian
Hình 4.10: Ánh xạ chiều tài khoản
Trang 7Hình 4.24: Thiết kế báo cáo
Hình 4.25: Màn hình xây dựng báo cáo
Hình 4.26: Báo cáo sản lượng bán hàng theo khách hàng
Hình 4.27: Báo cáo Doanh thu bán hàng theo khách hàng
Hình 4.28: Báo cáo Doanh thu sản lượng bán hàng theo kho hàng
Hình 4.29: Báo cáo doanh thu sản lượng bán hàng theo thời gian và sản phẩm Hình 4.30: Báo cáo Doanh thu sản lượng bán hàng theo phương thức bán
Trang 8MỞ ĐẦU
Ngày nay thông tin rất cần thiết trong kinh doanh Việc kinh doanh của công ty
có thành công hay không phụ thuộc vào công ty này có được thông tin kịp thời hay không Trong môi trường kinh doanh luôn biến động đòi hỏi thông tin phải được truy cập một cách nhanh chóng, chính xác ở bất cứ nơi nào
Khi đã có được các nguồn dữ liệu với khối lượng khổng lồ, phong phú và đa dạng về kiểu loại và được tổng hợp từ rất nhiều nguồn khác nhau, vấn đề nảy sinh là làm sao khai thác một cách có hiệu quả các nguồn dữ liệu đó đồng thời phải liên tục cập nhật và xử lý dữ liệu hiện đang sử dụng Dữ liệu có thường không nhất quán, dư thừa, khó khai thác và đặc biệt là không dùng được cho những ứng dụng hỗ trợ ra quyết định
Trong những năm gần đây, công nghệ kho dữ liệu ra đời đáp ứng được nhu cầu quản lý, đây là công nghệ đang phát triển rất mạnh và đã được ứng dụng rất nhiều trên thế giới hiện nay Nó cho phép ta tập trung được các nguồn dữ liệu thô khác nhau, tổ chức lại và xây dựng trên đó những công cụ phân tích hữu hiệu giúp cho người sử dụng, những nhà quản lý, lãnh đạo có thể thu được những thông tin thực sự hữu ích từ những dữ liệu đã có, giúp họ đưa ra được những quyết định nhanh chóng, chính xác trong công tác quản lý
Xuất phát từ nhu cầu thực tiễn tại Tập đoàn xăng dầu Việt Nam (Petrolimex), với
hệ thống phân phối nội địa thông qua 80 Công ty xăng dầu thành viên, chi nhánh, xí nghiệp, gần 1.800 cửa hàng và hệ thống đại lý với trên 6.000 điểm bán trên toàn quốc;
hệ thống CHXD phân tán trên phạm vi địa lý rộng lớn nên việc quản lý thông tin của CHXD gặp nhiều khó khăn, thiếu chính xác và không kịp thời Do đó, việc xây dựng kho dữ liệu có ý nghĩa hết sức quan trọng Kho dữ liệu sẽ thu thập dữ liệu từ các hệ thống nghiệp vụ, cung cấp các thông tin hữu ích về số lượng hàng tồn kho, sản lượng
và doanh thu bán hàng, tình hình công nợ - tiền hàng… giúp cho các nhà quản lý có thể có những thông tin chính xác nhanh chóng, phục vụ cho công tác đánh giá kết quả kinh doanh, lập đơn hàng và điều độ hàng hóa, quản trị công nợ, kế hoạch hóa dòng tiền, hỗ trợ cho việc ra các quyết định kịp thời và có lợi nhất cho doanh nghiệp
Trên cơ sở đó, đề tài được xây dựng với các mục tiêu chính như sau:
Nghiên cứu lý thuyết về Kho dữ liệu, phương pháp tổ chức cơ sở dữ liệu
đa chiều, phân tích và khai thác dữ liệu để trợ giúp ra quyết định
Ứng dụng lý thuyết nghiên cứu trong việc tổ chức cơ sở dữ liệu cho bài toán Quản lý cửa hàng bán lẻ xăng dầu bằng công cụ của Microsoft SQL Server 2008
Bố cục của luận văn: Toàn bộ luận văn được trình bày trong bốn chương Trong
đó chương đầu tiên trình bày các lý thuyết chung về kho dữ liệu và mô hình kho dữ liệu, phương pháp xây dựng và thiết kế CSDL cho kho dữ liệu Chương hai trình bày về bộ công cụ sử dụng để xây dựng kho dữ liệu là SQL Server 2008 Chương tiếp theo, luận
Trang 9văn giới thiệu về hệ thống Quản lý cửa hàng bán lẻ xăng dầu đang được ứng dụng tại Tập đoàn xăng dầu Petrolimex Chương bốn, luận văn trình bày phương pháp thiết kế một kho dữ liệu dựa trên cơ sở dữ liệu nguồn của hệ thống Quản lý cửa hàng bán lẻ xăng dầu phục vụ cho việc khai thác báo cáo Phần cuối cùng của luận văn là kết luận và hướng phát triển tiếp theo của đề tài
Trang 10CHƯƠNG I: KHO DỮ LIỆU
Hiện nay hầu hết các doanh nghiệp, tổ chức đều đang phải đương đầu với sự thay đổi của thị trường Người ta thấy rằng để có thể đưa ra một quyết định đúng đắn, trước hết phải có khả năng truy nhập tới tất cả các loại thông tin nhanh chóng Đối với một
tổ chức nào đó, để có thể có quyết định đúng đắn, cần nghiên cứu cả những dữ liệu quá khứ, phân tích nhằm định ra toàn bộ các xu hướng có thể Trong bối cảnh công nghệ thông tin phát triển, dữ liệu được tập trung trong những cơ sở dữ liệu khổng lồ, nhu cầu truy cập vào tất cả các thông tin là cần thiết Cách có hiệu quả nhất để trợ giúp nhu cầu truy nhập thông tin là tổ chức Kho dữ liệu (Data Warehouse)
Các thành phần cấu thành kho dữ liệu cung cấp một khung cơ bản để trao đổi về kiến trúc, cấu trúc và các chiến lược của kho dữ liệu
1.1 Định nghĩa Kho dữ liệu
“Kho dữ liệu (Data Warehouse) là tập hợp của các CSDL tích hợp, hướng chủ
đề, được thiết kế để hỗ trợ cho chức năng trợ giúp quyết định mà mỗi đơn vị dữ liệu đều liên quan tới một khoảng thời gian cụ thể”
Kho dữ liệu thường có dung lượng rất lớn, tới hàng trăm Gigabyte hay thậm chí hàng Terabyte dữ liệu được tổ chức, lưu trữ và phân tích phục vụ cho việc cung cấp các dịch vụ thông tin liên quan đến yêu cầu của một tổ chức nào đó Kho dữ liệu phục
vụ cho việc phân tích với kết quả mang tính thông tin cao Các hệ thống thông tin thu
thập, xử lý dữ liệu loại này còn gọi là Hệ xử lý phân tích trực tuyến (OLAP – Online
Analytical Processing)
Một kho lưu trữ dữ liệu thường được sử dụng như cơ sở cho một hệ thống hỗ trợ quyết định Nó được thiết kế để khắc phục những vấn đề vấp phải khi một tổ chức cố gắng thực hiện chiến lược phân tích có sử dụng cùng một cơ sở dữ liệu đã được sử dụng cho xử lý giao dịch trực tuyến
1.2 Các đặc trưng của kho dữ liệu
1.2.1 Hướng chủ đề
Hướng chủ đề có nghĩa là kho dữ liệu được tổ chức xung quanh các chủ đề chính như khách hàng, sản phẩm, sản xuất Tập trung vào việc mô hình hóa và phân tích dữ liệu cho các nhà quản lý ra quyết định mà không tập trung vào các xử lý thông thường Cung cấp cho người dùng một khung nhìn toàn vẹn, đơn giản và đầy đủ về các sự kiện quanh các chủ đề
1.2.2 Tính tích hợp
Một kho dữ liệu là một khung nhìn thông tin ở mức toàn thể, thống nhất các khung nhìn khác nhau thành một khung nhìn của một chủ đề Ví dụ, hệ thống xử lý
giao dịch trực tuyến OLTP (Online Transaction Processing) truyền thống được xây
dựng trên một vùng phục vụ việc kinh doanh Một hệ thống bán hàng và Marketing có
Trang 11thể có chung một dạng thông tin về khách hàng, nhưng các vấn đề về tài chính thì lại cần một khung nhìn khác Một kho dữ liệu sẽ có một khung nhìn toàn thể về một khách hàng, khung nhìn đó bao gồm các phần dữ liệu khác nhau từ tài chính đến Marketing
Tính tích hợp thể hiện ở chỗ dữ liệu tập hợp trong kho dữ liệu được thu thập từ nhiều nguồn khác nhau và các nguồn có tổ chức khác nhau: Cơ sở dữ liệu, các file excel, các flat file hoặc các raw file Khi đưa vào kho dữ liệu, các dữ liệu được làm sạch và tích hợp với nhau tạo thành một thể thống nhất nhằm đảm bảo tính nhất quán của dữ liệu
1.2.3 Tính bền vững
Dữ liệu trong kho dữ liệu được chuyển đổi từ môi trường tác nghiệp và được lưu trữ trong một thời gian dài, khi dữ liệu được chuyển đổi vào đây thì các thao tác cập nhật và xóa dữ liệu thường không xảy ra Dữ liệu trong kho dữ liệu chỉ có hai thao tác: Chèn mới và đọc dữ liệu, có thể được kiểm tra và không được sửa đổi bởi người sử dụng
1.2.4 Dữ liệu gắn thời gian và có tính lịch sử
Một kho chứa dữ liệu bao hàm một khối lượng lớn dữ liệu mang tính lịch sử Dữ liệu được lưu trữ thành một loạt các Snapshort, mỗi Snapshort 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 nó cho phép khôi phục lại 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 khoá để bảo đảm tính đơn nhất và cung cấp đặc trưng về thời gian cho dữ liệu Dữ liệu trong kho luôn gắn với một giá trị thời gian nhất định
1.2.5 Dữ liệu không biến độ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 được cho là quá cũ Không biến động 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ị xoá, đ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.6 Dữ liệu tổng hợp và chi tiết
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 một tổ chức Dữ liệu tác nghiệp thuần tuý không được lưu trữ trong kho dữ liệu Dữ liệu tổng hợp được tích lại qua nhiều giai đoạn khác nhau
1.3 Kiến trúc của kho dữ liệu
Mô hình kiến trúc của kho dữ liệu cơ bản (hình 1.1) gồm có ba thành phần: Dữ liệu nguồn, khu vực xử lý và kho dữ liệu
Trang 12Hình 1.1: Mô hình kiến trúc của kho dữ liệu
1.3.1 Nguồn dữ liệu
Nguồn dữ liệu của kho dữ liệu có thể từ rất nhiều nguồn khác nhau và có cấu trúc
dữ liệu khác nhau, bao gồm các hệ thống trong và ngoài của một tổ chức, rất phong phú
về chủng loại Các hệ thống nằm trong được coi như các hệ thống nguồn hoặc các hệ thống đã có sẵn
- Hệ thống đã có sẵn (Legacy System - LS): là một hệ thống tác nghiệp Hệ
thống này đã từng được phát triển, sử dụng các công nghệ có sẵn và vẫn phù hợp với các nhu cầu Có thể phân ra thành hai loại:
+ Dữ liệu từ hệ thống tác nghiệp: Đây là nguồn dữ liệu chính để xây dựng kho
dữ liệu, chứa các dữ liệu chi tiết hiện tại của hệ thống tác nghiệp
+ Dữ liệu từ hệ thống phân tích: Đây là dữ liệu được tổng hợp từ dữ liệu nguồn đã cũ và tổ chức lại theo nhiều phương pháp khác nhau
- Dữ liệu ngoài: Là dữ liệu không nằm trong các hệ thống tác nghiệp của một tổ
chức, có thể do các tổ chức khác thu thập và tạo ra, nó được sử dụng cho các yêu cầu phân tích dữ liệu
Các LS được phát triển để phục vụ cho các dự án Các ứng dụng được phát triển cùng với dữ liệu mà các dữ liệu này lại đáp ứng nhiều nhu cầu khác nhau Cùng là một
dữ liệu nhưng lại có tên khác nhau hoặc thuộc các hệ thống đo lường khác nhau Kết quả cuối cùng là các nguồn dữ liệu cần được đánh giá và các định nghĩa cần được đưa vào Metadata để nhắm tới các vấn đề sau:
- Xác định các nguồn khác nhau, các cấu trúc file khác nhau, các nền (Platform)
khác nhau
- Hiểu được dữ liệu nào có trong các hệ thống nguồn đang tồn tại, các định nghĩa
của dữ liệu và bất kỳ các luật nào cho dữ liệu
- Phát hiện sự giao nhau về thông tin của các hệ thống khác nhau
Khu vực
xử lý Kho dữ liệu Nguồn
Trang 13- Quyết định dữ liệu tốt nhất trong các hệ thống Mỗi hệ thống cần được đánh giá
để quyết định hệ thống nào có dữ liệu rõ ràng và chính xác hơn
Dữ liệu từ các hệ thống nguồn thường hỗn tạp và chứa nhiều cấu trúc khác nhau
ví dụ: các cơ sở dữ liệu, từ các file excel, các file thô, hay dạng XML Vì thế trước khi đưa vào kho dữ liệu cần phải chuyển đổi và tích hợp dữ liệu
1.3.2 Tiến trình ETL
Tiến trình ETL gồm có ba bước:
Trích xuất dữ liệu: Dữ liệu nguồn từ rất nhiều nguồn khác nhau và có thể có
rất nhiều cấu trúc dữ liệu khác nhau như nhiều loại cơ sở dữ liệu, từ file excel hay từ file thô Vì thế nhiệm vụ chính của bước này là trích xuất dữ liệu từ hệ thống nguồn để xử lý
- Trích lấy dữ liệu là xử lý để lấy các dữ liệu đã được xác định trước ra khỏi
các hệ thống tác nghiệp và các nguồn dữ liệu ngoài Việc trích lấy dữ liệu nguồn có thể được hoàn thành bởi các công việc: đọc nguồn một cách trực tiếp, đọc một ảnh của nguồn hoặc đọc Log
- Có một số công cụ và các trình tiện ích phục vụ cho quá trình trích lấy dữ
liệu Các vấn đề xung quanh việc trích lấy dữ liệu bao gồm cơ cấu thời gian trong đó dữ liệu được trích lấy và hiệu quả của việc trích lấy dữ liệu đó
- Với mọi phương thức trích chọn dữ liệu, siêu dữ liệu (Metadata) luôn đóng
vai trò quan trọng trong quá trình xử lý Metadata mẫu bao gồm: các định nghĩa của hệ thống nguồn, các khuôn dạng vật lý, phương thức và bản liệt kê việc trích lấy dữ liệu Có thể dùng các công cụ hoặc thực hiện bằng tay để thu được Metadata
- Có thể phát hiện ra những thay đổi được thực hiện đối với dữ liệu trong hệ
thống LS thông qua việc đọc Log Những thay đổi đó là các hành động chèn thêm, cập nhật và xoá cũng như thông tin của cột hoặc hàng liên quan Toàn
bộ những thay đổi được ghi lại và sau đó được áp dụng theo trật tự mà các thay đổi đó đã được thực hiện trong hệ thống tác nghiệp
Chuyển đổi dữ liệu:
- Dữ liệu sau khi được trích xuất sẽ được tinh chế thông qua các công việc
làm sạch (Cleaning), chuyển đổi (Transforming) Các công cụ đó có thể thực hiện trên một tập các thông số đã được xác định trước, trên Logic mờ hoặc triển khai các thuật toán thông minh Các thuật toán thông minh Heuristic với tập luật mở rộng mô phỏng suy diễn của con người làm cho việc điều tra tiến hành nhanh hơn
Trang 14- Trước khi có thể chuyển đổi và tích hợp dữ liệu, nên thiết lập hệ thống đo
lường và chuẩn hoá các định/ngữ nghĩa Mục đích của việc chuyển đổi là chuyển dữ liệu thành thông tin và làm cho chúng dễ hiểu, dễ sử dụng hơn đối với người sử dụng
- Các định nghĩa của dữ liệu phải chính xác, đầy đủ, tin cậy và có giá trị Nếu
dữ liệu đã được đưa vào kho dữ liệu không đúng thì sau đó phải quan tâm tới việc xem xét lại Việc này liên quan nhiều tới việc tổ chức Các câu hỏi cần đặt ra trước khi thay đổi cái cũ là: các thay đổi có hợp pháp và đúng quy cách không? Có thể đáp ứng được những thay đổi này không? Thay đổi có phải là lâu dài không? Nếu câu trả lời là có cho cả 3 câu hỏi trên thì thay đổi đó là có thể thực hiện được
- Các phép chuyển đổi dữ liệu:
+ Chọn các cột dữ liệu phù hợp (chỉ chọn các cột cần thiết)
+ Chuyển đổi dữ liệu Ví dụ: chuyển 1 thành Nam hay ngược lại
+ Tạo ra các cột tính toán mới Ví dụ: Điểm trung bình = Tổng điểm/số trình
+ Lọc dữ liệu
+ Sắp xếp dữ liệu
+ Thực hiện các phép tổng hợp (tính tổng các cột, đếm số dòng, tính trung bình)
+ Tạo ra các giá trị mới (tạo khóa tự tăng)
+ Tìm kiếm hay so sánh dữ liệu
Có thể nói đây là bước quan trọng nhất trong tiến trình ETL, nó thực hiện hầu hết các nhiệm vụ của tiến trình ETL
Nạp dữ liệu vào kho dữ liệu: Đây là quá trình đẩy dữ liệu sau khi đã được
chuyển đổi vào kho dữ liệu Dữ liệu sau khi đã được chuyển đổi sẽ được nạp vào kho dữ liệu
Các kiểu kiến trúc ETL: Có ba kiểu kiến trúc ETL chính là kiểu Push, kiểu Pull, kiểu Server trung gian:
- Kiểu Push: Trong kiến trúc này tiến trình ETL sẽ được chạy tại server chứa
nguồn dữ liệu Mỗi khi cập nhật dữ liệu mới tiến trình ETL sẽ xử lý tại nguồn
dữ liệu sau đó đẩy dữ liệu mới đã được xử lý cho kho dữ liệu Mô hình này thường được sử dụng nếu nguồn dữ liệu là từ một server và máy nguồn đủ
Trang 15mạnh để xử lý tiến trình ETL Thông thường mô hình này sử dụng khi dữ liệu nguồn không quá phức tạp và khối lượng dữ liệu không quá lớn
Hình 1.2 Tiến trình ETL nằm ở nguồn dữ liệu
- Kiểu Pull: Với kiến trúc này tiến trình ETL sẽ được chạy ở server chứa kho
dữ liệu Mỗi khi cập nhật dữ liệu tiến trình này sẽ kết nối tới các nguồn dữ liệu
và lấy dữ liệu về xử lý sau đó nạp vào kho dữ liệu Ở kiến trúc này dữ liệu nguồn có thể từ nhiều nơi khác nhau, tuy nhiên máy chứa kho dữ liệu cần phải
có đủ năng lực xử lý tiến trình ETL Cũng như kiển Push kiểu kiến trúc này cũng được sử dụng khi khối lượng dữ liệu và khối lượng thao tác không quá lớn
Hình 1.3 Tiến trình ETL nằm ở server chứa kho dữ liệu
- Kiểu Server trung gian: Đây là kiến trúc mà tiến trình ETL sẽ được chạy
trên một máy độc lập với cả kho dữ liệu và nguồn dữ liệu Tiến trình sẽ đến lấy dữ liệu từ nguồn dữ liệu sau đó xử lý và nạp vào kho dữ liệu Kiểu kiến trúc này thường được áp dụng cho các kho dữ liệu lớn, ở đây tiến trình ETL sẽ được chạy trên một máy độc lập đủ năng lực xử lý
Trang 16Hình 1.4 Tiến trình ETL nằm ở server trung gian
1.3.3 Kho dữ liệu
1.3.3.1 Cơ sở dữ liệu của kho dữ liệu
Cơ sở dữ liệu tập trung là một nền tảng cơ bản của môi trường kho dữ liệu Cơ sở
dữ liệu này hầu hết được cài đặt dựa trên công nghệ của Hệ thống quản trị cơ sở dữ liệu quan hệ (RDBMS) Tuy nhiên, việc cài đặt một kho dữ liệu dựa trên kỹ thuật của RDBMS truyền thống bị ràng buộc bởi một thực tế là việc cài đặt RDBMS truyền thống
đã được tối ưu hoá đối với việc xử lý cơ sở dữ liệu giao dịch Những thuộc tính tất yếu của kho dữ liệu như kích cỡ rất lớn, xử lý các truy vấn đặc biệt và sự cần thiết tạo ra những khung nhìn linh hoạt cho người sử dụng bao gồm việc tập hợp, kết hợp nhiều bảng và khoan sâu (Drill_down) trở thành những định hướng cho các cách tiếp cận khác nhau tới cơ sở dữ liệu của kho dữ liệu Những cách tiếp cận đó bao gồm:
- Thiết kế CSDL quan hệ song song
- Một cách tiếp cận mới để làm tăng tốc độ RDBMS truyền thống là cách sử dụng một cấu trúc chỉ số bỏ qua kiểm tra các bảng quan hệ
- Các cơ sở dữ liệu đa chiều dựa trên công nghệ cơ sở dữ liệu phổ biến hoặc được cài đặt sử dụng trên nền RDBMS quen thuộc Cơ sở dữ liệu đa chiều được thiết kế để khắc phục những giới hạn tồn tại trong kho dữ liệu gây ra do bản chất của mô hình dữ liệu quan hệ Cách tiếp cận này gắn liền với các công cụ xử lý phân tích trực tuyến thực hiện như một đối tác của các kho dữ liệu đa chiều Các công cụ này gộp lại thành một nhóm công cụ truy vấn, tạo báo cáo, phân tích và đào xới dữ liệu
1.3.3.2 Siêu dữ liệu (Metadata)
Trong việc tổ chức kho dữ liệu, không chỉ những người dùng đầu cuối mà ngay cả những nhân viên quản trị đều cần truy nhập toàn bộ thông tin trong bảng gồm các đối tượng cũng như các thuộc tính Do đó họ muốn biết một số vấn đề:
Trang 17- Có thể tìm thấy dữ liệu ở đâu?
- Tồn tại những loại thông tin, dữ liệu nào?
- Dữ liệu thuộc loại nào, có dạng ra sao?
- Trong các cơ sở dữ liệu khác nhau thì dữ liệu có liên quan với nhau như thế nào?
- Dữ liệu được lấy từ đâu và nó thuộc ai quản lý?
Vì vậy hình thành một dạng cơ sở dữ liệu khác được gọi là Metadata nhằm mô tả cấu trúc nội dung của cơ sở dữ liệu chính Trong môi trường cơ sở dữ liệu phức hợp, một Metadata phù hợp là không thể thiếu bởi nó định nghĩa nên các thành phần của kho
dữ liệu, cách thức dữ liệu được tải vào kho dữ liệu, lưu lại quá trình hoạt động của kho
dữ liệu Một vấn đề xuất hiện thường xuyên là khả năng giao tiếp với người sử dụng về những thông tin bên trong kho dữ liệu và cách thức chúng được truy nhập Chính Metadata là cách để người sử dụng và các ứng dụng có thể tiếp cận được với những thông tin được lưu trữ trong kho dữ liệu Nó có thể định nghĩa tất cả các phần tử dữ liệu
và các thuộc tính của chúng
Metadata cần được thu thập khi kho dữ liệu được thiết kế và xây dựng Metadata phải có sẵn cho tất cả những người sử dụng kho dữ liệu để hướng dẫn họ dùng kho dữ liệu Ngoài ra các công cụ trợ giúp cũng được thiết lập và cần được đánh giá
Siêu dữ liệu gồm có các dạng sau:
- Dữ liệu định nghĩa và cách thức ánh xạ dữ liệu vào các bảng trong kho dữ liệu
- Dữ liệu định nghĩa và giải thích cấu trúc của các bảng bên trong kho dữ liệu
- Dữ liệu định nghĩa cấu trúc dữ liệu ở hệ thống nguồn
- Dữ liệu định nghĩa và chú thích về tiến trình ETL
- Dữ liệu định nghĩa các luật về chất lượng dữ liệu, các mức độ sai lệch của dữ liệu và cách thức xử lý
- Dữ liệu theo dõi tiến trình xử lý các bản ghi trong kho dữ liệu
- Dữ liệu chứa các sự kiện hoạt động của các ứng dụng
1.3.3.3 Kho dữ liệu chủ đề (Datamart)
Kho dữ liệu chủ đề (Datamart - DM) 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 Cá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
Datamart là một kho dữ liệu thứ cấp gồm các dữ liệu tích hợp của kho dữ liệu Datamart được hướng tới một phần của dữ liệu, thường được gọi là một vùng chủ đề (SA) được tạo ra dành cho một nhóm người sử dụng Dữ liệu trong Datamart cho thông tin về một chủ đề xác định, không phải về toàn bộ các hoạt động nghiệp vụ đang diễn ra trong một tổ chức Thể hiện thường xuyên nhất của Datamart là một kho dữ liệu riêng rẽ theo phương diện vật lý, thường được lưu trữ trên một Server riêng trong một
Trang 18mạng cục bộ phục vụ cho một nhóm người nhất định Đôi khi Datamart với công nghệ OLAP tạo ra các quan hệ theo dạng hình sao đặc biệt hoặc những siêu khối (Hypercube)
dữ liệu cho việc phân tích của một nhóm người có cùng mối quan tâm trên một phạm vi
dữ liệu Có thể chia Datamart ra làm hai loại: 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, tinh chế, tích hợp lại ở mức cao hơn để phục vụ một chủ đề nhất định
- Datamart độc lập không giống như Datamart phụ thuộc, nó được xây dựng trước kho dữ liệu và dữ liệu được lấy từ các nguồn dữ liệu tác nghiệp 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 Datamart độc lập có cách tích hợp riêng do đó dữ liệu từ nhiều Datamart khó đồng nhất với nhau
Datamart thể hiện hai vấn đề: tính ổn định khi một Datamart nhỏ ban đầu lớn lên nhanh chóng theo nhiều chiều và sự tích hợp dữ liệu Vì vậy khi thiết kế Datamart phải chú ý tới tính ổn định của hệ thống, sự đồng nhất của dữ liệu và vấn đề về khả năng quản
lý
1.3.3.4 Bảng sự kiện tổng hợp (Fact)
Các bảng tổng hợp này lưu dữ các dữ liệu tính toán được nhằm trả lời một cách nhanh nhất các câu hỏi của người dùng đưa ra Đây là dữ liệu có thể tính toán được từ các bảng khác tuy nhiên để tăng tốc độ xử lý dữ liệu này được lưu trữ để không phải tính toán lại mỗi khi có truy vấn
1.4 Phương pháp xây dựng kho dữ liệu
Xây dựng kho dữ liệu vừa là một tiến trình công việc và cũng đồng thời là một kiến trúc nhằm thực hiện các nội dung như: lựa chọn, chuyển đổi, lưu chuyển, bảo toàn tính toàn vẹn, tích hợp, làm sạch dữ liệu, đưa dữ liệu từ nhiều nguồn dữ liệu tác nghiệp vào hệ thống quản lý cơ sở dữ liệu để phục vụ các quá trình ra quyết định Kiến trúc của các kho dữ liệu cung cấp nhiều khả năng mềm dẻo, nhiều khả năng mở rộng để phục vụ cho các ứng dụng hiện có cũng như cho các ứng dụng mới trong tương lai Kho dữ liệu gồm các thành phần thiết yếu sau:
- Các nguồn dữ liệu tác nghiệp ODS (Operational Data Sources)
- Chuyển đổi và xuất ra dữ liệu DCE (Data Conversion and Extraction)
- Tóm lược và làm giàu dữ liệu DSD (Data Sumaization & Data Enrichment)
- Hệ thống quản lý các CSDL của kho dữ liệu DBMS (Database Management System)
- Quản lý các siêu dữ liệu
- Các công cụ (Tools) truy nhập và phân tích
Trang 19Quá trình xây dựng kho dữ liệu có thể bắt đầu bằng việc xây dựng các Datamart,
có nghĩa là sau khi xây dựng xong các Datamart ta tiến hành kết nối, tích hợp chúng với nhau tạo thành kho dữ liệu Theo cách này, Datamart chính là mô hình và là bước đầu tiên của quá trình xây dựng kho dữ liệu Cách thứ hai, ta có thể xây dựng kho dữ liệu trước sau đó tạo ra các Datamart Mỗi phương pháp đều có thuận lợi và khó khăn của
nó, tùy điều kiện cụ thể ta lựa chọn hay kết hợp các phương pháp cho phù hợp
Phương pháp phân tích, thiết kế và quá trình xây dựng kho dữ liệu có thể được chia thành các giai đoạn, trong mỗi giai đoạn có các bước:
- Giai đoạn khảo sát
+ Bước 1: Xác định chiến lược và xây dựng kế hoạch
+ Bước 2: Khảo sát, đánh giá hiện trạng hệ thống
- Giai đoạn phân tích thiết kế
+ Bước 3: Phân tích, thiết kế hệ thống và xây dựng mẫu thử nghiệm (Prototype)
- Giai đoạn xây dựng, phát triển hệ thống
+ Bước 4: Triển khai xây dựng hệ thống
+ Bước 5: Khai thác và duy trì hệ thống
1.5 Thiết kế CSDL cho kho dữ liệu
Một vài phương pháp và công cụ phục vụ tốt cho việc tạo ra các hệ thống tác nghiệp gần như là không phù hợp với những yêu cầu khác nhau của kho dữ liệu Điều này rất đúng trong các hệ thống quản trị cơ sở dữ liệu Hệ thống OLTP truyền thống được thiết kế một cách đơn giản không phù hợp với những yêu cầu của phương pháp kho
dữ liệu Những dự án dùng phương pháp kho dữ liệu buộc phải lựa chọn giữa một mô hình dữ liệu và một giản đồ dữ liệu liên quan trực quan cho việc phân tích nhưng nghèo nàn về thể hiện Một giản đồ - mô hình là cách thực hiện tốt hơn nhưng không phù hợp lắm cho việc phân tích Khi phương pháp kho dữ liệu được tiếp tục phát triển thì những cách tiếp cận mới cho việc thiết kế giản đồ dữ liệu phù hợp hơn với việc phân tích được hình thành và đó là điều cốt yếu dẫn đến thành công của phương pháp kho dữ liệu Một giản đồ được chấp nhận sử dụng rộng rãi cho phương pháp kho dữ liệu
là giản đồ hình sao
1.5.1 Lƣợc đồ hình sao (Star)
Việc phân tích, dự báo đòi hỏi những giản đồ CSDL chủ yếu tập trung vào những truy vấn mà bản chất là đa chiều và hướng mảng (Array-oriented) Như vậy, công nghệ CSDL chính của kho dữ liệu là RDBMS Ta sẽ xem xét việc thiết kế giản đồ dữ liệu khi gắn liền nó với công nghệ CSDL quan hệ
Giản đồ hình sao được đưa ra lần đầu tiên bởi Raph Kimball như là một lựa chọn thiết kế CSDL cho kho dữ liệu Trong giản đồ hình sao, dữ liệu được xác định và phân loại theo hai kiểu: sự kiện (bảng Fact: đối tượng trung tâm) và phạm vi (các bảng
Trang 20Dimension: các bảng liên kết) Trong giản đồ hình sao chỉ có một bảng liên quan trực tiếp tới hầu hết các bảng còn lại đó là bảng Fact và là bảng chứa yếu tố cốt lõi cần được phân tích Nó được gọi là giản đồ hình sao bởi vì các sự kiện nằm ở trung tâm của mô hình và được bao quanh bởi các phạm vi liên quan, rất giống với các điểm của một ngôi sao Các sự kiện là các đại lượng số của công việc Các phạm vi là các bộ lọc hoặc các ràng buộc của những sự kiện này Ví dụ: thông tin về khách hàng như tên, địa chỉ là một phạm vi, trong khi đó thông tin bán hàng cho khách hàng đó là một sự kiện
Hình 1.5 Lược đồ hình sao (Star)
Với giản đồ hình sao, người thiết kế có thể dễ dàng mô phỏng những chức năng của CSDL đa chiều Sự phi chuẩn hóa có thể coi là sự tiền kết nối (Pre-joining) các bảng để cho các ứng dụng không phải thực hiện công việc kết nối, làm giảm thời gian thực hiện
Giản đồ hình sao được thiết kế là để khắc phục những hạn chế của mô hình quan
hệ hai chiều Với cơ sở dữ liệu được thiết kế theo giản đồ hình sao, những truy vấn với những câu hỏi phức tạp liên quan tới nhiều bảng và số liệu tổng cộng trở nên đơn giản hơn và số lượng công việc cần thực hiện để đưa được ra câu trả lời là ít nhất so với một
mô hình quan hệ chuẩn Giản đồ hình sao cải thiện đáng kể thời gian truy vấn và cho phép thực hiện một số tính năng đa phạm vi Giản đồ này rất trực quan, dễ sử dụng, thể hiện khung nhìn đa chiều của dữ liệu dùng ngữ nghĩa của CSDL quan hệ Khóa của bảng Fact được tạo bởi những khóa của các bảng chứa thông tin theo từng phạm vi (bảng Dimension) Tất cả các khóa đều được xác định với cùng một chuẩn đặt tên
Ví dụ, để lấy được thông tin thành phố của khách hàng cụ thể, cần phải kết hợp khóa chỉ khách hàng đó trong bảng sự kiện (bảng Fact) với khóa của khách hàng đó trong bảng phạm vi (bảng Dimension) và đặt thuộc tính thành phố của khách hàng đó là thành phố mà họ quan tâm
Chiều Sản phẩm
Bảng
sự kiện bán hàng
Chiều cửa hàng
Chiều khách hàng
Chiều thời gian
Trang 21Bảng Fact có chứa khóa của các bảng Dimension, có thể là với tên khác đi để đảm bảo tính duy nhất của mỗi hàng Các bảng Dimension thường có định danh duy nhất và chứa đựng những thông tin về chiều (Dimension) của bảng đó
Vì bảng Fact được tổng hợp từ trước và được kết hợp theo nhiều chiều nên xu hướng có rất nhiều hàng và tăng trưởng một cách nhanh chóng trong khi đó các bảng Dimension không có nhiều hàng và sự tăng trưởng là tĩnh Bảng Fact có thể bao gồm hàng chục triệu hàng Bảng Dimension chứa đựng các thuộc tính có thể được sử dụng như các tiêu chí tìm kiếm và thường có kích thước nhỏ hơn nhiều, rất quen thuộc với người sử dụng từ trước Khoá của nó không là khoá ghép như bảng Fact Nếu một bảng Dimension bắt đầu có sự tương đồng với bảng Fact thì nó cần được tiếp tục chia ra thành các bảng Dimension nữa Nếu một bảng Dimension được chia thành Dimension chính và Dimension phụ thì cấu trúc thu được gọi là một giản đồ tuyết rơi hoặc một cấu trúc sao mở rộng
Một giản đồ hình sao đơn giản chỉ gồm một bảng Fact và một vài bảng Dimension Một giản đồ hình sao phức tạp bao gồm hàng trăm bảng Fact và bảng Dimension Một vài kỹ thuật để cải thiện hiệu suất của các truy vấn trong giản đồ hình sao bao gồm:
- Xác định sự kết hợp các bảng Fact đang tồn tại hay tạo ra một sự kết hợp mới các bảng Fact
- Phân chia bảng Fact đến mức mà hầu hết các truy vấn chỉ truy nhập tới phần đó
- Tạo ra các bảng Fact riêng rẽ
- Tạo ra những tệp chỉ số đơn duy nhất hoặc các kỹ thuật khác để cải thiện năng suất kết hợp
Cả bảng Fact và các bảng Dimension đều không bắt buộc ở dạng chuẩn như đối với phương pháp thiết kế truyền thống tức là có dư thừa dữ liệu Loại giản đồ này cho phép lưu trữ dư thừa dữ liệu, đổi lại khả năng truy nhập nhanh hơn phù hợp với những câu hỏi phân tích nhiều chiều, phức tạp Về bản chất bảng Fact thuộc dạng chuẩn 1 với mức độ dư thừa dữ liệu rất lớn
Có thể nói giản đồ hình sao là một CSDL chỉ đọc, việc cập nhật dữ liệu là rất khó nếu không muốn nói là không thể được Một vài bảng Dimension chứa dữ liệu có thể được thêm vào bằng các truy vấn có kết nối, một vài bảng khác lại không chứa dữ liệu gì ngoài việc phục vụ đánh chỉ số cho dữ liệu
1.5.2 Lƣợc đồ hình bông tuyết (Snowflake)
Giản đồ hình bông tuyết là một sự mở rộng của giản đồ hình sao, tại đó mỗi cánh sao không phải là một bảng Dimension mà là nhiều bảng Trong dạng giản đồ này, mỗi bảng theo chiều của giản đồ hình sao được chuẩn hóa hơn Giản đồ hình bông tuyết cải thiện năng suất truy vấn, tối thiểu không gian đĩa cần thiết để lưu trữ dữ liệu và cải thiện năng suất nhờ việc chỉ phải kết hợp những bảng có kích thước nhỏ hơn thay vì phải kết hợp những bảng có kích thước lớn lại không chuẩn hóa Nó cũng làm tăng tính linh hoạt của các ứng dụng bởi sự chuẩn hóa và ít mang bản chất theo chiều hơn Nó
Trang 22làm tăng số lượng các bảng và làm tăng tính phức tạp của một vài truy vấn cần có sự tham chiếu tới nhiều bảng Một vài công cụ đã che giấu người sử dụng giản đồ CSDL vật lý và cho phép họ có thể làm việc ở mức khái niệm Những công cụ này đã ánh xạ những truy vấn của người sử dụng tới sơ đồ vật lý Họ cần một bộ quản trị CSDL để thực hiện công việc này một lần đầu tiên khi công cụ này được cài đặt
Hình 1.6 Lược đồ hình bông tuyết
1.5.3 Mô hình dữ liệu nhiều chiều (lƣợc đồ kết hợp)
Là kết hợp giữa giản đồ hình sao dựa trên bảng Fact và những bảng Dimension không chuẩn hóa theo các chuẩn 1, 2, 3 và giản đồ hình tuyết rơi trong đó tất cả các bảng Dimension đều đã được chuẩn hóa Trong giản đồ loại này chỉ những bảng Dimension lớn là được chuẩn hóa còn những bảng khác chứa một khối lượng lớn các cột
dữ liệu chưa được chuẩn hóa
Đây là mô hình dữ liệu xoay quanh các chủ đề nhằm trả lời một cách nhanh nhất các câu hỏi trong nghiệp vụ của người quản lý Có thể nhìn dữ liệu được tổ chức như là một khối, trong đó mỗi chiều là một chủ đề trong nghiệp vụ
Hình 1.7: Lược đồ kết hợp
Chiều thời gian
Cửa hàng phân phối
Chiều sản phẩm
Chiều khách hàng
Bảng
sự kiện bán hàng
Loại sản phẩm
Trang 23Ở hình trên, khối dữ liệu gồm có ba chiều: Khách hàng, sản phẩm, thời gian Mỗi
ô trong đó là một bản ghi được lưu giữ trong bảng sự kiện Với mô hình này người dùng có thể dễ dàng đặt ra các câu hỏi theo các tiêu chí khác nhau, việc trả lời truy vấn cũng dễ dàng hơn và tốc độ xử lý nhanh hơn tổ chức theo mô hình bảng quan hệ Một vài CSDL và các công cụ truy vấn của người sử dụng, nhất là các công cụ xử
lý phân tích trực tuyến (OLAP) đòi hỏi mô hình dữ liệu phải là giản đồ hình sao bởi vì
nó là một mô hình dữ liệu quan hệ nhưng lại được thiết kế để hỗ trợ mô hình dữ liệu
đa chiều, là điểm cốt lõi của OLAP Các cơ sở dữ liệu và công cụ này được điều chỉnh cho phù hợp để thực hiện được các yêu cầu truy vấn đối với mô hình này
1.5.4 Những nhân tố thiết kế cần đƣợc cân nhắc
Thiết kế cấu trúc kho dữ liệu có thể làm ảnh hưởng đến tính dễ dàng trong việc thiết kế và xây dựng các khối (Cube) Microsoft SQL Server OLAP Services dựa vào dữ liệu được cung cấp bởi kho dữ liệu có tính chính xác, ổn định và toàn vẹn Khi tạo ra một kho dữ liệu sử dụng với OLAP, những nhân tố thiết kế cần phải được cân nhắc là:
- Sử dụng sơ đồ hình sao hoặc bảng phẳng chính (Flat) nếu có thể Nếu một sơ
đồ dạng hình tuyết rơi là cần thiết thì giảm thiểu số bảng Dimension vượt ra ngoài mức thứ nhất từ bảng chính
- Thiết kế các bảng Dimension cho người dùng Các bảng Dimension cần có thông tin ý nghĩa về thực tế mà người dùng muốn tìm hiểu
- Áp dụng việc chuẩn hoá thông thường vào thiết kế bảng Dimension Không nên kết hợp dữ liệu không quan hệ vào bảng Dimension đơn và không nên lặp lại
dữ liệu trong các bảng Dimension Ví dụ: tạo Dimension khách hàng riêng biệt thay vì lặp lại thông tin khách hàng trong nhiều bảng Dimension
- Không tổng hợp thừa trong bảng chính Giữ lại mức tinh tế cần thiết cho người dùng truy cập và giữ lại tất cả các bản ghi của bảng chính trong cùng một mức độ chi tiết OLAP Services được thiết kế để tạo ra và quản lý dữ liệu tổng hợp
từ các kho lưu trữ dữ liệu hạt nhân mức cao để không làm tăng thời gian trả lời yêu cầu
- Sử dụng cấu trúc chung cho bảng chính (Fact) cho dữ liệu cùng loại Dữ liệu
sử dụng trong một khối có thể được lưu trữ trong các bảng chính đa chiều nhưng những bảng này phải có cùng cấu trúc
- Không tạo các bảng phụ cho dữ liệu tổng OLAP Services tính toán trước các tổng theo cấu trúc mà được thiết kế cho việc truy vấn có hiệu quả Các bảng tổng phụ không được sử dụng
- Tạo chỉ số cho các trường khoá Với mỗi bảng Dimension tạo ra một chỉ số trên cột khoá của nó, với mỗi bảng Fact tạo ra một chỉ số đơn trên tổ hợp các cột
mà nó chứa các khoá ngoại của bảng Dimension được kết hợp với bảng Fact OLAP Services sử dụng những chỉ số này khi chúng Load các cấu trúc dữ liệu đa
Trang 24chiều và các tính toán dữ liệu tổng Những chỉ số này cải tiến đáng kể quá trình xử
lý
- Bảo đảm tính toàn vẹn Đây là điều quan trọng vì các bảng Fact được biểu diễn theo các bảng Dimension Các bảng Fact mà không có khoá tương ứng trong bảng Dimension có thể gây lỗi hoặc các hàng trong bảng Fact bị bỏ đi nếu các bảng Fact và bảng Dimension được dùng trong cùng một khối Các bảng Dimension chứa thông tin không được biểu diễn trong bảng Fact có thể gây ra các ô trống trong các khối Những ô trống này có thể gây trở ngại cho một số kết quả tính toán phân tích
- Thiết kế một chiến lược cập nhật dữ liệu Khi dữ liệu được thêm vào hoặc thay đổi trong kho lưu trữ dữ liệu, các khối được xây dựng từ dữ liệu trước phải được cập nhật trước khi dữ kiệu mới được cung cấp cho người dùng Việc sát nhập dữ liệu bổ sung trong các khối đòi hỏi thời gian ít hơn việc xây dựng các khối khi dữ liệu tồn tại thay đổi
1.6 Khai phá kho dữ liệu
Khai phá dữ liệu là quá trình đi tìm kiếm các thông tin tiềm ẩn có giá trị trong các khối dữ liệu lớn Công cụ khai phá dữ liệu có thể phát hiện các thông tin mang tính dự đoán, hay các thông tin hỗ trợ cho việc ra quyết định của người quản lý doanh nghiệp Kho dữ liệu được sử dụng cho các ứng dụng khai phá bởi vì những lý do sau:
- Dữ liệu trong nó đã được làm sạch có cấu trúc
- Kho dữ liệu có siêu dữ liệu định nghĩa về dữ liệu
- Dữ liệu trong kho dữ liệu đã được tích hợp sẵn
kỹ thuật cao để đưa ra các dữ liệu tinh và chính xác hơn chứ chưa đưa ra được dữ liệu “tri thức”
Trang 25- Các kho dữ liệu được sử dụng để hỗ trợ cho phân tích trực tuyến (OLAP) Trong khi ngôn ngữ truy vấn chuẩn SQL và các công cụ làm báo cáo truyền thống chỉ có thể miêu tả những gì có trong CSDL thì phân tích trực tuyến có khả năng phân tích dữ liệu, xác định xem giả thuyết đúng hay sai Tuy nhiên phân tích trực tuyến lại không có khả năng đưa ra được các giả thuyết Hơn nữa, kích thước quá lớn và tính chất phức tạp của kho dữ liệu làm cho nó rất khó có thể sử dụng cho những mục đích như đưa ra các giả thuyết từ các thông tin mà chương trình ứng dụng cung cấp (ví dụ như khó có thể đưa ra được giả thuyết giải thích được hành
vi của một nhóm khách hàng)
- Trước đây, kỹ thuật học máy thường được sử dụng để tìm ra những giả thuyết từ các thông tin dữ liệu thu thập được Tuy nhiên thực nghiệm cho thấy chúng thể hiện khả năng rất kém khi áp dụng với các tập dữ liệu lớn trong kho dữ liệu Phương pháp thống kê tuy ra đời đã lâu nhưng không có gì cải tiến để phù hợp với sự phát triển của dữ liệu Đây chính là lý do tại sao một khối lượng lớn dữ liệu vẫn chưa được khai thác và thậm chí được lưu chủ yếu trong các kho dữ liệu không trực tuyến (Offline) Điều này đã tạo nên một lỗ hổng lớn trong việc hỗ trợ phân tích và tìm hiểu dữ liệu, tạo ra khoảng cách giữa việc tạo ra và việc khai thác
dữ liệu đó Trong khi đó càng ngày người ta càng nhận thấy rằng nếu được phân tích thông minh thì dữ liệu sẽ là một nguồn tài nguyên quí giá Từ đó người ta đã đưa ra một phương pháp mới đáp ứng cả nhu cầu trong khoa học cũng như trong hoạt động thực tiễn, đó chính là công nghệ khai phá dữ liệu (Data Mining) Đây chính là ứng dụng chính thứ ba của kho dữ liệu
1.7 Quản trị kho dữ liệu
Kho dữ liệu có độ lớn gấp khoảng nhiều lần một kho dữ liệu tác nghiệp tổng thể Nó không được đồng bộ với dữ liệu tác nghiệp liên quan trong thời gian thực nhưng có thể được cập nhật thường xuyên nếu như ứng dụng yêu cầu đến nó
Hầu hết các sản phẩm của kho dữ liệu bao gồm các cổng để truy nhập tới các nguồn dữ liệu phức tạp mà không phải viết lại các phần mềm chuyển đổi, dịch và sử dụng dữ liệu Trong một môi trường kho dữ liệu hỗn tạp, rất nhiều các CSDL khác nhau nằm trên những hệ thống riêng rẽ vì thế đòi hỏi các công cụ làm việc trao đổi giữa các mạng Điều đó dẫn đến sự cần thiết phải quản trị các thành phần hạ tầng Quản trị kho dữ liệu bao gồm:
- Quản trị về an toàn, bảo mật và độ ưu tiên
- Quản trị cập nhật từ nhiều nguồn khác nhau
- Kiểm tra chất lượng dữ liệu
Trang 26- Sao lưu và phục hồi dữ liệu
- Quản trị các kho dữ liệu
1.8 Ứng dụng của kho dữ liệu
Ngày nay, kho dữ liệu được triển khai trong các doanh nghiệp với nhiều mục đích khác nhau như tạo các báo cáo tổng hợp, tích hợp dữ liệu, quản trị doanh nghiệp thông minh (Business Intelligence), quản lý quan hệ khách hàng, khai phá dữ liệu
1.8.1 Quản trị doanh nghiệp thông minh
Kho dữ liệu ngày nay được sử dụng cho việc quản trị doanh nghiệp thông minh,
nó giúp người quản lý có thể hiểu tổng quan và đầy đủ về công việc kinh doanh của doanh nghiệp hơn Thông qua các loại báo cáo tổng hợp, các kỹ thuật phân tích dữ liệu
từ kho dữ liệu người quản lý có thể đưa ra các quyết định một cách nhanh chóng và hợp lý Ngày càng nhiều các doanh nghiệp xây dựng hệ thống quản trị doanh nghiệp thông minh để giúp cho họ xử lý các thông tin nhằm hiểu rõ hơn về công việc kinh doanh, hỗ trợ việc ra các quyết định chính xác hơn, nâng cao chất lượng kinh doanh và dịch vụ Kho dữ có thể trích xuất thông tin từ một nguồn dữ liệu rất lớn vì thế nên thông tin nó đưa ra có cái nhìn tổng quan và đầy đủ hơn các hệ thống thông thường
1.8.2 Quản lý mối quan hệ khách hàng
Hệ thống quản lý quan hệ khách hàng bao gồm các ứng dụng hỗ trợ quản lý mối quan hệ khách hàng Ứng dụng của kho dữ liệu vào hệ thống này bao gồm:
- Đồng nhất khách hàng: cung cấp một cái nhìn tổng thể về khách hàng
- Quản lý việc cho phép
- Phân đoạn khách hàng theo các nhóm tiêu chí
là khách hàng, sản phẩm, nhãn hiệu
Việc quản lý dữ liệu chủ ở đây là quá trình trích xuất, làm sạch, lưu trữ, cập nhật
và phân phối dữ liệu chủ Hệ thống quản lý dữ liệu chủ khôi phục dữ liệu chủ từ một
hệ thống xử lý giao dịch trực tuyến Việc quản lý dữ liệu chủ vì hai mục đích sau:
- Nếu dữ liệu chủ được làm sạch và rõ ràng thì việc quản lý và bảo trì kho dữ liệu dễ dàng hơn
- Việc tích hợp dữ liệu vào kho dữ liệu sẽ dễ dàng hơn và nhanh chóng hơn
Trang 271.8.4 Tích hợp dữ liệu khách hàng
Đây là quá trình trích xuất, làm sạch, lưu trữ và phân phối dữ liệu về khách hàng
Hệ thống tích hợp dữ liệu khách hàng trích xuất dữ liệu từ hệ thống xử lý giao dịch trực tuyến làm sạch nó và chuyển nó vào trong kho dữ liệu khách hàng
Hệ thống tích hợp dữ liệu khách hàng có thể cho dữ liệu về khách hàng sạch hơn, duy nhất và đáng tin hơn các ứng dụng khác trong doanh nghiệp điều này tăng tính tin cậy cho các ứng dụng về quản lý khách hàng
1.9 Xu hướng tương lai của kho dữ liệu
Trong tương lai xu hướng phát triển của kho dữ liệu bao gồm: quản lý dữ liệu phi cấu trúc, tìm kiếm dữ liệu, kiến trúc hướng dịch vụ và kho dữ liệu thời gian thực [3]
1.9.1 Dữ liệu phi cấu trúc
Ngày nay dữ liệu thường dùng được lưu trữ trong các hệ quản trị cơ sở dữ liệu, các dữ liệu được lưu trong các hàng và các cột, điều này có nghĩa là cấu trúc dữ liệu đã được định nghĩa sẵn Tuy nhiên với một số loại dữ liệu như text, hình ảnh, âm thanh, email… thì không có cấu trúc định sẵn Chính vì thế việc lưu trữ dữ liệu phi cấu trúc cho phép người dùng lưu trữ, quản lý và phân loại các dữ liệu phi cấu trúc theo các các thuộc tính vật lý riêng
1.9.2 Tìm kiếm
Việc lưu trữ các dữ liệu phi cấu trúc đòi hỏi một yêu cầu quan trọng đó là tìm kiếm dữ liệu Việc tìm kiếm ở đây là tìm kiếm thông tin bên trong các dữ liệu phi cấu trúc được lưu trữ Ví dụ: tìm kiếm các từ bên trong email, web… Các công cụ tìm kiếm phi cấu trúc phân loại dữ liệu theo các thuộc tính của nó và đánh chỉ mục cho dữ liệu, khi cần tìm kiếm thông tin công cụ tìm kiếm sẽ duyệt các chỉ mục, tìm kiếm các thông tin và hiển thị ra kết quả Ngày nay tìm kiếm đang là xu hướng của kho dữ liệu
vì ngày càng nhiều dữ liệu phi cấu trúc được lưu trữ và nhu cầu tìm kiếm thông tin trên
dữ liệu phi cấu trúc là rất cần thiết
1.9.3 Kiến trúc hướng dịch vụ
Kiến trúc hướng dịch vụ (SOA - Service Oriented Architecture) là hướng tiếp cận mới trong thiết kế và tích hợp các phần mềm, chức năng, hệ thống theo dạng module trong đó mỗi module đóng vai trò là một dịch vụ, mỗi module đều có thể truy nhập qua môi trường mạng Xây dựng kho dữ liệu theo kiến trúc hướng dịch vụ có nghĩa là phân tích các thành phần của kho dữ liệu (ETL, hệ thống báo cáo, dữ liệu hướng chủ đề…) thành các thành phần nhỏ hơn và độc lập với nhau giao tiếp với nhau bằng các dịch vụ riêng Điều này cho phép người phát triển có thể thay thế các thành phần trong kho dữ liệu mà không làm thay đổi đến các thành phần khác
Trang 281.9.4 Kho dữ liệu thời gian thực
Ngày nay, các kho dữ liệu được cập nhật theo chu kỳ, thời gian giữa các chu kỳ
là rất dài, sở dĩ có việc này là do việc cập nhật vào kho dữ liệu theo các lô, mỗi lần cập nhật có khối lượng xử lý rất lớn Do nhu cầu của việc kinh doanh người dùng cần có được sự cập nhật thông tin một cách nhanh chóng Vì thế trong tương lai kho dữ liệu
sẽ được cập nhật theo thời gian thực
Trang 29CHƯƠNG II: CÔNG CỤ XÂY DỰNG KHO DỮ LIỆU
2.1 Tổng quan về hệ quản trị cơ sở dữ liệu Microsoft SQL Server
Hệ quản trị cơ sở dữ liệu Microsoft SQL Server (MSSQL) là một trong những hệ quản trị cơ sở dữ liệu thông dụng hiện nay Đây là hệ quản trị cơ sở dữ liệu thường được sử dụng với các hệ thống trung bình, với ưu điểm có các công cụ quản lý mạnh
mẽ giúp cho việc quản lý và bảo trì hệ thống dễ dàng, hỗ trợ nhiều phương pháp lưu trữ, phân vùng và đánh chỉ mục phục vụ cho việc tối ưu hóa hiệu năng Với phiên bản MSSQL 2008 Microsoft đã có những cải tiến đáng kể nâng cao hiệu năng, tính sẵn sàng của hệ thống, khả năng mở rộng và bảo mật Phiên bản mới này còn cung cấp nhiều công cụ cho người phát triển ứng dụng được tích hợp với bộ Visual Studio do Microsoft cung cấp Dưới đây là mô hình về các dịch vụ của SQL Server 2008
Hình 2.1 Các dịch vụ của SQL Server 2008
MSSQL 2008 có 4 dịch vụ lớn: Database Engine, Intergration Service, Reporting Service, Analysis Services Trong phiên bản MSSQL 2008 này đã có những cải tiến đáng kể như sau:
- DataBase Engine: Được phát triển để thực thi tốt hơn với việc hỗ trợ cả dữ
liệu có cấu trúc và dữ liệu phi cấu trúc (XML)
- Khả năng sẵn sàng của hệ thống được nâng cao hơn vì MSSQL 2008 hỗ trợ các chức năng: Cơ sở dữ liệu gương (Database Mirroring), Failover Clustering,
Snapshots và khôi phục dữ liệu nhanh
Trang 30- Việc quản lý chỉ mục được thực hiện song song với việc hoạt động của hệ thống Người dùng có thể thêm chỉ mục, xây dựng lại chỉ mục hay xóa một chỉ
mục đi trong khi hệ thống vẫn được sử dụng
- Chức năng phân vùng dữ liệu được hỗ trợ: Trong phiên bản này người dùng có thể phân vùng các bảng và chỉ mục cũng như quản lý phân vùng dữ liệu một cách
dễ dàng Việc hỗ trợ phân vùng dữ liệu giúp nâng cao hiệu năng hoạt động của
hệ thống
- Dịch vụ đồng bộ hóa dữ liệu được mở rộng với việc hỗ trợ mô hình đồng bộ hóa ngang hàng Đây là dịch vụ giúp đồng bộ hóa dữ liệu giữa các máy chủ dữ
liệu, dịch vụ này làm khả năng mở rộng của hệ thống được nâng cao
- Dịch vụ tích hợp (Integration Service): Thiết kế lại cho phép người dùng tích hợp dữ liệu và phân tích dữ liệu từ nhiều nguồn khác nhau Hỗ trợ việc quản lý chất lượng dữ liệu và làm sạch dữ liệu, một công việc quan trọng trong tiến trình
ETL
- Dịch vụ phân tích dữ liệu (Analysis Service): Cung cấp khung nhìn tích hợp
và thống nhất về dữ liệu cho người dùng, hỗ trợ việc phân tích dữ liệu
- Công cụ khai phá dữ liệu (Data mining): Được tích hợp hỗ trợ nhiều thuật toán khai phá dữ liệu, điều này hỗ trợ cho việc phân tích, khai phá dữ liệu và xây dựng
các hệ thống hỗ trợ ra quyết định cho người quản lý
- Dịch vụ xây dựng quản lý báo cáo (Reporting Service): Được dựa trên nền tảng quản trị doanh nghiệp thông minh và được quản lý qua dịch vụ web Báo cáo có thể được xây dựng với ngôn ngữ truy vấn MDX Việc xây dựng báo cáo
dễ dàng thông qua các công cụ trên Business Intelligence, người dùng truy cập báo cáo dễ dàng và trích xuất ra nhiều định dạng khác nhau thông qua trình duyệt web
2.2 SQL Server Integration Services (SSIS)
SSIS là một thành phần của SQL Server, nó được phát triển từ công cụ Data Transformation Services của phiên bản SQL Server 7.0, một công cụ để thực thi việc chuyển đổi dữ liệu SSIS là nền tảng cho việc tích hợp dữ liệu, các chức năng của nó nhanh và mềm dẻo cho việc phát triển tiến trình ETL để xây dựng kho dữ liệu, ngoài
ra SSIS còn cung cấp các công cụ tự động bảo trì và tự động cập nhật dữ liệu cho cơ
sở dữ liệu nhiều chiều và khối dữ liệu (Cubes)
SSIS cung cấp một giao diện phát triển với các công cụ bằng đồ họa cho việc xây dựng tiến trình Người phát triển sử dụng công cụ phát triển SQL Server Business Intelligence Development Studio (BIDS), đây là công cụ dựa trên bộ Microsoft Visual Studio Người dùng có thể kéo và thả các đối tượng của SSIS trong giao diện đồ họa hay có thể lập trình bằng mã lệnh trong giao diện soạn thảo
Trang 31Hình 2.2 Công cụ phát triển SSIS
Các đối tượng của SSIS bao gồm:
- Các kết nối: Chứa đựng những thông tin để kết nối tới nguồn dữ liệu
- Các nhiệm vụ: Đây là một đơn vị thực thi trong SSIS, dùng để thực thi một nhiệm vụ như: truy vấn, chạy một chương trình ứng dụng, hay thực thi công việc bảo trì hệ thống
- Các ràng buộc: Các nhiệm vụ liên kết với nhau bằng các ràng buộc, các ràng buộc chỉ định nhiệm vụ nào được thực hiện sau khi một nhiệm vụ kết thúc tùy theo kết quả của nhiệm vụ vừa hoàn thành
- Các xử lý sự kiện: SSIS cho phép thực thi một số thao tác để xử lý khi có một
sự kiện xảy ra Ví dụ như việc làm sạch dữ liệu khi có lỗi xảy ra
- Các biến: Các nhiệm vụ có thể liên kết với các biến để lưu trữ kết quả, thực hiện việc quyết định (như trong ràng buộc, hay ở một nhiệm vụ khác), hay thực thi một số cấu hình
SSIS cung cấp công cụ để thiết lập luồng dữ liệu (DataFlow), các thành phần của luồng dữ liệu dùng để tạo ra tiến trình ETL DataFlow là thành phần quan trọng nhất trong một package của SSIS, bao gồm rất nhiều thành phần để thiết lập việc trích xuất,
Trang 32biến đổi dữ liệu và nạp dữ liệu vào kho dữ liệu Đây là công cụ rất mạnh cho việc xây dựng tiến trình ETL
2.3 SQL Server Analysis Services (SSAS)
SSAS trong là một trong những dịch vụ chính của SQL Server 2008 dùng để xây dựng các chiều và cubes cho kho dữ liệu, trong phiên bản mới này còn hỗ trợ một số thuật toán khai phá dữ liệu điều này cung cấp cho người quản lý có cái nhìn sâu sắc về
dữ liệu của họ hơn SSAS là một phần của nền tảng quản lý doanh nghiệp thông minh (BI), nó không chỉ là một thành phần của SQL Server, nó còn được sử dụng trên NET Framework và môi trường phát triển Visual Studio
SSAS trong SQL Server 2008 đã được tái kiến trúc nhằm nâng cao khả năng mở rộng, tính tin cậy trong môi trường doanh nghiệp và khả năng bảo mật dữ liệu SSAS cung cấp khả năng tích hợp nhiều đối tượng (instance) của SSAS, điều này tăng khả năng mở rộng, ngoài ra dịch vụ này còn cung cấp các thuật toán để quản lý hiệu quả các cubes lớn trong một đối tượng SSAS 2008 cung cấp đa dạng các công cụ để tạo OLAP (OnLine Analytical Processing) một cách hiệu quả và quản lý dễ dàng
Hình 2.3 Kiến trúc của SSAS