1. Trang chủ
  2. » Công Nghệ Thông Tin

tổng hợp kho cơ sở dữ liệu

75 957 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 75
Dung lượng 2,03 MB

Nội dung

Những vùng chứa dữ liệu này được phân loại dựa trên cấu trúc bao gồm Building a DW – With examples in SQL Server – Trang 29-39: • Vùng xử lí staging area: Là vùng chứa dữ liệu chuẩn bị

Trang 1

MỞ ĐẦU: Trình bày lí do chọn đề tài, mục đích, đối tượng và phạm vi nghiên cứu TỔNG QUAN: Phân tích đánh giá các hướng nghiên cứu đã có của các tác giả

trong và ngoài nước liên quan đến đề tài; nêu những vấn đề còn tồn tại; chỉ ra những vấn đề mà đề tài cần tập trung, nghiên cứu giải quyết.

NGHIÊN CỨU THỰC NGHIỆM HOẶC LÍ THUYẾT: Trình bày cơ sở lí thuyết,

lí luận, giả thiết khoa học và phương pháp nghiên cứu đã được sử dụng trong khoá luận

TRÌNH BÀY, ĐÁNH GIÁ BÀN LUẬN VỀ CÁC KẾT QUẢ: Mô tả ngắn gọn công

việc nghiên cứu khoa học đã tiến hành, các kết quả nghiên cứu khoa học hoặc kết quả thực nghiệm Đối với các đề tài ứng dụng có kết quả là sản phẩm phần mềm phải có hồ sơ thiết kế, cài đặt, theo một trong các mô hình đã học (UML, )

KẾT LUẬN: Trình bày những kết quả đạt được, những đóng góp mới và những đề

xuất mới Phần kết luận cần ngắn gọn, không có lời bàn và bình luận thêm.

HƯỚNG PHÁT TRIỂN: Kiến nghị về những hướng nghiên cứu tiếp theo.

DANH MỤC TÀI LIỆU THAM KHẢO: Chỉ bao gồm các tài liệu được trích dẫn,

sử dụng và đề cập tới để bàn luận trong khoá luận

PHỤ LỤC.

Trang 3

Chương 1 Kho dữ liệu

1.1 Tổng quan về kho dữ liệu

1 Khái niệm

Khái niệm kho dữ liệu (data warehouse) lần đầu tiên được đưa ra bởi hai kiếntrúc sư người Ireland của công ty IBM là Barry Devlin và Paul Murphy năm

1988 Từ đó đến nay, khái niệm kho dữ liệu hầu như không có nhiều thay đổi

Theo Barry Devlin và Paul Murphy, kho dữ liệu được hiểu là: “Một nhà kho luận lí chứa tất cả những thông tin cần thiết phục vụ cho các báo cáo nghiệp vụ”

(Pentaho Solutions – Trang 111)

2 Các nhu cầu thực tế của kho dữ liệu

Kho dữ liệu là một cơ sở dữ liệu được thiết kế đặc biệt cho các nhu cầu liênquan đến việc hỗ trợ ra quyết định Từ góc nhìn của người dùng, kho dữ liệumang lại những lợi ích sau:

Dữ liệu lưu trữ tập trung tại một nơi

Thông tin luôn được cập nhật: Thông tin từ nhiều nguồn được cập nhật

định kì vào kho

Truy xuất nhanh: Kho dữ liệu được thiết kế đặc biệt cho việc truy xuất

nhanh với khối lượng thông tin lớn

Không giới hạn kích thước

Lưu mọi thông tin lịch sử: Toàn bộ lịch sử dữ liệu được lưu vết, phục vụ

việc phân tích số liệu theo thời gian

Dễ hiểu: Kho dữ liệu được mô hình hoá dựa trên những thuật ngữ nghiệp

vụ, gần gũi và dễ hiểu

Rõ ràng và đồng nhất: Dữ liệu được hợp nhất và thống nhất dựa trên các

khái niệm nghiệp vụ

Dữ liệu chuẩn hoá: Tất cả dữ liệu được chuẩn hoá theo một chuẩn

chung

3 Các đặc trưng của kho dữ liệu

Kho dữ liệu có các đặc trưng sau đây (theo Bill Inmon):

Hướng chủ thể (subject oriented): Tất cả các thực thể và sự kiện liên

quan đến một chủ thể được kết nối với nhau

Trang 4

Biến thiên theo thời gian: Tất cả các thay đổi trên dữ liệu được theo dõi

để thể hiện sự biến đổi theo thời gian

Tính ổn định (non-volatile): Khi dữ liệu được lưu vào kho, nó sẽ không

bao giờ bị ghi đè hoặc xoá Với nhiều kiến trúc cao cấp, tính chất nàykhông được duy trì trên từng phần nhưng về tổng thể cần được bảo đảm

Tính tích hợp: Kho dữ liệu chứa dữ liệu được tích hợp từ nhiều hệ thống

nguồn sau khi đã được làm sạch và chuẩn hoá

Kho dữ liệu được xây dựng nhằm mục đích:

• Bảo đảm hiệu suất hoạt động của hệ thống sản xuất không bị gián đoạnbởi các truy vấn dạng đặc biệt dạng phân tích Các truy vấn loại này vốn

có thời gian truy vấn lâu trên lượng dữ liệu lớn

• Bảo đảm các thông tin không bị thay đổi trong khi người dùng cuối truyvấn

1.2 Kiến trúc kho dữ liệu

4 Các kiến trúc chính

Kiến trúc chung của một kho dữ liệu thường gồm nhiều vùng chứa dữ liệu(data store) nhỏ Những vùng chứa dữ liệu này được phân loại dựa trên cấu

trúc bao gồm (Building a DW – With examples in SQL Server – Trang 29-39):

Vùng xử lí (staging area): Là vùng chứa dữ liệu chuẩn bị cho việc biến

đổi dữ liệu thu được từ nguồn trước khi chuyển qua các vùng chứa dữ

liệu khác trong kho dữ liệu Trong các hình vẽ, vùng này được viết tắt là

“staging” hay “STG”.

Vùng chứa dữ liệu dạng chuẩn hoá (normalized data store): Là vùng

chứa dữ liệu trung gian sau khi đã được biến đổi và tích hợp từ nhiềunguồn khác nhau Trong vùng này, dữ liệu được lưu trữ ở dạng chuẩncao, thường là dạng chuẩn 3 Dữ liệu trong vùng này đã sẵn sàng đượcnạp vào vùng kho dữ liệu đầu cuối mà không cần nhiều biến đổi phức

tạp Trong các hình vẽ, vùng này được viết tắt là NDS.

Vùng chứa dữ liệu hoạt động (operational data store): Là vùng chứa dữ

liệu dạng lai (hybrid) giữa vùng dữ liệu chuẩn hoá và cơ sở dữ liệu hoạtđộng (operational database) Mục đích của nó ngoài việc hỗ trợ cho việc

Trang 5

nạp dữ liệu vào kho dữ liệu đầu cuối, còn được dùng như là cơ sở dữ liệuhoạt động tập trung (centralized).

Kho dữ liệu đầu cuối, còn gọi là vùng dữ liệu đa chiều (dimesional data

store): Là vùng kho dữ liệu đầu cuối, phía người dùng Trong vùng này,

dữ liệu được lưu trữ dưới dạng mô hình hoá đa chiều (dimensionalmodeling) nhằm hỗ trợ các ứng dụng hay truy vấn dạng phân tích đầu

cuối Trong các hình vẽ, vùng này được viết tắt là DDS, DW hay DWH.

Kho dữ liệu có rất nhiều loại kiến trúc Từ đơn giản nhất, chỉ gồm một kho

dữ liệu đầu cuối, đến rất phức tạp, bao gồm nhiều kho dữ liệu trung gian, được

sử dụng trong những hệ thống lớn Tuy nhiên, hầu hết các kiến trúc đều dựatrên 3 kiến trúc chung phổ biến sau:

• Kiến trúc DDS đơn (single DDS) chỉ bao gồm kho dữ liệu đầu cuối vàmột vùng xử lí

