Đâ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.1Dữ 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.2Tì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.3Kiế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.
Luận văn tốt nghiệp cao học chuyên ngành Công nghệ phần mềm – Khóa 15
1.9.4Kho 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.
Luận văn tốt nghiệp cao học chuyên ngành Công nghệ phần mềm – Khóa 15
CHƢƠ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.
Luận văn tốt nghiệp cao học chuyên ngành Công nghệ phần mềm – Khóa 15
- 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.
Luận văn tốt nghiệp cao học chuyên ngành Công nghệ phần mềm – Khóa 15
Hì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,
Luận văn tốt nghiệp cao học chuyên ngành Công nghệ phần mềm – Khóa 15
biế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.
Luận văn tốt nghiệp cao học chuyên ngành Công nghệ phần mềm – Khóa 15
Trong phiên bản mới này SSAS hỗ trợ XML theo chuẩn XML/A. Điều này có nghĩa việc trao đổi dữ liệu giữa SSAS với các client là XML, sự thay đổi này nâng cao khả năng tương tác giữa các máy client và máy chủ. Như ở hình 2.3, SSAS cung cấp ba kiểu kết nối với client. Việc lưu trữ siêu dữ liệu trong cũng được thực hiện dưới dạng XML. Ngoài ra trong phiên bản này còn cho phép người dùng tùy chọn việc lưu trữ dữ liệu và dữ liệu tổng hợp dưới dạng đối tượng của SSAS hay dạng cơ sở dữ liệu quan hệ. Việc lưu trữ dữ liệu theo định dạng đối tượng của SSAS có thể xử lý tốt hơn và truy vấn nhanh hơn dạng cơ sở dữ liệu quan hệ. Có ba cách lưu trữ dữ liệu chính trong SSAS là MOLAP, ROLAP và HOLAP.
Dịch vụ SSAS của SQL Server 2008 cung cấp cho người dùng các tính năng mạnh mẽ trong phân tích dữ liệu. Đây là công cụ mạnh để xây dựng các hệ thống xử lý giao dịch trực tuyến.
2.4 Ngôn ngữ truy vấn MDX
Ngôn ngữ MDX (MultiDemensional eXpression) là ngôn ngữ truy vấn cho cơ sở dữ liệu nhiều chiều, nó tương tự ngôn ngữ SQL cho cơ sở dữ liệu dạng quan hệ, tuy nhiên đây là ngôn ngữ tính toán vì thế nó có cú pháp giống công thức của bảng tính. MDX do Microsoft giới thiệu vào năm 1997 cùng với SQL Server 7.0 nhanh chóng được các nhà phát triển chấp nhận đã trở thành chuẩn cho hệ thống OLAP. Từ năm 2001 khi XMLA ra đời MDX được mở rộng và hỗ trợ truy vấn với MDX (MDXML).
Ngôn ngữ MDX hỗ trợ mạnh cho tính toán trên khối dữ liệu nhiều chiều, nó hỗ trợ việc truy cập dữ liệu một cách trực quan và dễ dàng. Người dùng có thể trích xuất dữ liệu từ cube với số chiều bất kỳ. MDX có thể trả lời được các câu hỏi phức tạp trong kinh doanh ở thế giới thực như: trong các khu vực bán được nhiều sản phẩm nhất đâu là dòng sản phẩm bán chạy nhất?.
MDX được xây dựng cho các hệ thống phân tích dữ liệu chính vì thế nó có thể xử lý được những truy vấn một cách dễ dàng. MDX có thể xử lý dữ liệu một cách mềm dẻo, kết quả trả về của MDX cũng rất linh hoạt. Các phép truy vấn phức tạp trong SQL như pivot được sử dụng một cách dễ dàng trong MDX.
MDX không hỗ trợ các ngôn ngữ định nghĩa dữ liệu (DDL - Data Definition Language) tuy nhiên ngôn ngữ thao tác dữ liệu (DML - Data Manipulation Language) của MDX có hỗ trợ thực thi một số thao tác định nghĩa dữ liệu.
Cấu trúc của MDX giống như SQL nhưng mở rộng hơn để thao tác với cơ sở dữ liệu nhiều chiều. Câu truy vấn MDX có cấu trúc như sau:
SELECT [Mô tả về chiều thứ nhất], [Mô tả về chiều thứ hai]…
FROM [Mô tả về khối dữ liệu] WHERE [điều kiện cắt các lớp]
Luận văn tốt nghiệp cao học chuyên ngành Công nghệ phần mềm – Khóa 15
Mệnh đề FROM xác định nguồn dữ liệu (cube) dùng để lấy dữ liệu.
Mệnh đề WHERE dùng để xác định chiều cắt dữ liệu, nhằm lọc dữ liệu đầu ra. Ví dụ:
SELECT {[Measures].[Qty],
[Measures].[TienHang]} ON COLUMNS, { [DimTime].[FullDate].members }ON ROWS FROM [PTS_DWH]
WHERE [DimCustomer].[CustomerCode].[10001001] Truy vấn MDX có thể chứa các thông tin như sau: - Số lượng chiều (tối đa 128 chiều).
- Các thành viên của mỗi chiều cho từng chiều. - Tên khối dữ liệu.
- Các thành viên từ một chiều dùng để cắt (lọc).
Phát biểu SELECT của câu truy vấn MDX còn hỗ trợ các cú pháp tuỳ chọn khác, như là từ khóa WITH và việc sử dụng các hàm MDX để xây dựng các thành viên bằng việc tính toán để thêm vào 1 trục hoặc 1 chiều cắt.
Cú pháp của câu truy vấn MDX tương tự như cú pháp SQL, tuy nhiên, có một số khác biệt như sau :
- Cú pháp MDX phân biệt các tập hợp bằng việc dùng dấu ngoặc nhọn { } bao quanh các bộ hay thành viên.
- Câu truy vấn MDX có thể chứa tới 128 chiều, nhưng chỉ có 5 chiều đầu tiên là có alias (tên phụ). Một trục có thể được tham chiếu bởi thứ tự của nó trong câu MDX hay bởi tên phụ của nó nếu có.
- Trong câu truy vấn SQL, mệnh đề FROM có thể chỉ đến nhiều bảng dữ liệu. tuy nhiên, mệnh đề FROM trong câu truy vấn MDX bị giới hạn ở 1 khối duy nhất. Thông tin từ các khối khác có thể được tham khảo theo từng giá trị bằng cách dùng hàm LookupCube.
- Mệnh đề WHERE được dùng để mô tả chiều cắt dữ liệu. Nếu 1 chiều không được đề cập trong mệnh đề WHERE, SSAS vẫn xem nó là 1 chiều cắt, nhưng được lọc theo số thành viên mặc định của nó. Mệnh đề WHERE có thể thay đổi tiến trình lọc cho 1 chiều nào đó, giúp tinh chỉnh dữ liệu kết quả.
2.5 SQL Server Reporting Service (SSRS)
SSRS là một dịch vụ của SQL Server, nó là hệ thống quản lý các báo cáo. Hỗ trợ việc tạo báo cáo, quản lý các báo cáo, và quản lý truy cập thông qua nền tảng web.
SSRS sử dụng ngôn ngữ định nghĩa báo cáo (RDL – Report Definition Language) và ngôn ngữ đánh dấu mở rộng XML. Công cụ soạn thảo báo cáo được tích hợp trên công cụ BIDS dựa trên bộ Visual Studio cùng với thành phần Crystal