Tiểu Luận
Xây dựng ứng dụng
DataWareHouse phục vụ cho
việc dự báo giá vàng
LỜI MỞ ĐẦU
Ngày nay, trong thời đại bùng nổ cách mạng thông tin, các hoạt động sản xuất
kinh doanh luôn cần có sự đáp ứng nhanh nhạy, tức thời đối với các thay đổi liên
tục, vì vậy các nhà quản lý buộc phải thường xuyên đưa ra nhiều quyết định đúng
đắn trong cùng một lúc một cách nhanh chóng. Do đó vấn đề trợ giúp quyết định trở
lên rất cần thiết. Người ta phải thu thập, tổng hợp và phân tích dữ liệu từ nhiều
nguồn khác nhau một cách nhanh và hiệu quả thì mới có thể đưa ra được những
quyết định nhanh chóng và phù hợp. Điều này dẫn đến việc cần phát triển những hệ
thống thông minh, biết cách trích chọn và phân tích dữ liệu cho người sử dụng.
Hiện nay có rất nhiều phần mềm cung cấp cho người sử dụng những khả năng
truy vấn và lập các báo cáo thông tin, đặc biệt là các hệ quản trị CSDL quan hệ. Tuy
nhiên CSDL quan hệ với cấu trúc hai chiều (hàng và cột) không được thiết kế để
cung cấp những góc nhìn đa chiều trên dữ liệu đầu vào của những bài toán phân tích
phức tạp. Sử dụng hệ thống này, chúng ta sẽ gặp rất nhiều khó khăn và bất tiện
trọng việc tổ chức dữ liệu đa chiều vào trong các bảng hai chiều, không thể triển
khai dữ liệu phân tích với số lượng lớn, các công cụ phân tích để tạo ra các dữ liệu
quyết định không thực sự mạnh, không có sự linh hoạt, nhanh chóng và quan trọng
nhất là không dễ dàng sử dụng với các nhà quản lý, những người ra quyết định.
Như vậy, việc xây dựng một hệ thống có khả năng tổ chức dữ liệu đa chiều và
có khả năng phân tích dữ liệu linh hoạt để trả lời được các truy vấn đa chiều một
cách dễ dàng, nhanh chóng nhằm hỗ trợ cho việc ra quyết định của các nhà quản lý
là cần thiết.
Thị trường vàng vốn đã là một thị trường nóng bỏng, phân tích và dự báo giá
vàng là một nhu cầu không thể thiếu. Nhưng để có thể làm được điều này, chỉ có
các dữ liệu trong quá khứ được lưu trữ trong một CSDL thường là chưa đủ, cần có
một CSDL giúp cho người phân tích có một cách nhìn trực quan, từ tổng thể đến chi
tiết về các vấn đề được quan tâm, và CSDL đó phải được tổ chức sao cho các thông
và một số công cụ khác. Một số kỹ thuật thường dùng là mạng Neuron (Neuron
network), giải thuật di truyền (Genetic Algorithms) và xử lý phân tích trực tuyến
(OnLine Analytical Processing - OLAP).
- Xử lý phân tích trực tuyến chính là sử dụng kho dữ liệu cho mục đích ra quyết định.
Ý tưởng mô phỏng trong các chiều được mở rộng: một bảng với n thuộc tính có thể
được coi như một không gian n chiều. Người quản lý đặt ra những câu hỏi mà có
thể phân tích trong những phân tích đa chiều. Các thông tin này sẽ rất khó phân tích
khi bảng biểu diễn hai chiều và CSDL chuẩn không thể đáp ứng tốt cho công việc
này, vây nên, trong những trường hợp như vậy, OLAP tỏ ra thích hợp với việc phân
tích hỗ trợ quyết định hơn những phương pháp khác.
Tổng quan về kho dữ liệu (Dataware house)
- Kho dữ liệu là tuyển tập các CSDL tích hợp, hướng chủ đề, được thiết kế với 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 rất lớn, có thể tới hàng trăm GB hay thậm chí hàng
Terabyte.
- Kho dữ liệu được xây dựng để tiện lợi cho việc truy cập theo nhiều nguồn, nhiều
kiểu dữ liệu khác nhau sao cho có thể kết hợp được cả những ứng dụng của các
công nghệ hiện đại và kế thừa được từ những hệ thống sẵn có từ trước. Dữ liệu phát
sinh từ các hoạt động hàng ngày được thu thập và xử lý để phục vụ công việc
nghiệp vụ cụ thể của một tổ chức được gọi là dữ liệu tác nghiệp (operational data)
và hoạt động thu thập xử lý loại dữ liệu này được gọi là xử lý giao dịch trực tuyến
(Online Transaction Processing - OLTP)
Đặc điểm của kho dữ liệu
- Tính tích hợp: Dữ liệu trong Dataware house được tổ chức theo nhiều cách khác
nhau sao cho phù hợp với các quy ước đặt tên, thống nhất về số đo, cơ cấu mã hóa
và cấu trúc vật lý của dữ liệu. Một Datawarehouse là một khung nhìn thông tin
mức tổng thể, toàn tổ chức, thống nhất các khung nhìn khác nhau thành một khung
nhìn theo một chủ đề nào đó. Tính tích hợp thể hiện ở chỗ : Dữ liệu trong kho dữ
liệu được tập trung từ nhiều nguồn và được ghép với nhau tạo thành một thể thống
nhất.
Data Mart (Kho dữ liệu cục bộ)
- Kho dữ liệu cục bộ (Data Mart -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. Datamart là kho dữ liệu hướng chủ đề.
- Các DM 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 DM 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 DM hay ngược lại xây dựng kho dữ liệu trước sau
đó tạo ra các DM.
- DM được chia ra là hai loại:
+ Data mart phụ thuộc (Dependent Data Mart): Chứa những dữ liệu được lấy từ
DW và những dữ liệu này sẽ được trích lọc và tinh chế, tích hợp lại ở mức cao hơn
để phục vụ một chủ đề nhất định của Datamart.
+ Data mart độc lập (Independent Data Marts): Không giống như Data Mart phụ
thuộc, Data mart độc lập được xây dựng trước DW và dữ liệu được trực tiếp lấy từ
các nguồn khác nhau.
Metadata ( Siêu dữ liệu)
- Siêu dữ liệu (metadata) dùng để mô tả tài nguyên thông tin. Thuật ngữ “meta” xuất
xứ là một từ Hy Lạp đùng để chỉ một cái gì đó có bản chất cơ bản hơn hoặc cao
hơn. Vì vậy metadata là dữ liệu về dữ liệu.Tứclà thông tin mô tả nội dung của cơ sở
dữ liệu (CSDL).
- Metadata báo cho người dùng biết thời gian cập nhật sau cùng của dữ liệu, định
dạng và mục đích sử dụng của nó. Những thông tin này có thể hướng dẫn người
dùng duyệt qua CSDL và giúp họ hiểu được ý nghĩa và ngữ cảnh của dữ liệu tài
chính, các bản ghi về khách hàng và các giao dịch kinh doanh . Một bản ghi
metadata bao gồm một tập hợp những thuộc tính hoặc tập hợp những phần tử cần
thiết để mô tả các tài nguuyên thông tin theo yêu cầu nghiệp vụ. Ví dụtrong hoạt
động nghiệp vụ thông tin – thư viện bao gồm các yếu tố như: Nhan đề tài liệu, tác
giả, thông tin về xuất bản, nơi/vị trí lưu giữ, kiểu/dạng tài liệu.
- Metadata cung cấp cho người sử dụng sự truy nhập tương tác để giúp cho họ có thể
nhiều ích lợi cho người phân tích, ví dụ như:
+ Cung cấp mô hình dữ liệu đa chiều trực quan cho phép dễ dàng chọn lựa, định
hướng và khám phá dữ liệu.
+ Cung cấp một ngôn ngữ truy vấn phân tích, cung cấp sức mạnh để khám phá
các mối quan hệ trong dữ liệu kinh doanh phức tạp.
+ Dữ liệu được tính toán trước đối với các truy vấn thường xuyên làm cho thời
gian trả lời rất nhanh đối với các truy vấn đặc biệt.
+ Cung cấp các công cụ mạnh giúp người dùng tạo ra các khung nhìn mới của
dữ liệu dựa trên một tập các hàm tính toán đặc biệt.
- OLAP được đặt ra để xử lý các truy vấn liên quan đến lượng dữ liệu rất lớn mà nếu
cho thực thi các truy vấn này trong hệ thống OLTP sẽ không thể cho kết quả hoặc
sẽ làm mất rất nhiều thời gian.
Đặc điểm của OLAP
- Được biết đến như là một phần của kho dữ liệu.
- Cung cấp các báo cáo, phân tích tiền tính toán, các đồ thị, biểu đồ.
- Cho phép phân tích trực tuyến dữ liệu.
- Thăm dò sự tương tác dữ liệu.
- Cung cấp các giao diện đa dạng cho người dùng.
- Cung cấp khả năng phân tích dữ liệu phức tạp bằng phương pháp đơn giản.
Các mô hình OLAP
MOLAP (Multidimensional OLAP)
- Mô hình MOLAP lưu trữ dữ liệu cơ sở (dữ liệu từ các bảng của kho dữ liệu) và
thông tin tổng hợp (là các độ đo được tính toán từ các bảng) trong các khối (cube)
Hình 1.6 Mô hình dữ liệu MOLAP
Dữ liệu được tìm thấy tại điểm giao của các chiều
Hình 1.7 Tổ chức dữ liệu trong mô hình MOLAP
- Dữ liệu trong MOLAP cần process sau một thời gian nhất định để có thể cập nhật
được những thay đổi trong Dataware house.
- MOLAP thích hợp cho các truy vấn tổng hợp dữ liệu trong một thời gian dài.
ROLAP (Relational OLAP)
sở dữ liệu có trách nhiệm hỗ trợ quản lí, lưu trữ dữ liệu với Database Engine. Tuy
nhiên, từ phiên bản SQL Server 2005 đến SQL Server 2008 và mới nhất là SQL
Server 2008 R2, thì bộ SQL Server đã được tích hợp nhiều gói dịch vụ hỗ trợ việc
tích hợp và khai thác khả năng tiềm tàng của một cơ sở dữ liệu như SQL Server
Integrating Services, SQL Server Analysis Services và SQL Server Reporting
Services.
- Analysis Services là một dịch vụ hỗ trợ mạnh mẽ việc phân tích, khai thác
thông tin tiềm tàng bên trong của một hệ cơ sở dữ liệu.
- Analysis Services là công cụ dễ sử dụng, tích hợp và linh động giúp định nghĩ
các chiều, xây dựng các khối dữ liệu đa chiều và cung cấp các chương trình ứng
dụng truy xuất tới các khối này.
2.2. Kiến trúc các thành phần OLAP trong SSAS
2.2.1. Cube.
- Cube (Khối) là phần tử chính trong xử lý phân tích trực tuyến, là tập
con(subset) dữ liệu từ kho dữ liệu, được tổ chức và tổng hợp trong các cấu trúc đa
chiều.
- Cube dùng các dimensions, fact table và các measure để mô tả dữ liệu trong
cube.
Hình 2.1 Ví dụ về một khối (cube) có 3 chiều
-Một cube có thể có nhiều chiều
• Nếu có nhiều hơn 3 chiều sẽ được gọi là ‘siêu khối’ (”hypercube”)
• Về mặt lý thuyết thì số chiều là không hạn chế
• Thường thì số chiều là từ 4 đến 112
- Một cube bao gồm nhiều ô dữ liệu
• Là một liên kết giữa các giá trị của chiều
• Một ô có thể là rỗng (không có dữ liệu cho liên kết này)
• Khối thưa (sparsecube): có nhiều ô rỗng
• Khối dày đặc (densecube): có ít ô rỗng
Hình 2.2 Ví dụ về ô rỗng trong khối
- Cube biễu diễn dữ liệu dưới dạng tổng hợp nhiều hơn là chi tiết như khi
- Fact được lưu tại một cấp dữ liệu thô nào đó
Hình 2.4 Ví dụ về Fact Table (Sales_Fact)
2.1.5. Slice
- Slice là một “lát cắt”, tương ứng một giá trị duy nhất cho chiều “được chiếu
với các giá trị thành viên của các chiều khác.
Hình 2.5 Ví dụ về slice
2.1.6.Partition
- Tất cả các khối đều có tối thiểu một phân hoạch (Partition) để chứa dữ liệu của
nó. Một partition đơn được tự động tạo ra khi khối được định nghĩa.
- Khi ta tạo một partition mới cho một khối, partition mới này được thêm vào
trong tập hợp các partition đã tồn tại đối với khối.
- Khối phản ánh dữ liệu đã được kết nối có trong tất cả các partition của nó. Một
bảng partition của khối là vô hình đối với người dùng.
- Các partition tiêu biểu cho một công cụ mạnh, mềm dẻo cho việc quản trị các
khối OLAP, đặc biệt các khối lớn.
2.1.7. Role
- Bảo mật trong Analysis Services được tích hợp sẵn và dựa trên bảo mật của
Microsoft Windows. Để Analysis Services được bảo mật, ta tạo các role trong
database OLAP. Mỗi role có thế chứa một hoặc nhiều user (group) được tạo trong
hệ điều hành. Mỗi role được tạo ra sẽ liên kết với các cube trong database OLAP.
Nhờ vậy, ta có thể quản lý sự bảo mật của cube bằng cách hạn chế truy cập
metadata (các member trong dimemsion) cũng như truy cập data (các giá trị lưu trữ
trong cube).
- Analysis Services có một role cốđịnh được tạo sẵn, bao gồm các thành viên
của group Administrators trên máy chủ server, được gọi là server role.
Để có thể thực thi mọi tác vụ trong hệ thống Analysis Services, user đang
dùngphải là thành viên của group Administrators. Tất cả thành viên trong group này
được toàn quyền trên các cube và các database của server.
Trong thực tế, người ta tạo ra các role trên mỗi database, gọi là database role,
cho phép một user chỉ được quyền quản trị trên một database.
dạng lưu trữ dữ liệu khác. Vì thế, ta cần quyết định sẽ sử dụng hệ CSDL nào cho
việc tổ chức kho dữ liệu.
- Chuyển đổi dữ liệu (Transforming Transactional Data):
• Là quá trình chuyển đổi nhằm đảm bảo tính nhất quản của dữ liệu sau khi đã
được chọn lọc từ nhiều nguồn khác nhau.
• Để có thể chuyển đổi dữ liệu vào Data Warehouse một cách chính xác, ta cần
phải xác định ánh xạ của các trường (field) từ nguồn dữ liệu bên ngoài đến các
trường của data warehouse.
• Sự chuyển đổi này có thể được thực hiện trong quá trình chọn lọc (extracting)
hoặc trong khi dữ liệu được đưa vào data warehouse.
- Tải dữ liệu (Loading the Data):
• Khi quá trình chọn lọc, chuyển đổi và làm sạch đã hoàn tất, dữ liệu sẽ được tải
vào data warehouse.
• Việc tải dữ liệu có thể phân thành hai loại: tải toàn bộ dữ liệu đang có trong
CSDL nguồn và tải những dữ liệu có sự thay đổi trong CSDL nguồn vào data
warehouse.
• Dữ liệu trong data warehouse phải luôn được làm tươi, có nghĩa phải cập nhật
những thay đổi của dữ liệu.
• Trong khi cập nhật data warehouse cần phải đảm bảo không có dữ liệu nào bị
mất, đồng thời chi phí cho quá trình duyệt các file đã tồn tại phải đạt mức thấp nhất.
2.2.1.2. Công cụ thực hiện
- Extract-Transform-Load (ETL): điển hình như DTS (Data Transformation
Services) trong SQL Server, Informatica, Về công cụ ETL dạng Open source có
thể kểđến Talend, Kettle…
- Lập lịch: SQL Server Agent dùng để lập lịch cho việc tựđộng chuyển đổi từ
CSDL nguồn vào data warehouse.
2.2.2. Quy trình tạo cube
- Công cụ và database mẫu sử dụng:
• Business Intelligence Studio (đi kèm với MS SQL Sever)
• Adventure Work Cycle Sample Database
Adventure Work DW mà ta đã tạo như trên rồi chọn Next.
4. Tại Dialog Select Tables and Views, ta sẽ chọn các bảng dữ liệu và views từ
danh sách đối tượng, ta sẽ chọn các đối tượng sau:
DimCustomer (dbo)
DimDate (dbo)
DimGeography (dbo)
DimProduct (dbo)
FactInternetSales (dbo)
5. Nhấn nút “>” để thêm các bảng vào danh sách Included Objects
6. Nhấn Next
7. Tại thuộc tính Name, ta thiết lập là Adventure Wordk DW và nhấn Finish để
hoàn tất việc đĩnh nghĩa một data source view. Data Source View Adventure Work
DW sẽ hiển thị tại Data Source View Designer trong Business Intelligence
Development Studio và gồm các thành phần sau:
o Diagram Pane thể hiện mối quan hệ giữa các bảng dữ liệu trực quan
o Tables Pane: các bảng dữ liệu và schema được thể hiện theo tree view
o Diagram Organizer Pane hỗ trợ tạo các subdiagram mà thông qua đó ta có thể
có dc các subsets của data source view
Sau khi hoàn tất bước này, ta sẽ có khung nhìn toàn diện về các bảng dữ liệu và
mối quan hệ của chúng.
2.2.2.3. Tạo Dimension
Các bước như sau:
1. Trong pane Solution Explorer, phải chuột Dimentsions, chọn New
Dimensions.
2. Tại cửa sổ Welcome to Dimension Wizard, chọn Next
3. Tại cửa số Select Creation Method, đảm bảo tùy chọn Use an Existing Table
được chọn, chọn Next.
4. Tại cửa sổ Specify Source Information, đảm bảo data source Adventure
Works DW được chọn.
5. Trong danh sách Main Table, chọn Date
4. tại cửa sổ Select Measure Group Tables, đảm bảo Adventure Works DW data
source view được chọn, và nhấn Next.
5. Nhấn Suggest để cửa số Suggest Table hiển thị và đề xuất các table cần thiết
để xây dựng các measure group.
6. Nhấn Next
7. tại cửa sổ Select Measure, xem lại InternetSales measure group và deselect
các checkbox cho các giá trị sau
a. Promotion Key
b. Currency Key
c. Sales Territory Key
d. Revision Number
8. Chọn Next
9. tại cửa sổ Selecting Existing Dimensions, chọn Date dimension đã dc định
nghĩa và chọn Next
10.Trong cửa sổ Select New Dimension, chọn các dimension mới để thiết lập,
đảm bảo Customer, Geography và Product được chọn và deselect InternetSales.
11.Nhấn Next
12.tại cửa sổ Completing the Wizard, thiết lập name của Cube là Analysis
Services Tutorial,
13.Chọn Finish để hoàn tất
14.Tiến hành Save All
- Deploy Cube lên server
1. Trong Solution Explorer Pane, phải chuột Analysis Services Tutorial và chọn
Properties.
2. tại Configuration Properties tại pane bên trái, chọn Deployment
3. Chọn OK
4. Phải chuột Analysis Service Tutorial project và chọn Deploy
5. Review lại cửa sổ Output và Deployment Progress – Analysis Service
Tutorial đểđảm bảo cube được build không có lỗi khi build
6. Như vậy project SSAS đã được deploy lên server