• Kiến trúc NDS+DDS là kiến trúc bao gồm vùng xử lí, vùng dữ liệuchuẩn hoá, và kho dữ liệu đầu cuối

• Kiến trúc ODS+DDS tương tự như kiến trúc NDS+DDS nhưng sử dụngvùng dữ liệu hoạt động thay cho vùng dữ liệu chuẩn hoá

Mỗi kiến trúc đều có những ưu điểm và nhược điểm riêng Sau đây, chúng

ta sẽ phân tích sơ qua từng kiến trúc

1 Kiến trúc DDS đơn

Hình 1.2.1.1-1: Kiến trúc kho dữ liệu dạng DDS đơn

Trang 6

Kiến trúc DDS đơn là một trong những dạng kiến trúc đơn giản nhất củakho dữ liệu Kiến trúc này có thành phần chính là một kho dữ liệu trungtâm.

Dữ liệu từ nhiều hệ thống nguồn được nạp vào vùng xử lí thông qua một

gói ETL (Extract-Transform-Load: Rút trích-Biến đổi-Nạp – Xem chương 3) Gói ETL này sẽ rút trích dữ liệu từ nhiều nguồn khác nhau, thực hiện

một số phép biến đổi dữ liệu đơn giản Dữ liệu sau đó được chứa trongvùng xử lí

Dữ liệu trong vùng xử lí sau khi được xử lí sơ bộ sẽ được biến đổi thôngqua một gói ETL khác để đưa vào kho dữ liệu đầu cuối Quá trình biến đổinày bao gồm nhiều công đoạn từ việc làm sạch, chuẩn hoá dữ liệu đến việcquản lí chất lượng và lịch sử thay đổi của dữ liệu

Kho dữ liệu đầu cuối chứa những dữ liệu đã được biến đổi, chuẩn hoá,

và lưu trữ dưới dạng mô hình đa chiều, sẵn sàng phục vụ cho các ứng dụngđầu cuối

o Không tái sử dụng được gói ETL đã làm Mỗi một quy trình rúttrích-biến đổi-nạp cho từng thành phần trong kho dữ liệu đầu cuốiđược thực hiện độc lập Việc này gây khó khăn cho việc xây dựngnhững kho dữ liệu lớn

2 Kiến trúc NDS+DDS

Trang 7

Hình 1.2.1.2-1: Kiến trúc kho dữ liệu dạng NDS+DDS

Đây là một kiến trúc khá phổ biến Kiến trúc này tương tự như kiến trúcDDS đơn, nhưng có thêm một vùng chứa dữ liệu trung gian là vùng chứa

dữ liệu chuẩn hoá NDS

Dữ liệu sau khi được làm sạch, thay vì đưa thẳng vào kho dữ liệu đầucuối, nó được lưu trong vùng chứa dữ liệu trung gian Vùng chứa dữ liệutrung gian đóng vai trò như là một cơ sở dữ liệu tập trung, đã được chuẩnhoá, bao gồm cả dữ liệu lịch sử Việc nạp vào kho dữ liệu đầu cuối sẽkhông cần qua công đoạn làm sạch và quản lí chất lượng dữ liệu nữa

• Ưu điểm:

o Lưu trữ dữ liệu tập trung đã được làm sạch

o Chứa dữ liệu lịch sử

o Sẵn sàng cho việc nạp vào nhiều kho dữ liệu đầu cuối

o Tái sử dụng được các gói ETL

• Nhược điểm:

o Kiến trúc phức tạp

o Tốn thêm không gian lưu trữ

o Thời gian thực hiện một chu kì nạp dữ liệu lâu hơn so với kiến trúcDDS đơn

o Vùng chứa dữ liệu trung gian không được tận dụng vào mục đíchkhác

3 Kiến trúc ODS+DDS

Trang 8

Hình 1.2.1.3-1: Kiến trúc kho dữ liệu dạng ODS+DDS

Kiến trúc này có nhiều điểm tương đồng với kiến trúc NDS+DDS Như trong hình vẽ, thay vì sử dụng một vùng dữ liệu chuẩn hoá làm vùng dữ liệutrung gian, người ta sử dụng một vùng dữ liệu hoạt động thay cho nó

Vùng dữ liệu hoạt động này cũng là một cơ sở dữ liệu dạng chuẩn hoácao Tuy nhiên, nó không lưu dữ liệu lịch sử Vùng dữ liệu hoạt động cócấu trúc nghiêng về dạng cơ sở dữ liệu phục vụ giao tác (OLTP) nhiều hơn

Nó đóng vai trò như là một cơ sở dữ liệu tập trung mà ở đó, ứng dụng đầucuối cho phép khai thác trên nó

Có thể thấy những ưu điểm và nhược điểm của nó so với kiến trúcNDS+DDS như sau:

• Ưu điểm:

o Lưu trữ dữ liệu tập trung đã được làm sạch

o Tận dụng làm cơ sở dữ liệu tập trung phục vụ giao tác cho ứng dụng đầu cuối

• Nhược điểm:

o Không chứa dữ liệu lịch sử

o Các gói ETL để đưa dữ liệu từ vùng dữ liệu hoạt động vào kho dữliệu đầu cuối phức tạp hơn

o Vùng dữ liệu hoạt động có thể bị gián đoạn khi nạp kho dữ liệu

o Không tái sử dụng được các gói ETL

Trong nội dung của cuốn khoá luận này, nội dung sẽ tập trung vào kiến trúc NDS+DDS.

5 Vùng xử lí

Trang 9

Hình 1.2.2-1: Vùng xử líThông thường, trong tất cả các kiến trúc kho dữ liệu, luôn có một vùngchứa dữ liệu gọi là vùng xử lí Dữ liệu được chuyển từ nhiều nguồn vào vùng

xử lí mà không thông qua (hoặc rất ít) công đoạn xử lí nào

Hẳn nhiên, có thể nạp trực tiếp dữ liệu từ nguồn vào kho dữ liệu đầu cuối.Tuy vậy, việc sử dụng một vùng xử lí có các lợi ích sau:

• Giảm thiểu tối đa thời gian rút trích dữ liệu từ nguồn Việc này nhằmtránh gián đoạn đến hoạt động của các cơ sở dữ liệu nguồn Thôngthường, người ta sẽ sao chép y nguyên dữ liệu nguồn vào vùng này

• Khi sử dụng các vùng xử lí độc lập cho từng nguồn, cho phép thao táctrên một tập hợp nhỏ các dữ liệu mà ta cần sử dụng, thay vì truy vấn toàn

Vùng xử lí có thể lưu trữ dữ liệu dài hạn, như là một cơ sở dữ liệu trunggian Nhưng thông thường, người ta sẽ xoá đi sau mỗi lần nạp dữ liệu Đặc

Trang 10

biết đối với các kiến trúc cấp cao như NDS+DDS hay ODS+DDS, việc lưu trữ

dữ liệu trong vùng xử lí sau mỗi công đoạn nạp là hoàn toàn không cần thiết.Cấu trúc của dữ liệu vùng xử lí như sau:

• Đối với dữ liệu nguồn là cơ sở dữ liệu: Dữ liệu trong vùng xử lí là tất cảcác bảng chứ dữ liệu cần thiết cho việc nạp dữ liệu, nhưng chỉ chứa cáccột dữ liệu cần thiết mà thôi Các bảng được loại bỏ các ràng buộc khoáchính, khoá ngoại và chỉ mục Việc này nhằm tăng tốc cho sao chép dữliệu nguồn Để tránh việc dữ liệu không nhất quán, các gói ETL cầnđược thiết kế cẩn thận để giải quyết việc này

• Đối với dữ liệu nguồn là dạng tập tin: Đơn giản chỉ cần sao chép nó đếnmáy chủ

6 Cơ sở dữ liệu chuẩn hoá

Hình 1.2.3-1: Cơ sở dữ liệu chuẩn hoá

Đối với kiến trúc NDS+DDS, vùng chứa dữ liệu dạng chuẩn hoá, còn đượcgọi là cơ sở dữ liệu chuẩn hoá đóng vai trò là một cơ sở dữ liệu tập trung Cơ

