Dữ liệu cho hệ thống bao gồm từ nhiều nguồn khác nhau : dữ liệu dịch vụ, dữ liệu hoạt động khách hàng, dữ liệu kế toán. Đồ án sẽ sử dụng công cụ SSIS để ánh xạ dữ liệu từ hệ thống nguồn vào kho dữ liệu. Sơ đồ hoạt động như hình 4.5.
Hình 4.5 Mô hình ETL
Các bước thực hiện bao gồm : Xây dựng lấy dữ liệu từ nguồn, biến đổi dữ liệu, xây dựng các ánh xạ dữ liệu, chạy các ánh xạ. Một số ánh xạ sẽ được chạy định kỳ hằng ngày.
4.3.2 Ánh xạ dữ liệu cho các chiều.
4.3.2.1 Chiều mã dịch vụ.
Dữ liệu của chiều mã dịch vụ được ánh xạ từ hai bảng tblservicecodeInfo và bảng tblserviceInfo. Dữ liệu hai bảng sau khi được lấy bảng cách nối hai bảng lại với nhau sẽ được chuyển đổi với định dạng dữ liệu cho phù hợp của bảng chiều mã dịch vụ tại kho dữ liệu sẽ được ánh xạ lên DimMaDichVu
Hình 4.6 Ánh xạ chiều mã dịch vụ
4.3.2.2 Chiều mạng viễn thông
Dữ liệu từ chiều mạng viễn thông được lấy trực tiếp từ bảng tbltelcoinfo
hình 4.7 mô tả sơ đồ ánh xạ dữ liệu của chiều mạng viễn thông.
Hình 4.7 Ánh xạ chiều mạng viễn thông
4.3.2.3 Chiều đầu số
Dữ liệu của chiều đầu số được ánh xạ từ bảng tblserviceNumberInfo. Sơ
Hình 4.8 Ánh xạ chiều đầu số
4.3.2.4 Chiều nhóm dịch vụ.
Dữ liệu cho chiều nhóm dịch vụ được ánh xạ từ bảng tblgroupinfo. Sơ đồ ánh xạ như sau .
Hình 4.9 Ánh xạ nhóm dịch vụ
4.3.2.5 Chiều thời gian.
Chiều thời gian được lấy từ trường datein trong bảng tblprocessedsmstoday và sử dụng các hàm biến đổi để lấy thêm các thông tin về thời gian. Dữ liệu của chiều này được biến đổi bằng lệnh SQL ở phụ lục 1.
4.3.2.6 Bảng sự kiện tổng hợp sản lượng .
Dữ liệu của bảng sự kiên tổng hợp sản lượng được tổng hợp từ dữ liệu các bảng Dauso_Giatien, tblprocessedSMStoday, Dimmangvienthong, Dimdauso, Dimmadichvu, Dimnhomdichvu, DimDate. Dữ liệu sau khi lấy ra sẽ được tổng hợp bằng các hàm tính toán và đẩy vào kho dữ liệu.
4.3.2.7 Chiều Quảng cáo .
Dữ liệu cho chiều quảng cáo được lấy từ các bảng : Quangcao_vitri,
quangcao_Loaihinh, quangcao_Kichthuoc, Quangcao_Donvi, Quangcao_Chitiet.
Sau khi được nối lại với nhau bằng phép JOIN , chuyển đổi dữ liệu cho phù hợp với bảng DimQuangCao trong kho dữ liệu sẽ được chèn vào bảng DimQuangcao . Sơ đồ ánh xạ của chiều quảng cáo như sau.
Hình 4.10 Ánh xạ chiều quảng cáo.
4.3.2.8 Chiều khách hàng.
Dữ liệu cho chiều khách hàng được lấy từ bảng KhachHang trong dữ liệu nguồn. Sơ đồ ánh xạ dữ liệu như hình 4.11
4.3.2.9 Ánh xạ dữ liệu cho bảng sự kiện quảng cáo.
Dữ liệu cho bảng sự kiện quảng cáo được tổng hợp từ các bảng :
Quangcao_Sukien, tblprocessedsmstoday,Dimmadichvu, Dimnhomdichvu, Dimdate, DimQuangcao.
4.3.2.10 Ánh xạ dữ liệu cho bảng sự kiện chi tiết dịch vụ.
Dữ liệu cho bảng sự kiện chi tiết dịch vụ được tổng hợp từ các bảng :
DimKhachhang, Dimdaso, DimMadichvu, DimTelco, DimDate, Dimnhomdichvu, tblprocessedsmstoday.
4.4 Sử dụng dịch vụ SSAS để xây dựng các cơ sở dữ liệu nhiều chiều chiều
4.4.1 Xây dựng cube cho kho dữ liệu chủ đề tổng hợp sản lượng.
Kho dữ liệu chủ đề tổng hợp sản lượng có lược đồ như hình 4.12. Gồm có 5 bảng chiều : Dimdate, Dimnhomdichvu, DimmaDichvu, DimMangVienthong, Dimdauso.
4.12 Lược đồ kho dữ liệu tổng hợp sản lượng.
Các bước thực hiện .
- Mở Business Intelligent Studio lên , tạo một project mới chọn kiểu là Analysis Service Project.
- Trong màn hình soạn thảo hiện ra, bên khung solution explore chọn click chuột phải vào Data sources chọn New Data Sources. Sau đó chọn kết nối đến Database chứa kho dữ liệu.
- Nháy chuột phải vào Data Sources Viewes chọn new. Màn hình thuật sĩ hiện ra chọn kết nối vừa tạo ở bước trên và chọn next. Tiếp theo chọn các bảng sẽ được dùng để xây dựng kho dữ liệu: Dimdate, Dimnhomdichvu, DimmaDichvu, DimMangVienthong, Dimdauso và FactSanluong. Chọn finish.
Hình 4.13 Chọn các bảng cho data soures views
- Các bảng được chọn sẽ xuất hiện trên màn hình soạn thảo. Tiếp theo ta chọn các quan hệ cho các bảng chiều tới bảng bảng sự kiện.
Hình 4.14 Đặt các quan hệ cho các bảng
- Nháy chuột phải lên cube chọn new. Thuật sĩ hiện lên ta chọn data Sources Views vừa thực hiện ở bước trên, sau đó quyết định các bảng fact và chiều đồng thời chọn Timedemesion table là DimDate. Như ở hình 4.15.
- Ở khung tiếp theo chọn các cột của chiều thời gian tương ứng với các thuộc tính có sẵn. như hình 4.16
- Khung tiếp theo chọn các Measures cho cube. Như hình 4.17.
- Khung tiếp theo hiện ra ta sẽ chọn các thuộc tính cho các chiều . Cuối cùng chọn Finish.
Hình 4.15 Quyết định các bảng chiều và sự kiện
- Tiếp theo ta định nghĩa các phép tính toán trên cubes. Click Double lên cube vừa mới tạo Khung design cho cube xuất hiện click vào tab calculations. Ở thanh công cụ chọn new calculations. Ta sẽ định nghĩa các hàm tính toán cho các Measure. Mỗi measure ta chọn một hàm tính toán. Các measure dùng để tính toán dữ liệu từ các cột có sẵn.
Hình 4.18 Định nghĩa các hàm tính toán
Kết thúc bước này ta nháy chuột phải vào tên project bên khung solution Explore để chọn Deploy để xây dựng cube.
4.4.2 Xây dựng cube cho kho dữ liệu chủ đề quảng cáo và chi phí
Các bước thực hiện của việc xây dựng cube cho kho dữ liệu chủ đề quảng cáo và chi phí được thực hiện tương tự như cách xây dựng kho dữ liệu chủ đề tổng hợp sản lượng. Chỉ lưu ý một số điều sau:
- Các bảng lựa chọn DimDate, DimMadichvu, DimNhomdichvu, DimQuangcao, FactQuangcao.
- Các measure được lựa chọn bao gồm : Soluong, Thanhtien, Chietkhau, Tienthanhtoan, Tongtongthu, loinhuan
4.4.3 Xây dựng cube cho kho dữ liệu chủ đề chi tiết sử dụng dịch vụ.
Cũng tương tự như các bước xây dựng kho dữ liệu tổng hợp cước. Có các lưu ý sau.
- Các bảng lựa chọn bao gồm : DimKhachHang, DimDauso, DimMadichvu, DimNhomDichVu, DimMangvienthong, DimDauso, Factchitietdichvu.
- Các measure được định nghĩa bao gồm: Tinyeucau, Tindapung, Tindapungvuot, TinYeucauTinhTien,Tinyeucausai, TiensuDung,TiendapUng.
4.4.4 Sử dụng truy vấn MDX để lấy dữ liệu trên cube
Ta sẽ sử dụng một số truy vấn MDX để lấy dữ liệu trên cube, qua đó phân tích điểm mạnh của ngôn ngữ truy vấn này.
Ví dụ 1: Ta cần lấy Tổng tin tính tiền, tổng tin đáp ứng, tổng tin yêu cầu từ bảng fact nhóm theo đầu số trong kho dữ liệu tổng hợp sản lượng, với điều kiện thời gian là ngày 01-03-2010. Với các truy vấn thông thường ta phải nối 3 bảng : Dimdauso, Dimdate, FactSanluong lọc lấy các giá trị nằm ở ngày 01-3-2010 sau đó nhóm lại theo đầu số . Với MDX ta chỉ cần một truy vấn đơn giản sau
SELECT {[Measures].[Tongso Yeu Cau],
[Measures].[Tongso Yeucau Tinh Tien],
[Measures].[Tong Tien Tin Dapung]} ON Columns, [Dim Dau So].[Dau So].Members ON Rows
FROM [VMG DWH]
WHERE [Dim Date].[Full Date].[20100301]
Kết quả hiển thị như sau:
Ví dụ 2: Ta cần lấy dữ liệu theo 2 chiều: thời gian và Dauso . Trong đó thời gian ở trên các hàng, đầu số ở trên các cột nội dung trong các ô là tổng sản lượng. Với truy vấn thông thường ta phải dùng phép toán gọi là PIVOT để lấy dữ liệu , nhưng với MDX ta chỉ cần một truy vấn đơn giản sau đây.
SELECT [Dim Dau So].[Dau So].Members ON COLUMNS, [Dim Date].[Full Date].members ON ROWS
FROM [VMG DWH]
Kết quả trả về như sau
Với hai ví dụ trên , điểm nổi bật của MDX đã được làm rõ .
4.4 Sử dụng dịch vụ SSRS để xây dựng các báo cáo.
Sau đây khóa luận sẽ xây dựng một số mẫu báo cáo sẵn cho người dùng có thể truy cập qua dịch vụ web.
4.4.1 Báo cáo sản lượng đầu số.4.4.1.1 Yêu cầu: 4.4.1.1 Yêu cầu:
Mẫu báo cáo này yêu cầu thống kê sản lượng đầu số theo các tiêu chí : Thời gian, đầu số, mạng viễn thông, nhóm dịch vụ. Kết quả hiển thị là ma trận trong đó các cột là các đầu số, các hàng là thời gian các ô dữ liệu là tổng sản lượng theo các tiêu chí trên với đầu số và thời gian tương ứng.
4.4.1.2 Cách xây dựng .
- Mở SQL Server Business Intelligence Studio lên tạo một dự án mới, chọn kiểu là Report Server Project.
- Trong khung Solution Explore click chuột phải lên Shared data Sources chọn new. Trong khung hiện ra chọn kiểu kết nối là SQL Server Analysis Service và chọn đến cube chứa dữ liệu VMG_DWH. Sau đó chọn kết thúc.
- Nháy chuột phải vào Reports chọn New Report.
- Trong màn hình thuật sĩ hiện ra chọn datasource đã tạo và click next.
- Tại màn hình tiếp theo chọn Query builder. Ở đây có 2 cách tạo truy vấn : bằng đồ họa hoặc bằng dòng lệnh. Ta chọn các cột tương ứng và truy vấn dữ liệu như hình 4.19 .Chọn các biến của truy vấn là tham số cho báo cáo .Chọn OK
-
Hình 4.20 Xây dựng truy vấn.
- Tại khung Select The Reports Type chọn kiểu Matrix. Khung tiếp theo hiện ra chọn Đầu số trên các cột, Sql_Date trên các hàng và Tongtin_yeucau_tinhtien là chi tiết. Như ở hình 4.20.
- Trong khung thiết kế nháy chuột phải vào vào cột đầu số và chọn Subtotal, nháy chuột phải vào hàng Sql_Date và chọn Subtotal.
- Nháy chuột phải vào tên project và chọn properties . Ở khung hiện ra chọn targetServerUrl đánh địa chỉ của nơi chứa dữ liệu các báo cáo trên webserver . Ở đây địa chỉ đích được cấu hình là : http://localhost/reports.
- Cuối cùng nháy chuột phải vào project và chọn deploy.
- Kết quả chạy được hiển thị như hình 4.21.
- Kết quả hiển thị trên web như hình 4.22.
\
Hình 4.22 màn hình xây dựng báo cáo
- Để chèn biểu đồ ta chọn Chart trng thanh công cụ toolbox.
- Chuyển sang tab dataset và kéo các trường dũ liệu vào các chiều của biểu đồ.
- Có thể thay đổi kiểu biểu đồ bằng cách nháy chuột phải vào biểu đồ và chọn charttype, trong menu xổ ra có các kiểu biểu đồ cho người dùng chọn.
- Để thay đổi các thuộc tính của biểu đồ ta nháy chuột phải vào biểu đồ ta chọn property. Ở đây có thể tùy chỉnh các thuộc tính của biểu đồ.
Hình 4.22 Kết quả hiển thị báo cáo sản lượng đầu số.
4.4.2 Báo cáo sản lượng theo các mạng viễn thông.
Yêu cầu của báo cáo này là tổng kết sản lượng của các dịch vụ theo các tiêu chí: Thời gian, mạng viễn thông, nhóm dịch vụ. Kết quả hiển thị dạng ma trận với các cột là các mạng viễn thông các hàng là thời gian.
Hình 4.23 Báo cáo theo mạng viễn thông.
4.4.3 Báo cáo sản lượng theo đầu số và nhóm dịch vụ
Báo cáo này tính sản lượng theo các tiêu chí: đầu số, nhóm dịch vụ, thời gian và mãng viễn thông. Với các cột là các đầu số, các hàng là các nhóm dịch vụ.
KẾT LUẬN 5.1 Những điều đã làm được
Khóa luận đã hoàn thành việc xây dựng kho dữ liệu cho hệ thống quản lý sản lượng dịch vụ tại Công Ty Cổ Phần Truyền Thông VMG. Bao gồm:
- Xây dựng mô hình dữ liệu: các bảng chiều , bảng sự kiện. Qua tìm hiểu phân tích , khóa luận đã xây dựng kho dữ liệu với 8 bảng chiều 3 bảng sự kiện.
- Xây dựng tiến trình ETL bằng dịch vụ SQL Intergration Service của SQL Server 2005 để đẩy dữ liệu vào kho dữ liệu. Sử dụng dịch vụ SSIS để xây dựng nên tiến trình ETL nhằm trích xuất, chuyển đổi và đẩy dữ liệu các bảng trong kho dữ liệu.
- Xây dựng các kho dữ liệu chủ đề và tạo nên các cơ sở dữ liệu nhiều chiều bằng dịch vụ Analysis Service của SQL Server 2005. Khóa luận đã xây dựng 3 kho dữ liệu chủ đề phục vụ cho các nghiệp vụ tại công ty. Các kho dữ liệu này cho thấy hiệu quả xử lý hơn hẳn cách tổ chức dữ liệu theo kiểu bảng quan hệ. Dễ dàng cho các người phát triển ứng dụng, hiệu năng hệ thống được nâng cao, và đáp ứng được các yêu cầu phân tích chuyên sâu của nghiệp vụ.
- Cấu hình và sử dụng dịch vụ Reporting Service cùng với công cụ Business Intelligence của SQL Server 2005 để xây dựng nên các báo cáo và quản lý các báo cáo. Cho phép người dùng truy cập qua dịch vụ web.
5.2 Những điều chưa làm được
Khóa luận đã xây dựng được kho dữ liệu và tạo ra các báo cáo truy cập cho người dùng, tuy nhiên ngày nay, yêu cầu của nghiệp vụ kinh doanh ngày càng cao , vì thế cần có những phân tích mang tính chuyên sâu hơn cho người dùng. Trong khi đó ,các báo cáo dạng truyền thống vẫn chưa đáp ứng được các yêu cầu phân tích đó. Những năm gần đây, việc khai phá dữ liệu để tìm kiếm tri thức, dự đoán xu hướng và hỗ trợ ra quyết định đã trở thành một nhu cầu bức thiết trong phân tích dữ liệu. Khóa luận cần được phát triển thêm để có thể xây dựng các ứng dụng phân tích dữ liệu mang tính thông minh hơn.
Do điều kiên thời gian hạn hẹp và hiểu biết của bản thân còn nhiều hạn chế nên chắc chắn không tránh khỏi những thiếu sót. Rất mong nhận được sự góp ý chân thành của các thầy cô, bạn bè và những người quan tâm đến đề tài này.
TÀI LIỆU THAM KHẢO
1. The Microsoft Data Warehouse Toolkit With SQL Server 2005 and the Microsoft Business Intelligence Toolset. Joy Mundy,Warren Thornthwaite, Ralph Kimbal © 2006
2. Building a Data Warehouse with Example in SQL Server. Copyright 2008 by Vincent Rainardi.
3. Building theData Warehouse1st edition . Copyright 1992 by W.H.Inmon 4. Professional SQL Server Analysis Services 2005 with MDX. By Sivakumar
Harinath and Stephen R. Quinn , Wrox Press 2006
5. Professional SQL Server™ 2005 Reporting Services. Copyright © 2006 by Wiley Publishing, Inc., Indianapolis, Indiana
6. Pro SQL Server 2005 Integration Services . By Jim Wightman Published Dec 2007
PHỤ LỤC 1 1. Câu lệnh SQL lấy các trường của chiều thời gian
SELECT DISTINCT
DATEADD(dd, DATEDIFF(dd, 0, DateIn), 0) AS sqlDate, CONVERT(varchar(10), DateIn, 112) AS fulldate,
DATEPART(dw, DateIn) AS dateweek, DATEPART(dd, DateIn) AS dateOfmonth,
DATEDIFF(dd, DATEADD(qq, DATEDIFF(qq, 0, DateIn), 0), DateIn) AS dateOfquater,
DATEDIFF(dd, DATEADD(yy,DATEDIFF(yy, 0, DateIn), 0), DateIn) AS dateofYear,
DATEDIFF(ww, DATEADD(mm, DATEDIFF(mm, 0, DateIn), 0), DateIn)+1 AS weekOfMonth,
DATEDIFF(ww,DATEADD(qq, DATEDIFF(qq, 0, DateIn), 0), DateIn) AS weekOfQuater,
DATEDIFF(ww, DATEADD(yy, DATEDIFF(yy, 0, DateIn), 0), DateIn) AS weekofYear,
DATEDIFF(mm, DATEADD(qq, DATEDIFF(qq, 0, DateIn), 0), DateIn) AS monthOfQuater,
DATEDIFF(mm, DATEADD(yy, DATEDIFF(yy, 0, DateIn), 0), DateIn) AS monthofYear,
DATEPART(qq, DateIn) AS quater, DATEPART(yy, DateIn) AS year,
(CASE WHEN datepart(dw, datein) = '6' OR datepart(dw, datein) = '7' THEN 0 ELSE 1 END) AS
ISdayInweek
FROM tblProcessedSMSToday
WHERE DateIn > @datein ORDER BY sqlDate
PHỤ LỤC 2
Danh sách các trích dẫn.
[1]. Building the Data Warehouse 1st edition . Copyright 1992 by W.H.Inmon [2]. Building a Data Warehouse with Example in SQL Server. Copyright 2008 by Vincent Rainardi.