3.1.1 Mô hình kiến trúc chung
3.1.2 Các loại kiểu dáng kiến trúc hệ thống trên thực tế
Hiện này trên thực tế có một số các kiểu dáng kiến trúc DWH được triển khai. Người ta vẫn đang tranh luận với nhau xem là kiểu dáng kiến trúc nào là tốt là tối ưu nhất. Bản thân Bill
Inmon và Ralph Kimball, hai nhà khoa học máy tính được coi những nhà tiên phong trong lĩnh vực nghiên cứu DWH cũng chưa thống nhất với nhau về việc này.
Theo kết quả khảo sát trên thị trường thì có thể phân chia thành 5 kiểu dáng kiến trúc DWH - Kiến trúc các trung tâm dữ liệu độc lập (independent data marts): Các trung tâm
dữ liệu độc lập với nhau. Ở kiến trúc này, các chiều và đại lượng đo lượng nằm gọn trong từng trung tâm một. Nhược điểm là chúng ko cung cấp một góc nhìn thống nhất, dữ liệu thống nhất qua các trung tâm.
- Kiến trúc bus trung tâm dữ liệu với các trung tâm dữ liệu theo chiều được liên kết với nhau (data mart bus architecture with linked dimesional Data marts): Các trung tâm dữ liệu được tổ chức sao cho có thể dùng chung các chiều. Số chiều dùng chung được tối đa hóa. Dữ liệu tổng hợp được duy trì qua nhiều trung tâm dữ liệu. Cuối cùng các trung tâm dữ liệu phối hợp với nhau tạo ra dữ liệu đa góc nhìn.
- Kiến trúc trục và tay quay (hub and spoke): Các trung tâm dữ liệu phụ thuộc được tạo ra từ DWH. Dữ liệu nguyên tố trong kho dữ liệu được lưu theo chuẩn 3. Trung tâm dữ liệu được tạo ra phục vụ cho các phòng ban,.. Chủ yếu các truy vấn sẽ làm việc trên các trung tâm dữ liệu này
- Kiến trúc kho dữ liệu tập trung (ko có các trung tâm dữ liệu phụ thuộc ): Giống kiến trúc trên ngoại trừ không có các trung tâm dữ liệu phụ thuộc. Kho dữ liệu bao gồm dữ liệu nguyên tố, các dữ liệu tổng hợp và các view chiều của dữ liệu
Theo một khảo sát thì tỷ lệ kiến trúc được áp dụng trong thực tế là
Kiến trúc Tỷ lệ
Trục tay quay (39 %
Kiến trúc bus trung tâm dữ liệu với các trung tâm dữ liệu theo chiều được liên kết với nhau
26%
Trung tâm dữ liệu độc lập 12%
Liên hợp các kho dữ liệu 4%
3.1.3 Những nhân tố dùng để lựa chọn kiến trúc
- Sự phụ thuộc thông tin lẫn nhau giữa các bộ phận trong tổ chức: Khi sự phụ thuộc là cao thì khả năng chia sẻ thống nhất, thông tin được tích hợp được coi trọng
- Nhu cầu thông tin của người quản lý cấp cao - Mật độ yêu cầu
- Tính tự nhiên của tác vụ người dùng cuối: Trong khi có những người dùng chỉ cần các phép truy vấn hay thủ tục được cấu trúc hóa thì những người khác lại có nhu cầu phân tích dữ liệu không theo một khuôn nào. Đòi hỏi kiến trúc hệ thống đáp ứng ngay những yêu cầu đa dạng này
Để mô tả một cách trực quan kiến trúc hệ thống, chúng ta sử dụng kiến trúc cụ thể như hình trên.
3.2 Một kiến trúc nhà kho dữ liệu cho tập đoàn Amadeus Entertainment [9] [9]
Amadeus Entertainment (http://amadeusentertainment.org/) là một nhà bán lẻ trong lĩnh vực giải trí trong đó bao gồm nhạc, phim và sách audio. Amadeus Entertainment có 8 kho điều hành trực tuyens tại Mỹ, Pháp, Đức , Anh, Tây Ban Nha , Úc , Nhật và Ấn độ. Chúng có 96 gian hàng offline tại các quốc gia này. Khách hàng có thể mua các sản phẩm của công ty này dưới dạng lẻ bài hát, sách audio, phim hoặc có thể đăng ký theo gói ( tải một số lượng nhất định các sản phẩm). Hon có thể nghe trực tuyến với giá giảm 1/10 với giá tải.
Công ty có bốn kênh phân phối: Internet, điện thoại di động, TV cáp và bưu điện. Có nhiều kiểu thanh toán như thẻ debit hàng năm hay hàng tháng. Công ty này đặt hàng hàng mẻ sản phẩm chẳng hạn 10,000 bài hát từ công ty ghi âm. Với việc nghe trực tuyến công ty trả cho nhà cung cấp dựa trên số lượng đã dùng (hóa đơn hàng tháng)
Công ty sử dụng WebTower9, một hẹ thống .Net phục vụ web động, thương mại multimedia, broadcasting xử lý đơn hàng và quản lý việc đăng ký. Hệ thống này chạy với hệ quản trị CSDL là Oracle. Back-end của hệ thống là hệ thống ERP Jupiter chay trên DB2. Đây là nơi mà sản phẩm, đầu tư và tìa chính được quản lý. CSDL Jupiter vào khoảng 800 GB với 250 bảng và view.
Các hoạt động kinh doanh trong các cửa hàng offline được quản lý bởi Jade, là hệ thống viết trên Java chạy trên Infomix. Bao gồm bán hàng, dịch vụ khách hàng và đăng ký. WebTower9 và Jade lấy dữ liệu sản phẩm và tài chính từ Jupiter nhưng dữ liệu bán hàng và khách hàng được giữ lại trên chúng.
Công ty sử dụng hệ thống SupplyNer để làm việc với các nhà cung cấp. Đây là một mạng chuẩn công nghiệp dựa trên web Service trong ngành công nghiệp giải trí trực tuyến bao gồm nhạc và phim. WebToweri và Jupiter được host từ trụ sở chính của công ty, Jadee được host tại trụ sở ở Ấn Đội ngũ kiến trúc IT đã quyết định chuẩn hóa lại nền tảng CSDL dựa trên MS SQL Server và dùng dịch vụ web làm nền tảng ứng dụng.
CHƢƠNG III: MÔ HÌNH DỮ LIỆU THEO CHIỀU 1 Mở đầu
Các nhà quản lý cấp cao có khuynh hướng suy nghĩ theo “nhiều chiều” (multidimensionally). Những thông tin họ mô tả về quá trình hoạt động của doanh nghiệp hay tổ chức thường có dạng như sau:
“Chúng tôi kinh doanh các sản phẩm trong nhiều thị trường khác nhau, và chúng tôi đánh giá hiệu quả thực hiện của chúng tôi qua thời gian”.
“Chúng tôi có nhiều gói dịch vụ viễn thông, sản lượng của từng gói trên từng lớp khách hàng (doanh nhân, sinh viên,…) theo thời gian như thế nào”
Với những phát biểu như thế, đội ngũ phát triển DWH sẽ gạch chân dưới những từ mang ý nghĩa chiều đo lường:
“Chúng tôi kinh doanh các sản phẩm trong nhiều thị trường khác nhau, và chúng tôi đánh giá hiệu quả thực hiện của chúng tôi qua thời gian”.
“Chúng tôi có nhiều gói dịch vụ viễn thông, sản lượng của từng gói trên từng lớp khách hàng (doanh nhân, sinh viên,…) theo thời gian như thế nào”
Ở đây chúng ta cũng có thể so sánh với quá trình phân tích thiết kế một hệ thống quản lý thông tin tác nghiệp. Khi lấy yêu cầu người sử dụng, đội ngũ tin học khoanh vùng các danh từ nhằm lấy ra các thực thể nghiệp vụ.
Giả sử chúng ta lấy những chiều quy chiếu cho hoạt động ở trên và ghép lại thành một hệ tọa độ. Hệ tọa độ này có thể là phẳng (2 chiều), không gian (3 chiều), hoặc tổng quát n – chiều. Một điểm trên không gian được xác định bằng các giá trị trên hệ quy chiếu này. Điểm trên không gian chính là kết quả hoạt động của đơn vị tại một bộ giá trị chiều cụ thể. Khi giới hạn các đoạn trên từng chiều quy chiếu thì chúng ta có được một khối dữ liệu (theo trực giác thông thường với 3 chiều quy chiếu chúng ta có khối lập phương)
Ví dụ với bài toán doanh nghiệp viễn thông như trên: có 3 chiều quy chiếu là chiều thời gian, chiều gói dịch vụ, chiều lớp đối tượng khách hàng. Mỗi một điểm trong không gian 3 chiều là kết quả kinh doanh tại thời điểm nào đó trên một lớp khách hàng của gói dịch vụ nào đó.
2 Các khái niệm
2.1 Sự kiện và bảng sự kiện
Sự kiện gần như là các hoạt động tác nghiệp của doanh nghiệp hay tổ chức. Không giống như bảng chiều, bảng sự kiện thường lưu thông tin về bản thân hoạt động tác nghiệp được thực thi. Bảng sự kiện bao gồm các đại lượng có thể đo lường, đơn vị đo lường trong hoạt động của doanh nghiệp. Mỗi DWH bao gồm một hoặc nhiều bảng sự kiện.
Mức độ đơn nguyên (giá trị đo lường nguyên tố) của bảng dữ liệu kiện mô tả cấp độ nhỏ nhất mà tại đó dữ kiện được định nghĩa. Đơn nguyên của một bảng sự kiện SALE có thể là số lượng bán hàng “Hàng ngày/1 Sản phẩm/1 Cửa hàng”. Mỗi bản ghi trong bảng này được xác định duy nhất bởi giá trị thuộc tính ngày nào, sản phẩm nào và cửa hàng nào. Các chiều khác có thể là các thành viên của bảng dữ liệu chẳng hạn như khu vực nhưng nó ko dùng để xác định duy nhất bản ghi. Các chiều mang tính chất phối hợp này thường cung cấp cấp độ cao cho các phép tính tổng hợp.
Tính chất quan trọng nhất của bảng sự kiện là nó chứa các dữ kiện kiểu số, có thể tính tổng hay theo một công thức toán học nào đó để cung cấp thông tin mang tính lịch sử về quá trình tác nghiệp của đơn vị. Mỗi bảng sự kiện chứa một chỉ mục nhiều phần, như các khóa ngoài, là các khóa chính tại các bảng chiều có liên quan và chứa các thuộc tính của những bản ghi sự việc.
Khi thiết kế DWH, trong các bảng sự kiện, ta nên tránh đưa vào các trường thông tin mang tính mô tả. Chúng không đóng vai trò gì trong môi trường DWH. Vì các mô tả này chỉ dùng cho từng tác vụ đơn lẻ, không có ý nghĩa với các phép thống kê trên mẻ dữ liệu.
Ví dụ: Bảng dữ kiện Bán hàng sẽ lưu các thông tin dạng như sau
Doanh số bán hàng tại kho Hà Nội trong ngày 15/1/2008 ;à $12,000
Doanh số bán hàng tại Hải Phòng trong ngày 15/1/2008 được $34,000
Hình 3.1: Một hình ảnh về chiều dữ liệu
Thời gian Lớp khách hàng
Doanh số bán hàng tại Hà Nội vào ngày 16/1/2008 là $22,000
Doanh số bán hàng tại TP HCM trong ngày 16/1/2008 là $40,000
Doanh số trung bình tại cửa hàng Hà Nội là $21,000
Doanh số trung bình tại cửa hàng TP HCM tháng 3 là là $65,000 Bảng sự kiện bán hàng hàng ngày Khóa ngày Khóa sản phẩm Khóa gian hàng Số lượng bán Doanh số
Tổng hợp bán hàng tháng là một số liệu đo lường cũng được lưu trữ tại bảng dữ kiện trên. Bảng dữ kiện chứa các khóa ngoài từ các bảng chiều: thời gian, người bán, sản phẩm,khu vực,..
2.2 Chiều và bảng chiều
2.2.1 Chiều
Chiều là một mặt khía cạnh nghiệp vụ mà đơn vị muốn dựa vào đó để xác định kết quả hoạt động. Chiều thường được xác định từ các thực thể kinh doanh có tác động đến kết quả. Sau một thời gian, có thể chiều này bị loại bỏ vì mức độ tác động đến sự thay đổi hầu như không có, chiều mới có thể được phát hiện và ghi nhận.
2.2.2 Bảng chiều
Một bảng chiều là bảng chứa các thuộc tính khác nhau có mục đích giải thích cho khóa chiều trong bảng dữ kiện. Các thuộc tính này chỉ ra hoàn cảnh của thực thể mà sự kiện nghiệp vụ diễn ra. Khác với bảng sự kiện, bảng chiều có chứa các thông tin có tính chất mô tả. Giá trị các thuộc tính ở bảng chiều về sau thường được sử dụng để làm nhãn cho cột hay hàng thống kê.
Ví dụ bảng chiều Sản phẩm
2.2.3 Phân loại chiều
Chiều được chia làm 2 loại là chiều phẳng hay chiều phân cấp
- Chiều phẳng: các giá trị cùng mức không có giá trị nào đóng vai trò cha con của giá trị khác
- Chiều phân cấp: Các bảng chiều thường mô tả quan hệ ông cha trong nghiệp vụ. Ví dụ trong bảng chiều sản phẩm, sản phảm có thể cuộn lên chi nhánh và cuộn thành nhóm. Với mỗi hàng trong bảng chiều sản phẩm, lưu chi nhánh và mô tả nhóm ứng với sản phẩm này. Ví dụ bảng chiều hàng hóa, mỗi hàng hóa cụ thể có thể là con của nhóm đồ uống có cồn, nhóm không cồn, nhóm hàng điện lạnh,….. Như vậy ở đây có dư thừa dữ liệu nhưng nó lại là cần thiết để đảm bảo hiệu năng truy vấn trên DWH.
all Europe North_America Mexico Canada Spain Germany Vancouver M. Wind L. Chan ... ... ... ... ... ... Tất cả Khu vực Văn phòng Quốc gia Toronto Frankfurt Thành phố Khóa sản phẩm Mô tả sản phẩm Số SKU Nhóm sản phẩm Kiểu gói Kích thước gói Trong lượng Chiều dài Chiều rộng Bảng chiều sản phẩm
Một ví dụ về chiều phân cấp (địa điểm) của một tập đoang đa quốc gia. Như ở trên chúng ta thấy chiều địa điểm có 4 cấp. Một dòng dữ liệu có đơn nguyên là địa chỉ cụ thể, có các trường thông tin tương ứng với các cấp độ.
Một chiều có thể có nhiều hệ phân cấp đi kèm với nó. Trong Oracle, thì nó không giới hạn số hệ phân cấp đi kèm với chiều. Ví dụ trong chiều địa lý nói trên ngoài cây phân cấp đã mô tả nó có thể còn được phân cấp theo tính chất khu vực chia theo tính chất địa lý (đồng bằng, miền núi, đảo,…).
Có 3 kiểu phân cấp:
- Phân cấp dựa trên giá trị (value - based): phù hợp với cấu trúc của đơn vị - Phân cấp cập độ ngắt quãng (skip level): Phù hợp với các môi trường bán lẻ - Phân cấp rời rạc (Ragged): Phù hợp với các môi trường dịch vụ tài chính
2.2.4 Thời gian và bảng chiều thời gian
Như chúng ta đã biết DWH được thiết kế và xây dựng nhằm đáp ứng thông tin hóa dữ liệu chỉ ra được các phân tích thống kê và xa hơn nữa là đưa ra được các quy luật nội tại. Phân tích, thống kê hay quy luật đều xuất hiện yếu tố thời gian. Một mặt yếu tố thời gian ảnh hưởng lớn tới kết quả hoạt động, một mặt chúng dùng để gom nhóm tạo ra kết quả phục vụ cho các báo cáo kinh doanh.
Cũng như các bảng chiều khác, dữ liệu trong bảng thời gian thường chấp nhận dư thừa, nhằm đáp ứng nhanh chóng các yêu cầu với sự thay đổi khác nhau của yếu tố thời gian. Với mỗi đặc thù đơn vị, cấu trúc của bảng dữ liệu chiều thời gian được tạo ra cho phù hợp.
Ở đây chúng ta đề cập đến bảng thời gian nhưng hầu hết các bảng chiều thời gian trong thực tế có đơn nguyên là ngày tháng. Việc lưu đơn nguyên cấp độ nhỏ hơn ( như giờ hay phút) là rất hiếm gặp vì 2 lý do: do nhu cầu thống kê và do số lượng dữ liệu cần lưu ở các bảng sự kiện có quan hệ là quá lớn.
Bạn có thể bắt gặp trong bảng chiều thời gian các trường thông tin thể hiện thứ tự ngày trong tuần, cột tháng, cột năm, cột thể hiện có phải là ngày nghỉ hay không. Điều này không mấy khi gặp trong các hệ thống tác nghiệp, vì giá trị các trường này đều có thể dùng ngôn ngữ lập trình nào đó tính ra được từ giá trị ngày tháng. Ở đây cũng là một dạng dư thừa dữ liệu. Mục đích của dư thừa dữ liệu này là ưu tiên tối đa cho tốc độ phản hồi truy vấn thống kê. Hơn nữa
số lượng dư thừa này là không đáng kể so với số lượng dữ liệu có chứa trong các bảng sự kiện.
Chiều Thời gian có thể được mô tả bởi các thuộc tính như Năm, Quý, Tháng và Ngày. Mặt khác, các thuộc tính của một chiều có thể được tổ chức vào một lưới mà chỉ ra một phần trật tự của chiều. Vì thế, cũng với chiều Thời gian có thể được tổ chức thành Năm, Quý, Tháng, Tuần và Ngày. Với sự sắp xếp này, chiều Thời gian không còn phân cấp vì có những tuần trong năm có thể thuộc về nhiều tháng khác nhau.
2.2.5 Khối dữ liệu (cube)
Như đã nói ở trên, hệ tọa độ được xây dựng bởi các chiều quy chiếu. Mỗi điểm trong không gian này là kết quả hoạt động nào đó của doanh nghiệp, kết quả này được xác định từ một tập giá trị trên các chiều. Khi giới hạn các chiều chúng ta có khối dữ liệu
Một khối dữ liệu về cơ bản là có thể có N chiều (N-D). Những cạnh của khối được gọi là cácchiều (dimensions), mà đó là các mặt hoặc các thực thể ứng với những khía cạnh mà tổ