sở dữ liệu này có các đặc điểm sau:

• Là nơi tập trung dữ liệu từ nhiều nguồn Tất cả dữ liệu này đều đã đượclàm sạch

• Cơ sở dữ liệu được tổ chức ở dạng chuẩn hoá cao, nhằm bảo đảm chấtlượng dữ liệu, các ràng buộc toàn vẹn trên dữ liệu cũng như tính nhất quácủa dữ liệu

• Các thông tin về lịch sử của dữ liệu được lưu lại toàn bộ ở đây Nếu dữliệu nguồn không chứa thông tin lịch sử, gói ETL dùng biến đổi dữ liệuvào cơ sở dữ liệu chuẩn hoá sẽ đảm nhận việc bổ sung các dữ liệu lịch

Trang 11

sử Thường là ngày tháng khi lấy dữ liệu Nếu dữ liệu nguồn chứa thôngtin lịch sử, gói ETL dùng biến đổi dữ liệu sẽ chuyển đổi các thông tinlịch sử tương ứng từ nguồn vào cơ sở dữ liệu chuẩn hoá Các thông tinnày cho phép nắm bắt lịch sử dữ liệu tại một nơi tập trung duy nhất.

• Cấu trúc của cơ sở dữ liệu chuẩn hoá rất gần với cấu trúc của kho dữ liệuđầu cuối, tuy nhiên được tổ chứ ở dạng chuẩn cao Việc này giúp tăngtốc cho các tính toán số liệu trong khi nạp các dữ kiện vào kho dữ liệu

Dữ liệu sau mỗi lần nạp thành công vào cơ sở dữ liệu chuẩn hoá, sẽ đượcxoá trong vùng xử lí Khi quá trình nạp dữ liệu bị gián đoạn, quá trình nạp dữliệu được thực hiện tiếp tục trên những dữ liệu chưa được nạp thành công, tức

là vẫn còn dữ liệu trên vùng xử lí

7 Kho dữ liệu đầu cuối

Hình 1.2.4-1: Kho dữ liệu đầu cuốiTrong một hệ thống kho dữ liệu, kho dữ liệu đầu cuối là thành phần quan trọng nhất, ở đó, dữ liệu được tổ chức theo một cấu trúc đặc biệt: mô hình đa chiều (dimensional) Đây là cấu trúc dạng tối ưu phục vụ truy vấn đầu cuối cho các ứng dụng phân tích như OLAP, khai thác dữ liệu,…

Đây là kiểu cấu trúc dựa trên mô hình khối đa chiều (multi-dimensioncube) Mỗi khối đa chiều là bao gồm một bảng dữ kiện (fact) và các bảngchiều (dimension) Dữ kiện là các độ đo, các số liệu được tính toán từ cácchiều Cấu trúc dữ liệu này có đặc trưng là phi chuẩn hoá (denormalized) Đây

là một đặc trưng quan trọng của kho dữ liệu mô hình hoá đa chiều

Trang 12

Cấu trúc và phương pháp mô hình hoá đa chiều được đề cập trong Chương

2 - Mô hình hoá sử dụng lược đồ hình sao.

Nói một cách tóm tắt, kho dữ liệu đầu cuối nhằm mục đích sau:

• Tăng tốc tối đa thời gian truy vấn trên các dữ liệu dạng phân tích Dữliệu truy vấn trên kho dữ liệu cho tốc độ rất cao Ở những hệ thống lớn,với nhiều nguồn dữ liệu, một câu truy vấn chạy trực tiếp trên dữ liệunguồn có thể mất hàng giờ đồng hồ, nhưng khi chạy trên hệ thống kho

dữ liệu chỉ mất vài phút Việc rút ngắn thời gian như vậy là rất đáng kể.Ngoài ra, nó còn giúp hạn chế việc gián đoạn hoạt động của các hệ thốngnguồn

• Hỗ trợ phân tích các thay đổi mang tính lịch sử trên dữ liệu Kho dữ liệu được tổ chức để theo dõi toàn bộ các thay đổi của dữ liệu Vì vậy, các phân tích dữ liệu theo dòng thời gian là đặc biệt nhanh chóng và hiệu quả

• Đối với những truy vấn có được phát biểu dưới dạng tương tự nhau, câutruy vấn SQL/MDX trên kho dữ liệu có rất ít khác biệt Các truy vấn phátbiểu dạng này cũng dễ hiểu và gần gũi người dùng cuối Chẳng hạn: câutruy vấn “Tương quan tỉ lệ sinh viên đậu/rớt trong năm nay so với cácnăm trước?” và “Tương quan giữa thời gian sử dụng hệ thống học tậptrực tuyến và điểm số của sinh viên?” là những câu truy vấn có cấu trúctương tự nhau

• Hỗ trợ xây dựng khối OLAP nhanh, hiệu quả OLAP là một trong nhữngứng dụng đầu cuối phổ biến trong việc sử dụng hệ thống kho dữ liệu.Khối OLAP mặc dù có thể xây dựng trên cơ sở dữ liệu thông thường,nhưng nếu được xây dựng trên kho dữ liệu, sẽ giảm thiểu thời gian xâydựng khối và tăng tốc các truy vấn OLAP

1.3 Các thách thức đối với kho dữ liệu

Việc xây dựng kho dữ liệu là một công việc phức tạp và đòi hỏi nhiều vấn đềcần được nghiên cứu kĩ càng trước khi cài đặt Đối với kho dữ liệu, nhưng tháchthức sau đây luôn được đặt lên hàng đầu:

Trang 13

8 Chất lượng dữ liệu

Thách thức lớn nhất là việc quản lí chất lượng dữ liệu Bởi vì bản thân các

hệ thống nguồn thường không bao giờ không bị lỗi trên dữ liệu, việc xây dựngkho dữ liệu bảo đảm cung cấp đầy đủ thông tin và nhiều ý nghĩa là liên hệsống còn đến tính hiệu quả của kho dữ liệu Quản lí chất lượng dữ liệu baogồm:

Dữ liệu trùng lắp: Xảy ra khi cùng một dữ liệu được ghi nhiều lần vào

kho, nhưng không thể theo dõi được do thiếu các ràng buộc khoá

Dữ liệu không đầy đủ: Dữ liệu thiếu trong quá trình nhập liệu, chẳng hạn

sinh viên thiếu thông tin về địa chỉ tạm trú/thường trú Việc này làmgiảm hiệu quả của các phân tích đầu cuối

Dữ liệu sai: Là trường hợp dữ liệu bị lỗi chẳng hạn như lỗi đánh máy, lỗi

chính tả, chữ hoa, chữ thường…

Xung đột dữ liệu: Đây là trường hợp cùng một dữ liệu nhưng được lưu

trữ trên nhiều bảng hoặc thậm chí nhiều nguồn khác nhau, nhưng khôngnhất quán

Siêu dữ liệu không rõ nghĩa: Thường là do cùng một đối tượng dữ liệu

nhưng khác kiểu dữ liệu hoặc sai lệch về ngữ nghĩa của dữ liệu trên cácnguồn khác nhau Chẳng hạn cùng tên cột, cùng bảng, nhưng trên 2nguồn khác nhau có ngữ nghĩa hoàn toàn khác nhau

Thiếu dữ liệu: Là trường hợp dữ liệu lẽ ra phải có để bảo đảm toàn vẹn

(tham chiếu…), nhưng không tìm thấy các dữ liệu này ở nơi khác

Dữ liệu NULL: Đây là dạng dữ liệu rất chung chung và tối nghĩa Nó cần

được dịch ra để phù hợp với ngữ cảnh

9 Khối lượng dữ liệu và hiệu suất hoạt động

Nếu như lượng dữ liệu trung bình cho mỗi cơ sở dữ liệu khoảng vài đến vàichục Gigabyte, dữ liệu trong kho dữ liệu có thể lên đến vài chục Terabyte,thậm chí còn được tính bằng đơn vị Petabytes (1Petabytes = 1024Terabytes).Điều này là hoàn toàn dễ hiểu vì 2 lí do sau:

• Dữ liệu được mô hình hoá đa chiều, tổ chức dưới dạng phi chuẩn(denormalized) khiến cho khối lượng dữ liệu trùng lắp tăng đáng kể

Trang 14

• Dữ liệu lịch sử được lưu lại ở mức chi tiết nhất có thể, theo thời gian, sẽtăng lên rất nhanh.

Đối với lượng dữ liệu lớn như vậy, các đề nghị sau cần được xem xét đểtăng hiệu suất hoạt động cho kho:

Xây dựng hệ thống vật lý độc lập nguồn: Việc này làm giảm tải xử lí cho

hệ thống nguồn Tuy rằng việc tổ chức trên cùng một hệ thống vật lí với

hệ thống nguồn cho phép tăng thời gian nạp, ngược lại, lại làm giảm hiệusuất hoạt động của chính hệ thống nguồn Hơn nữa, các hệ thống nguồnnằm rải rác thì không thể tổ chức một hệ thống kho dữ liệu phân tán trên

đó được

Cài đặt chỉ mục: Hoạt động chính của kho dữ liệu là việc đọc dữ liệu

hơn là ghi dữ liệu lên đó Các câu truy vấn chủ yếu tốn thời gian ở việctìm kiếm dữ liệu Cài đặt chỉ mục hợp lí là phương pháp hiệu quả để tăngtốc truy vấn Các truy vấn thường dùng cần được phân tích cho việc càiđặt chỉ mục

Chỉ mục dạng bitmap: Đây là dạng chỉ mục rất hiệu quả đối với những

bảng có số lượng các giá trị rời rạc (cardinality) thấp Xem xét việc càiđặt chỉ mục dạng này cũng làm tăng đáng kể hiệu suất truy vấn

Dữ liệu tổng hợp (Aggregation): Có thể xem xét việc tiền xử lí các dữ

kiện, chẳng hạn như xây dựng các bảng trung gian, chứa các dữ liệuđược tổng hợp (sum, count, average) ở độ mịn cao

10 Nắm bắt các thay đổi trên dữ liệu

Việc nạp dữ liệu từ nguồn vào vùng xử lí thoạt nhìn có vẻ đơn giản Nhưngkhông hẳn như vậy Người ta không thể mỗi lần nạp dữ liệu đều sao chép toàn

bộ dữ liệu từ nguồn vào vùng xử lí Đây là việc làm rất tốn kém và không hiệuquả Thay vào đó, người ta cố gắng nắm bắt được các thay đổi trên dữ liệu,bao gồm các dữ liệu mới và các dữ liệu cũ vừa bị thay đổi

Có 4 kĩ thuật nắm bắt thay đổi dữ liệu nguồn, được chia làm 2 loại chính:

Trang 15

Kĩ thuật xâm nhập (intrusive): Là các kĩ thuật ở đó cần thực hiện truy

vấn trên dữ liệu nguồn mà gây ảnh hưởng đến hiệu suất hoạt động của

o Nắm bắt thay đổi dựa trên trigger: Bằng cách cài đặt thêm trigger vào

cơ sở dữ liệu nguồn Các dữ liệu lịch sử này được lưu riêng, cho phép

hệ thống kho dữ liệu truy vấn để rút trích dữ liệu mới hoặc đã thayđổi

o Nắm bắt thay đổi dựa trên ảnh chụp dữ liệu (snapshot): Đây là kĩ thuật

mà ở đó, vùng xử lí lưu lại toàn bộ dữ liệu của lần nạp trước như làmột ảnh chụp dữ liệu Dữ liệu ở lần nạp sau được so sánh với dữ liệutrước để so sánh thay đổi trước khi quyết định sẽ lấy dữ liệu nào Kĩthuật này được sử dụng đối với dữ liệu nguồn thiếu thông tin lịch sử,

và tránh việc phải thay đổi hệ thống nguồn (bằng trigger)

Kĩ thuật phi xâm nhập (non-intrusive): Là các kĩ thuật không gây ảnh

hưởng đến hiệu suất hoạt độn của dữ liệu nguồn

o Nắm bắt thay đổi dựa trên log: Trên mỗi hệ thống nguồn, có thể sửdụng có sẵn (đối với cơ sở dữ liệu) hay cài đặt một chương trình ghilog, quản lí toàn bộ lịch sử thay đổi của nguồn

11 Yêu cầu người dùng thay đổi

Cũng giống như mọi dự án phần mềm khác, việc xây dựng hệ thống có thể bảo đảm được cho việc thay đổi yêu cầu người dùng trong tương lai là thách thức rất lớn

1.4 Các xu hướng xây dựng kho dữ liệu

• Kho dữ liệu ảo

• Kho dữ liệu thời gian thực

• Kho dữ liệu phân tích

Trang 17

Chương 2 Mô hình hoá sử dụng lược đồ hình sao

Như đã đề cập ở chương 1, việc tối ưu hoá tốc truy vấn cho kho dữ liệu là điềukiện tiên quyết cho hiệu quả triển khai một dự án kho dữ liệu Vì vậy cấu trúc cơ sở

dữ liệu của kho dữ liệu cần được tổ chức theo một mô hình đặc trưng riêng Đó làphương pháp mô hình hoá đa chiều

2.1 So sánh phương pháp mô hình hoá của Bill Inmon và Ralph Kimball

Việc tổ chức dữ liệu trong cơ sở dữ liệu của kho dữ liệu được tiếp cận theo 2hướng sau:

Phương pháp mô hình hoá dạng chuẩn hoá của Bill Inmon (lược đồ

bông tuyết): Cơ sở dữ liệu được tổ chức dưới dạng chuẩn hoá, tuân theo luật

chuẩn hoá như đối với cơ sở dữ liệu quan hệ thông thường (dạng chuẩn 3)

o Ưu điểm:

 Dữ liệu được nạp từ nguồn vào đích dễ dàng

 Dạng chuẩn cao giúp bảo đảm các ràng buộc toàn vẹn của dữ liệu,tránh trùng lắp

o Nhược điểm:

 Việc kết các bảng để cho ra kết quả truy vấn mong muốn phức tạp

 Đòi hỏi người dùng phải hiểu được cấu trúc tổ bên dưới của kho dữliệu

 Tốc độ truy vấn chậm do việc kết các bảng có kích thước lớn

Phương pháp mô hình hoá đa chiều của Ralph Kimball (lược đồ hình

sao): Cơ sở dữ liệu được lưu trữ dưới dạng phi chuẩn hoá Bao gồm bảng

dữ kiện (fact) chứa thông tin các giao tác và các bảng chiều (dimension)đóng vai trò như là bảng tham chiếu lấy thông tin Các bảng này đều đượclưu dưới dạng chuẩn thấp (dạng chuẩn 1 hoặc 2)

Trang 18

 Trùng lắp dữ liệu nhiều, khiến cho kích thước kho lớn (Trong điều kiện công nghệ hiện nay, đây không hẳn là một trở ngại lớn!)

Xu hướng hiện tại, đa số các dự án trên kho dữ liệu được cài đặt dưới dạng môhình hoá đa chiều bằng lược đồ hình sao do hiệu suất hoạt động vượt trội của nó.Các nhược điểm của mô hình dạng này không phải là trở ngại lớn

Trong nội dung của luận văn này, chúng ta chỉ bàn đến các thiết kế dựa trênlược đồ hình sao

2.2 Lược đồ hình sao

Như đã nói ở trên, phương pháp mô hình hoá đa chiều với lược đồ hình sao thể hiện những ưu điểm vượt trội của mình Bởi vì kho dữ liệu được thiết kế cho mục đích đọc nhiều hơn là ghi trên nó, đặc biệt, nó không phải là cơ sở dữ liệu phục vụ giao tác (OLTP), việc tránh dư thừa dữ liệu là không cần thiết

Hình 2.2-1: Lược đồ hình sao

Lược đồ hình sao được gọi theo mô hình của nó Như mô tả trong hình vẽ,

lược đồ hình sao bao gồm một bảng trung tâm gọi là bảng dữ kiện Bảng này tham chiếu đến các bảng xung quanh, gọi là bảng chiều.

12 Bảng chiều và bảng dữ kiện

Để hiểu một cách đơn giản cho khái niệm bảng chiều và bảng dữ kiện, ta hãy xem xét ví dụ sau:

Trang 19

Hệ thống của trường ghi lại việc “Một sinh viên SV vào trang web Moodle của khoa để xem thông tin của một môn học MH vào lúc 12h trưa ngày

06/06/2006, thời gian truy cập 60 giây.”

Ta xem mỗi lần sinh viên vào trang web môn học được xem như một giao

tác Như vậy, hệ thống đã ghi nhận có một giao tác, liên quan đến các đối

Con số thể hiện một độ đo của một giao tác gọi là dữ kiện của giao tác đó

Ở đây, con số 60giây là dữ kiện của giao tác truy cập trang web trên Ta có thể

vẽ một lược đồ hình sao như sau:

Hình 2.2.1-1: Ví dụ lược đồ hình sao

13 Các đặc trưng của lược đồ hình sao

Xem xét cấu trúc một lược đồ hình sao như sau:

Trang 20

Hình 2.2.2-1: Cấu trúc lược đồ hình sao

Tất cả các dòng trong bảng dữ kiện được lưu với độ mịn thấp nhất có thể.

Độ mịn là mức độ chi tiết của dữ liệu Một dữ kiện được tính theo ngày

có độ mịn thấp hơn dữ kiện được tính theo giờ…

• Độ mịn của dữ kiện được xác định bằng độ mịn của các chiều liên quan

• Tất cả các độ đo trong bảng dữ kiện có thể được cuộn lên (roll-up) hoặc gom nhóm theo chiều Chẳng hạn có thể tính doanh thu theo tháng, năm, gom nhóm theo sản phẩm,…

2.3 Truy vấn trên lược đồ hình sao

(Cần bổ sung các so sánh truy vấn giữa lược đồ hình sao và lược đồ chuẩn hoá)

2.4 Kiến trúc buýt

Để đưa ra thiết kế chính xác cho kho dữ liệu, người ta sử dụng ma trận kiến

buýt (bus matrix) (Ralph Kimball - The Data Warehouse Toolkit) Đây là một

bảng mô tả mối liên hệ giữa các nghiệp vụ với các đối tượng liên quan

Hình 2.4-1: Ma trận kiến trúc buýtBảng trên đây mô tả mối liên hệ giữa các nghiệp vụ:

• Các dòng: Thể hiện các nghiệp vụ

• Các cột: Thể hiện các đối tượng

• Các ô: Mô tả một đối tượng có liên quan đến nghiệp vụ đó hay không

Trang 21

Bằng việc phân tích yêu cầu người dùng và đưa ra được ma trận kiến trúc buýt, có thể dễ dàng xây dựng lược đồ hình sao cho kho dữ liệu trong dó:

• Các dòng: Là các bảng dữ kiện

• Các cột: Là các bảng chiều

Chú ý rằng các bảng dữ kiện khác nhau có thể cùng tham chiếu đến một chiều

Các chiều này được gọi là các chiều chuẩn (conformed dimension)

2.5 Các nguyên tắc thiết kế

Có một số nguyên tắc chung khi thiết kế kho dữ liệu như sau:

14 Sử dụng khoá đại diện:

Thông thường, mỗi bảng đều có một khoá chính dùng định danh cho từng dòng của nó Khoá này có thể tạo bởi 1 hay nhiều cột Trong dữ liệu nguồn, khoá này là không thống nhất, và có thể mang nhiều kiểu khác nhau, cũng có thể được tạo tự động bởi cơ sở dữ liệu nguồn Chẳng hạn môn học TTH-294 làmột khoá chính Trong kho dữ liệu, khoá này gọi là khoá tự nhiên Vì những lí

do trên đây, khoá tự nhiên của dữ liệu nguồn không thể được sử dụng trong một hệ thống chung của kho dữ liệu Thay vào đó, người ta sử dụng khoá đại diện, với các đặc điểm sau:

• Chỉ bao gồm 1 cột: Đơn giản cho phép kết

• Là số nguyên không âm: Tăng tốc cho việc đánh số chỉ mục và kết bảng

• Tạo bởi gói ETL trong lúc nạp dữ liệu: Thống nhất giữa nhiều nguồn dữ liệu

15 Quy tắc đặt tên và kiểu

Để dễ hiểu cho người dùng cuối trong khi truy vấn, người ta sử dụng các quy tắc sau:

• Đặt tên bảng có chứa tiền tố (fct_ cho bảng dữ kiện, dim_ cho bảng chiều, lkp_ cho bảng tìm kiếm…)

• Tất cả các khoá của chiều được đặt tên theo tên bảng với hậu tố _key

• Tất cả khoá của các chiều sử dụng số nguyên không âm nhỏ nhất có thể

• Tên của các cột phải có ý nghĩa, tránh viết tắt

Sử dụng những tên chuẩn cho các cột theo dõi (xem mục 2.5.4)

16 Độ mịn và mức tổng hợp

Trang 22

Đối với việc lưu dữ liệu ở nhiều độ mịn, quy tắc duy nhất: Lưu với độ mịn thấp nhất có thể.

Đối với việc tổng hợp dữ liệu: Tất cả các dữ kiện có nhu cầu truy xuất trongkhi truy vấn cần được tính toán sẵn ở mức thấp nhất Tránh việc phải tính toánlại trong quá trình truy vấn đầu cuối Chẳng hạn: Truy vấn đầu cuối có mục tiêu phải tính được thời gian truy cập của từng lượt truy cập, trong khi dữ liệu nguồn chỉ lưu thời gian bắt đầu và kết thúc của một truy cập Như vậy, cần phải tính sẵn thời gian truy cập để lưu vào bảng dữ kiện thay vì lưu thời gian bắt đầu và kết thúc riêng!

17 Ngày giờ

Thời gian là một đối tượng đặc biệt trong kho dữ liệu Chi tiết việc nạp

chiều thời gian (bao gồm ngày và giờ) được mô tả trong Chương 3 – Tích hợp

dữ liệu Một số chú ý sau:

• Độ mịn được đặt ở mức thấp nhất có thể theo yêu cầu của người dùng

• Lưu riêng ngày và giờ trong ngày thành 2 chiều khác nhau

• Sử dụng giờ chuẩn quốc tế

• Sử dụng khoá thông minh cho ngày giờ, với định dạng: YYYYMMDDhay HHMMSS Ở đây ta không sử dụng khoá đại diện vì việc sử dụngkhoá chính cho chiều thời gian cho phép phân vùng (partitioning) dữ liệutheo thời gian Hơn nữa, chiều thời gian là chiều được nạp độc lập vớicác chiều khác

18 Khoá vô danh

Mỗi bảng chiều có một dòng với khoá đại diện là 0, các trường khác đặt giátrị mặc định Dòng này mô tả trạng thái nạp một dữ kiện vào bảng dữ kiệnnhưng không tìm thấy đối tượng tương ứng với dữ kiện đó trong chiều mà nótham chiếu tới

Việc này giúp tránh dữ liệu NULL ở khoá ngoại bảng dữ kiện, đồng thờimang ý nghĩa rõ ràng cho người dùng cuối rằng: “không tìm thấy đối tượngliên quan đến ngữ cảnh đang có!”

Trang 23

Chương 3 Tích hợp dữ liệu

3.1 Khái niệm

Hệ thống tích hợp dữ liệu, hay còn gọi là hệ thống ETL Transform) là một hệ thống được thiết kế để làm các nhiệm vụ sau:

(Extract-Load-• Kết xuất dữ liệu từ các hệ thống nguồn

• Kiểm tra chất lượng dữ liệu và các tiêu chuẩn toàn vẹn

• Biến đổi dữ liệu để dữ liệu từ nhiều hệ thống có thể được sử dụng cùng nhau

• Nạp dữ liệu vào một dạng trung gian cho phép các nhà phát triển cho thểxây dựng ứng dụng và người dùng cuối có thể ra quyết định dựa trên dữliệu và ứng dụng đó

3.2 Các bước tiến hành của quá trình tích hợp dữ liệu

19 Kết xuất dữ liệu:

Một công ty hoặc tổ chức thông thường cần nhiều hệ thống tin học để điềukhiển hoạt động của mình Ví dụ: hệ thống quản lý bán hàng, quản lý kho, quản

lý nhân viên, quản lý sản phẩm Những hệ thống này có thể không tương thích

về mặt logic hoặc vật lý, điều này gây ra những khó khăn cho việc tích hợp dữliệu Những khó khăn đó có thể do các hệ thống khác nhau về:

• Hệ quản trị CSDL

• Hệ điều hành

• Phần cứng

• Các giao thức truyền thông tin giữa nguồn dữ liệu và bên ngoài

Như vậy, với những nguồn dữ liệu khác nhau, để tích hợp dữ liệu vào kho dữliệu, ta phải xây dựng các quy tắc ánh xạ dữ liệu từ dữ liệu nguồn đến kho dữliệu Với kiến trúc và tính chất của nguồn dữ liệu khác nhau, đòi hỏi phải xâydựng một bảng ánh xạ vật lý từ dữ liệu được lưu trữ ở nguồn đến kho dữ liệu.Trước khi xây dựng một bảng ánh xạ vật lý, ta cần một bảng ánh xạ dữ liệu logic

từ các trường của nguồn dữ liệu đến các trường của bảng trong kho dữ liệu.Cấu trúc của một bảng ánh xạ dữ liệu logic phải bao gồm các thông tin sau:+ Tên bảng đích: tên vật lý của bảng trong kho dữ liệu

+ Tên cột đích: tên cột trong bảng trong kho dữ liệu

Trang 24

+ Loại bảng: xác định đó là bảng fact, bảng chiều hay bảng chiều con.

+ SCD: xác định loại chiều thay đổi chậm (Slowly Changing Dimension),

dùng để lưu lịch sử dữ liệu

+ CSDL nguồn: tên CSDL phía nguồn

+ Tên bảng nguồn: tên bảng phía nguồn

+ Tên cột nguồn: tên cột trong bảng phía nguồn

+ Biến đổi: cách xử lý logic đối với dữ liệu nguồn để đưa về cùng định dạng với dữ liệu đích Phép biến đổi này thường được viết bằng mã giả SQL

Trang 25

Ví dụ về bảng ánh xạ dữ liệu logic:

Trang 26

Hình 1

Để có được một bảng ánh xạ dữ liệu logic như vậy, sau khi hoàn tất công đoạnphân tích yêu cầu và thiết kế kho dữ liệu, ta phải tìm hiểu và nhận dạng các hệ thống nguồn đáp ứng các yêu cầu dữ liệu của kho dữ liệu, phân tích cấu trúc của

hệ thống nguồn đó thông qua lược đồ CSDL, xác định các khóa, loại dữ liệu, mốiquan hệ giữa các bảng, và phân tích chính bản thân dữ liệu để tìm hiểu các lỗi tiềm tàng của dữ liệu và cách khắc phục Ví dụ:

+ Ý nghĩa và cách khắc phục đối với các trường dữ liệu null

+ Các trường ngày tháng không đúng định dạng chuẩn

Sau khi hoàn tất bảng ánh xạ dữ liệu logic, ta sẽ xây dựng bảng ánh xạ dữ liệu vật lý dựa trên kiến trúc, cách lưu trữ và cấu trúc của dữ liệu nguồn và dữ liệu đích

Trong phạm vi của khóa luận, nhóm chỉ tiến hành tìm hiểu trên các nguồn dữliệu khác nhau về cấu trúc và cách lưu trữ Cụ thể là tích hợp dữ liệu trên nhiềuCSDL và tập tin khác nhau

Trong quá trình tích hợp dữ liệu, việc lấy tất cả dữ liệu từ nguồn rất mất thờigian và không cần thiết, do đó ta chỉ lấy những dữ liệu mới từ nguồn mà kho dữliệu chưa cập nhật hoặc những dữ liệu được thay đổi ở nguồn sau khi cập nhậtvào kho dữ liệu Quá trình lấy dữ liệu như vậy được gọi là lắng nghe và kết xuất

dữ liệu thay đổi Có nhiều phương pháp để nhận biết sự thay đổi ở dữ liệu nguồn

để cập nhật vào kho dữ liệu Sau đây là các phương pháp thường được sử dụng:+ Sử dụng cột kiểm tra (audit columns): được thêm vào cuối của mỗi bảng đểlưu dữ liệu về ngày giờ cập nhật hoặc điều chỉnh một dòng dữ liệu Dữ liệu củacột kiểm tra này thường được cập nhật bởi trigger hoặc ứng dụng người dùngcuối Rủi ro của phương pháp này là kho dữ liệu có thể cập nhật thiếu dữ liệu nếucột kiểm tra bị cập nhật sai

+ Sử dụng log scraping và sniffing: sử dụng các bảng log của các giao tác làmthay đổi dữ liệu để kiểm tra sự thay đổi

Trang 27

+ Sử dụng các kết xuất thời gian: cũng giống như phương pháp sử dụng cộtkiểm tra, phuoưng pháp này sử dụng trường ngày tạo (hoặc cập nhật) để lấy dữliệu mới thêm vào theo chu kỳ Ví dụ: lấy dữ liệu theo chu kỳ là 1 ngày thì lúclấy dữ liệu sẽ chọn hết tất cả những dòng dữ liệu có ngày tạo (hoặc ngày cậpnhật) là ngày trước ngày cập nhật một ngày Rủi ro của phương pháp này là nếuquá trình kết xuất dữ liệu bị lỗi vào một ngày nào đó thì dữ liệu ngày đó sẽ khôngbào giờ được lấy lại nữa, do vậy cần có các cơ chế lấy lại dữ liệu trong nhữngtrường hợp lỗi.

+ Kỹ thuật loại trừ: lưu một bản sao của phiên bản trước vào vùng lưu trữ (staging area), khi kết xuất dữ liệu từ nguồn, ta chỉ tìm các dòng dữ liệu chưa có trong vùng lưu trữ (dựa vào khóa) hoặc đã bị thay đổi so với dữ liệu trong vùng lưu trữ

20 Biến đổi dữ liệu:

Biến đổi dữ liệu thực chất là việc kiểm tra dữ liệu và đề ra các tiêu chuẩn cho biết dữ liệu có thể được sử dụng trong kho dữ liệu hay không và đưa ra các giải pháp biến đổi phù hợp

Dữ liệu được đưa vào data warehouse phải là dữ liệu chính xác Tính chính xác được hiểu là dữ liệu phải có những tính chất sau:

+ Đúng đắn: dữ liệu phải mô tả trung thực đối tượng mà nó phản ánh Ví dụ:

dữ liệu mô tả những căn nhà ở Tp.Hồ Chí Minh thì bắt buộc trong địa chỉ phải chứa tên thành phố là Hồ Chí Minh

+ Không mơ hồ: xác định rõ ý nghĩa của đối tượng được mô tả Ví dụ: dữ liệu

về dân số ở quận Thủ Đức, Tp Hồ Chí Minh Nếu trong địa chỉ chỉ xác định làquận Thủ Đức, thì nó có thể là một địa danh khác ở đâu đó, điều này gây ra mơ

hồ, không rõ nghĩa

+ Nhất quán: các giá trị và mô tả dữ liệu phải sử dụng một quy ước thống nhất

để biểu diễn Ví dụ Tp Hồ Chí Minh, nếu quy ước viết tắt là Tp.HCM, thì trongtất cả các thể hiện của CSDL Tp Hồ Chí Minh đều phải được biểu diễn làTp.HCM

Trang 28

+ Đầy đủ: thể hiện ở hai điểm: các trường dữ liệu không phải là null và các giátrị suy biến phản ánh đầy đủ và chính xác.

Như vậy, vệc cần phải làm ở giai đoạn biến đổi dữ liệu là phải phát hiện dữliệu không chính xác để có bước xử lý thích hợp Và để đánh giá chất lượng dữliệu, người ta dựa vào các độ đo chất lượng dữ liệu

Yếu tố đầu tiên cần được xây dựng trong quá trình làm sạch dữ liệu là mộtbảng fact gọi là bảng sự kiện lỗi (error event table) và các chiều của nó Mỗi mộtlỗi hay vấn đề phát sinh trong quá trình làm sạch dữ liệu được lưu thành mộtdòng trong bảng fact

Lược đồ của bảng sự kiện lỗi:

Hình 2

+ Chiều ngày tháng (date dimension) là chiều chuẩn đại diện cho trường ngày tháng

Trang 29

+ Chiều screen chứa thông tin về bước kiểm tra chất lượng dữ liệu (thông thường việc kiểm tra tính đúng đắn của dữ liệu được chia ra làm nhiều bước, mỗibước được gọi là một screen) Mục đích của bảng này để mô tả screen đó làm gì

và được áp dụng khi nào, ngoài ra còn có các định nghĩa về các lỗi thường gặp, cách ứng phó khi gặp lỗi (cho qua, từ chối dữ liệu hay dừng toàn bộ hệ thống để phân tích lỗi)và độ nghiêm trọng của lỗi (severity score),

+ Chiều khối (batch) chứa thông tin về khối dữ liệu và dòng (row) dữ liệu sinh

ra lỗi trong khối đó

Người ta thường phân loại việc kiểm tra chất lượng dữ liệu thành 4 nhóm:+ Kiểm tra theo cột thuộc tính: bao gồm các bước kiểm tra giá trị null trong những cột yêu cầu giá trị, kiểm tra giá trị số nằm ngoài khoảng quy ước, độ dài của trường quá dài hoặc quá ngắn (không mong đợi), kiểm tra giá trị cột ngoài tập giá trị định sẵn hoặc không theo khuôn mẫu, kiểm tra lỗi chính tả

+ Kiểm tra theo cấu trúc dữ liệu: kiểm tra các bảng dữ liệu có các khóa chính và khóa tham chiếu đảm bảo ràng buộc tham chiếu

+ Kiểm tra dữ liệu có đúng với các quy tắc nghiệp vụ hay giá trị của dữ liệu suy biến có đúng hay không

Trang 30

Sơ đồ mô tả việc kiểm tra dữ liệu qua các screen:

Hình 3

Để nâng cao tốc độ kiểm tra tính đúng đắn của dữ liệu, người ta tìm cách lập lịch để các screen có thể chạy song song

21 Nạp dữ liệu

Trang 31

Ở giai đoạn này, hệ thống ETL sẽ chuyển dữ liệu đã được kết xuất và xử lý đến data warehouse Dữ liệu đã được xử lý không chỉ là cơ sở dữ liệu mà còn là các dạng dữ liệu khác như flat file, tài liệu XML, bảng tính, Yêu cầu của giai đoạn này thay đổi đối với mỗi hệ thống Hệ thống có thể lựa chọn ghi đè dữ liệu theo từng tuần hoặc theo giờ Các hệ thống phức tạp hơn có thể lưu các lịch sử

dữ liệu thay đổi trong data warehouse

Cấu trúc chiều: Tất cả các chiều cần được tổ chức vật lí sao cho có ít thành

phần nhất có thể Người ta thường gắn thêm một thuộc tính không có ý nghĩa thực tế để làm khoá đại diện (surrogate) bên cạnh khoá tự nhiên (natural key) của nó

Cấu trúc của một chiều thông thường như sau:

Bình thường, với mỗi khoá tự nhiên sẽ ứng với một khoá đại diện (1-1), nhưng khi cần theo dõi dữ liệu mang tính lịch sử, mỗi khoá tự nhiên có thể ứng với

nhiều khoá đại diện (xem SCD Type 2 sẽ được đề cập bên dưới)

Các thuộc tính trong mỗi chiều thường không chứa số Vì các thuộc tính mang giá trị số hầu như chắc chắn là các fact Trong khoảng 2% các trường hợp,

Trang 32

có thể rất khó đưa ra quyết định một trường chứa giá trị số thực ra có phải là facthay không (ví dụ giá sản phẩm) Trong trường hợp này, cần xác định:

• Yêu cầu người dùng

• Thuộc tính này có phải dạng SCD Type 2 hay không (nếu là SCD Type 2, đây là fact)

Nạp các chiều phẳng và các chiều bông tuyết:

Nếu như bước làm sạch dữ liệu, dữ liệu vẫn được giữ ở dạng chuẩn cao (dạng bông tuyết) để bảo đảm tính nhất quán, thì ở bước nạp dữ liệu, dữ liệu sẽ được giảm dạng chuẩn (dạng phẳng) để giúp tăng tối đa tốc độ truy vấn và kết xuất dữ liệu Vì thế, người ta thường cố gắng tránh tổ chức các chiều dạng bông tuyết

Dữ liệu có phân cấp theo nhiều cách khác nhau đối với cùng một chiều (chẳng hạn chiều sản phẩm phân cấp theo vùng địa lí hay theo vùng tiếp thị) Đểlàm phẳng, mọi thuộc tính liên quan đến các cách phân cấp này đều được lưu trong cùng một chiều

Chiều thời gian (bao gồm cả ngày-tháng):

Đây là một chiều rất quan trọng vì được dùng hầu như trong mọi bảng fact Bởi vì tính chất quan trọng của nó, chiều thời gian thường được tổ chức đặc biệt

và không có nguồn nhập Chiều này thường được dùng chung (dạng tham chiếu)cho nhiều chiều khác

Cấu trúc của chiều thời gian thường tổ chức như sau:

Trang 33

Có một số chú ý sau đối với chiều thời gian:

• Chiều thời gian thường được phân vùng vật lý do tính chất lịch sử của

nó Việc này làm tăng tốc độ cập nhật của dữ liệu

• Chiều ngày-tháng thường là một bảng vật lí cơ bản

o Nếu cần chiều tháng, sẽ sử dụng khoảng chặn ngày đầu cuối tháng để tổ chức

Trang 34

tháng-o Nếu cần tính chi tiết ở mức giờ, phút, giây, để bảtháng-o đảm không

bị tràn, người ta thường sử dụng thêm một thuộc tính nhãn thờigian

Các chiều lớn: thường là các chiều được tạo thành từ nhiều nguồn, nhiều

hệ thống khác nhau, do nhu cầu cần phải dữ lại quá nhiều thông tin Để giảm kích thước các chiều lớn, người ta cần làm các bước sau:

Trang 35

Vấn đề lựa chọn phân tách/hợp nhất chiều:

Nếu hai chiều có tương quan với nhau, người ta thường cố gắng tổ chức thành hai chiều độc lập và sử dụng bảng fact để mô tả mối tương quan đó, thay

vì hợp nhất thành một chiều

Nếu việc roll-up một chiều cho ra chiều còn lại (chẳng hạn product và

brand), thì nhất thiết không được tách thành hai chiều

Các trường hợp còn lại, cần cân nhắc yêu cầu của người dùng

Chiều nhập vai (role-playing dimension): Là chiều được gắn nhiều lần vào

cùng một bảng fact nhưng với các vai trò khác nhau Ví dụ điển hình là chiều thời gian Đối với chiều nhập vai, người ta thường tổ chức một chiều Các chiều tham chiếu từ bảng fact là các view được tạo ra từ chiều chung đó

Trang 36

Nạp các chiều suy biến:

Chiều suy biến là chiều dẫn xuất từ bảng fact mà không chứa thuộc tính nào (còn gọi là chiều rỗng) Chiều suy biến thường chỉ chứa một khoá tự nhiên để lưu vết các giao tác

Nạp các chiều thay đổi chậm (Slowly Changing Dimension – SCD): Là chiều

có thuộc tính thay đổi giá trị rất chậm theo thời gian vì một lí do nào đó Có 3 loại:

• SCD loại 1 (ghi đè): đây là loại chiều không cần lưu lại lịch sử thay đổi.Chỉ việc ghi đè lên bản ghi cũ

• SCD loại 2 (dữ liệu lịch sử hết hiệu lực): đây là loại chiều cần lưu lại lịch

sử Thay vì ghi đè lên chiều cũ, người ta tạo ra một dòng mới với cùngkhoá tự nhiên nhưng khác khoá đại diện Lúc đó, chỉ cần thay đổi thamchiếu từ bảng fact

• SCD loại 3 (dữ liệu lịch sử còn hiệu lực): đây là trường hợp các giá trịlịch sử vẫn còn hiệu lực sử dụng đồng thời với các giá trị mới Thay vìtạo thêm một dòng mới trong bảng chiều, người ta tạo thêm các cột mới

để lưu vết

Thông thường, người ta tránh sử dụng loại 2 vì nó làm thay đổi cấu trúc của

hệ thống Hơn nữa, việc xác định tính hiệu lực của dữ liệu thường được quyđịnh trong nghiệp vụ và được lưu như là một thuộc tính bình thường của chiềuđó

Trang 37

Nạp chiều đến sau và sửa lỗi dữ liệu:

Dữ liệu đến sau là những dữ liệu thay đổi sau khi đã xây dựng DW Dữ liệunày phân ra làm 2 loại:

• Dữ liệu cần sửa đổi: do phát hiện sai sót (về thời gian) trong quá trình xâydựng DW

• Dữ liệu cập nhật theo thời gian thực: do tính chất thời gian thực, dữ liệuđang được truy vấn là dữ liệu cũ, và dữ liệu được cập nhật là dữ liệu mới

nhưng chưa được nạp vào hệ thống (xem phần 4)

Các chiều đến sau cần được nạp vào DW bằng một hệ thống ETL độc lập vàcần được kiểm tra kĩ trên hệ thống thử nghiệm vì việc này ảnh hưởng sâu sắcđến hệ thống

Dữ liệu cần sửa đổi do phát hiện lỗi sai (về thời gian) được sửa theo 3 bướcsau:

• Thêm một bản ghi mới với các thông tin cập nhật cho thuộc tính tươngứng, ứng với mốc thời gian cần thay đổi

• Xác định từ mốc thời gian đó, tất cả các thay đổi xảy ra về sau nó và ghi

đè bằng các giá trị mới của thuộc tính

• Cập nhật lại khoá ngoại cho bảng fact tất cả các bản ghi tham chiếu đếncác bản ghi đã thay đổi trong chiều đó

Nạp chiều đa giá trị và bảng cầu nối:

Các chiều đa giá trị là các chiều có quan hệ n-n đến bảng fact Trong trườnghợp này, cần phải tạo bảng cầu nối và bảng phân nhóm (để tránh quan hệ n-nđến bảng fact)

Ví dụ:

Nạp các chiều phân cấp không đều (Ragged Hierarchies):

Ngày đăng: 23/10/2014, 09:30

HÌNH ẢNH LIÊN QUAN

Hình 1.2.1.1-1: Kiến trúc kho dữ liệu dạng DDS đơn - tổng hợp kho cơ sở dữ liệu
Hình 1.2.1.1 1: Kiến trúc kho dữ liệu dạng DDS đơn (Trang 5)
Hình 1.2.1.2-1: Kiến trúc kho dữ liệu dạng NDS+DDS - tổng hợp kho cơ sở dữ liệu
Hình 1.2.1.2 1: Kiến trúc kho dữ liệu dạng NDS+DDS (Trang 7)
Hình 1.2.1.3-1: Kiến trúc kho dữ liệu dạng ODS+DDS - tổng hợp kho cơ sở dữ liệu
Hình 1.2.1.3 1: Kiến trúc kho dữ liệu dạng ODS+DDS (Trang 8)
Hình 1.2.2-1: Vùng xử lí Thông thường, trong tất cả các kiến trúc kho dữ liệu, luôn có một vùng chứa dữ liệu gọi là vùng xử lí - tổng hợp kho cơ sở dữ liệu
Hình 1.2.2 1: Vùng xử lí Thông thường, trong tất cả các kiến trúc kho dữ liệu, luôn có một vùng chứa dữ liệu gọi là vùng xử lí (Trang 9)
Hình 1.2.3-1: Cơ sở dữ liệu chuẩn hoá. - tổng hợp kho cơ sở dữ liệu
Hình 1.2.3 1: Cơ sở dữ liệu chuẩn hoá (Trang 10)
Hình 2.2-1: Lược đồ hình sao. - tổng hợp kho cơ sở dữ liệu
Hình 2.2 1: Lược đồ hình sao (Trang 18)
Hình 2.2.1-1: Ví dụ lược đồ hình sao - tổng hợp kho cơ sở dữ liệu
Hình 2.2.1 1: Ví dụ lược đồ hình sao (Trang 19)
Hình 2.4-1: Ma trận kiến trúc buýt Bảng trên đây mô tả mối liên hệ giữa các nghiệp vụ: - tổng hợp kho cơ sở dữ liệu
Hình 2.4 1: Ma trận kiến trúc buýt Bảng trên đây mô tả mối liên hệ giữa các nghiệp vụ: (Trang 20)
Hình 2.2.2-1: Cấu trúc lược đồ hình sao - tổng hợp kho cơ sở dữ liệu
Hình 2.2.2 1: Cấu trúc lược đồ hình sao (Trang 20)
Sơ đồ mô tả việc kiểm tra dữ liệu qua các screen: - tổng hợp kho cơ sở dữ liệu
Sơ đồ m ô tả việc kiểm tra dữ liệu qua các screen: (Trang 30)
Hình 5.3.1.1-1. Vùng xử lí cho dữ liệu nạp từ Moodle - tổng hợp kho cơ sở dữ liệu
Hình 5.3.1.1 1. Vùng xử lí cho dữ liệu nạp từ Moodle (Trang 55)
Hình 5.3.1.3-1. Cấu trúc tập tin chứa thông tin các học kì, năm học - tổng hợp kho cơ sở dữ liệu
Hình 5.3.1.3 1. Cấu trúc tập tin chứa thông tin các học kì, năm học (Trang 56)
Hình 5.3.1.2-1. Cấu trúc tập tin chứa kết quả học tập - tổng hợp kho cơ sở dữ liệu
Hình 5.3.1.2 1. Cấu trúc tập tin chứa kết quả học tập (Trang 56)
Hình 5.3.3.1-1. Cây phân cấp không giới hạn độ sâu. - tổng hợp kho cơ sở dữ liệu
Hình 5.3.3.1 1. Cây phân cấp không giới hạn độ sâu (Trang 63)
Hình 5.4.1-1. Giai đoạn rút trích dữ liệu cho vùng xử lí. - tổng hợp kho cơ sở dữ liệu
Hình 5.4.1 1. Giai đoạn rút trích dữ liệu cho vùng xử lí (Trang 69)
Hình 5.4.2.1-Giai đoạn biến đổi dữ liệu đưa vào vùng CSDL chuẩn hoá - tổng hợp kho cơ sở dữ liệu
Hình 5.4.2.1 Giai đoạn biến đổi dữ liệu đưa vào vùng CSDL chuẩn hoá (Trang 70)
Hình 5.4.1-2. Quá trình rút trích dữ liệu - tổng hợp kho cơ sở dữ liệu
Hình 5.4.1 2. Quá trình rút trích dữ liệu (Trang 70)
Hình 5.4.3-2. Các bước chính nạp dữ liệu vào kho dữ liệu - tổng hợp kho cơ sở dữ liệu
Hình 5.4.3 2. Các bước chính nạp dữ liệu vào kho dữ liệu (Trang 72)
Hình 5.4.3-3. Nạp các bảng chiều. - tổng hợp kho cơ sở dữ liệu
Hình 5.4.3 3. Nạp các bảng chiều (Trang 73)
Hình 5.4.3-4. Nạp các bảng dữ kiện. - tổng hợp kho cơ sở dữ liệu
Hình 5.4.3 4. Nạp các bảng dữ kiện (Trang 73)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w