CHƯƠNG 1. XÂY DỰNG DATA WAREHOUSE 1. Tìm hiểu Data Warehouse 1. Data warehouse là gì? Kho dữ liệu là một hệ thống quản lý dữ liệu lớn được thiết kế và xây dựng để hỗ trợ phân tích dữ liệu.
Kho dữ liệu là nơi tập trung và tổng hợp dữ liệu từ nhiều nguồn khác nhau theo thời gian như tiếp thị, dữ liệu từ các cửa hàng, ứng dụng hướng tới khách hàng,… 1. Nguyên lý hình thành Data warehouse Gồm các nguyên lí sau: Hướng chủ đề: đảm bảo dữ liệu được làm sạch để hữu ích cho quá trình phân tích. Tính toàn vẹn: đảm bảo tính thống nhất định dạng dữ liệu sau khi thu thập và tổng hợp dữ liệu từ các nguồn khác nhau. Tính bất biến: quá trình phân tích dữ liệu sẽ thay đổi theo thời gian, do đó dữ liệu phải được thống nhất theo thời gian để hạn chế tối đa sửa, xóa dữ liệu.
Giá trị lịch sử: nguồn dữ liệu được tổng hợp từ các thời điểm khác nhau của một thông tin. Các đặc điểm chính của Data Warehouse 1.1 Hướng chủ đề (subject – oriented) Hướng chủ đề trong kho dữ liệu là quá trình tổ chức và sắp xếp lại dữ liệu theo một chủ đề nhất định, loại bỏ những dữ liệu không hữu ích để phục vụ cho phân tích dữ liệu. Nhờ vậy, quá trình phân tích dữ liệu sẽ dễ dàng hơn và hiệu quả hơn. 3 KHÓA LUẬN TỐT NGHIỆP 1.2 Được tích hợp (integrated) Dữ liệu trong kho dữ liệu sau khi được thu thập và tổng hợp từ nhiều nguồn khác nhau cần được thống nhất về định dạng kiểu dữ liệu.
Điều này giúp cho việc phân tích dữ liệu hiệu quả.3 Có gán nhãn thời gian (time variant) Dữ liệu thay đổi liên tục suốt quá trình thu thập, chính vì vậy, việc gán nhãn từng mốc thời gian cho dữ liệu sẽ giúp chúng ta dễ dàng so sánh dữ liệu ở từng mốc thời gian khác nhau.4 Bất biến (non – volatile) Dữ liệu trong kho dữ liệu phục vụ cho việc phân tích và báo cáo nên cần phải đảm bảo tính ổn định, không được sửa hoặc xóa dữ liệu. Mô hình dữ liệu đa chiều Kho dữ liệu và các hệ thống OLAP được xây dựng dựa vào mô hình dữ liệu đa chiều(Hình 1. Mô hình này cho hiệu năng tốt trên những phép truy vấn phức tạp và giúp người dùng có thể nhìn dữ liệu theo chiều khía cạnh khác nhau. Mô hình này hiện thị dữ liệu dưới dạng không n-chiều, gọi là data cube hoặc hypercube.1: Mô hình dữ liệu đa chiều [2] Hin 4 KHÓA LUẬN TỐT NGHIỆP 1.
Cây phân cấp Mức độ chi tiết của các tiêu chí thể hiện cho người dùng được gọi là mức dữ liệu (data granularity), được quyết định bằng việc kết hợp các mức dữ liệu của từng cắt lớp. Để đúc rút ra tri thức từ dữ liệu, người dùng cần quan sát cube dưới nhiều mức chi tiết khác nhau. Tính chất cây phân cấp (hierarchie) của OLAP cho phép thực hiện điều này bằng cách định nghĩa ra một cấu trúc hình cây các mức độ chi tiết khác nhau của một cắt lớp. Với 2 mức độ liền nhau trong một cây, mức thấp hơn gọi là mức con (child level), mức cao hơn gọi là mức cha (parent level).
Lớp trên cùng cây phân cấp là mức “Tất cả” đại diện cho toàn bộ cây phân cấp, mức này có 1 giá trị duy nhất cũng là “Tất cả” dùng để lấy tiêu chí đã được tổng hợp đến mức cao nhất đại diện cho toàn bộ cây phân cấp (trong ví dụ này là lấy tổng doanh số bán hàng của tất cả các quốc gia theo hình 1.2: Mô hình cây phân cấp Hin 1. Kiến trúc kho dữ liệu Một hệ thống cơ sở dữ liệu gồm 3 thành phần chính sau(Tham khảo ở hình 1.3): Một bộ dụng cụ để thu thập dữ liệu từ hệ thống nghiệp vụ, chuẩn hóa chúng định dạng dữ liệu đa chiều, nạp vào kho dữ liệu(ETL- xử lý dữ liệu). Một cơ sở dữ liệu để làm kho dữ liệu để lưu trữ dữ liệu. 5 KHÓA LUẬN TỐT NGHIỆP Một loạt các công cụ khai thác dữ liệu từ kho dữ liệu như hệ thống OLTP, hệ thống báo cáo tĩnh.3: Mô hình kiến trúc kho dữ liệu [3] Hin 1.
Nguồn dữ liệu 6 KHÓA LUẬN TỐT NGHIỆP ̀ h 1.4 : Các nguồn dữ liệu data warehouse [4] Hin Data warehouse là kho dữ liệu thu thập đa nguồn dữ liệu(Hình 1.4) Vd: ERP,CRM, HR, EXEL,…. Tầng kho dữ liệu Tầng kho dữ liệu đứng ở trung tâm một hệ thống kho dữ liệu làm nhiệm vụ lưu trữ dữ liệu bao quanh tất cả các hoạt động nghiệp vụ, các phòng ban của doanh nghiệp. Kho dữ liệu thường bao gồm một hoặc nhiều phân khu dữ liệu (phân khu dữ liệu), với mỗi phân khu dữ liệu chính là kho dữ liệu thu nhỏ tập trung vào một nghiệp vụ nhất định nào đó của doanh nghiệp (ví dụ phân khu dữ liệu về bán hàng, phân khu dữ liệu về kho bãi, phân khu dữ liệu về nhân sự. Ngoài nhiệm vụ lưu trữ dữ liệu, tầng kho dữ liệu còn có một thành phần khác rất quan trọng gọi là siêu dữ liệu (metadata).
Siêu dữ liệu lại được chia làm 2 nhóm là nhóm siêu dữ liệu kỹ thuật và siêu dữ liệu nghiệp vụ. Siêu dữ liệu nghiệp vụ (business metadata) mô tả ý nghĩa dữ liệu, các luật và ràng buộc tác động lên dữ liệu. Siêu dữ liệu kỹ thuật (technical metadata) mô tả cách thức tổ chức, lưu trữ và điều khiển dữ liệu trong hệ thống máy tính. 7 KHÓA LUẬN TỐT NGHIỆP 1.
Tầng khai thác dữ liệu Tầng khai thác dữ liệu chứa các công cụ cho người dùng cuối khai thác, sử dụng các dữ liệu trong kho dữ liệu. Một số công cụ chính: Báo cáo OLAP (OLAP tool) là báo cáo động cho phép người dùng sử dụng các tính năng của OLAP để tạo báo cáo. Các truy vấn đột xuất này được gọi là truy vấn tuỳ biến (ad hoc query) vì hệ thống không hề được chuẩn bị trước cho thao tác của người dùng. Báo cáo OLAP được sử dụng khi người dùng muốn thông tin cắt lớp, chuyên sâu hoặc toàn cảnh đưa ra quyết định.
Hệ thống kho dữ liệu Một hệ thống kho dữ liệu bao gồm nhiều module khác nhau, mỗi module lại có công dụng, có cấu trúc, thiết kế khác nhau, sử dụng các công cụ, sản phẩm khác nhau để hoàn thành công việc của nó. Đứng riêng rẽ, các module này không phải là kho dữ liệu. Module xử lý dữ liệu dữ liệu, hay kho dữ liệu cũng quan trọng, nhưng ngoài ra còn nhiều module khác trong hệ thống. Tuỳ theo vai trò, vị trí mà mỗi người có một cách định nghĩa hệ thống kho dữ liệu khác nhau, nhưng cũng như thầy bói xem voi, một hệ thống kho dữ liệu thường được đánh giá sai thành các định nghĩa sau: Kho dữ liệu là một sản phẩm: Hệ thống kho dữ liệu bao gồm nhiều module thực hiện các công việc khác nhau, như module xử lý dữ liệu dữ liệu chuyển hoá dữ liệu, module kho dữ liệu lưu trữ dữ liệu, rồi các module dành cho khai thác, từng module lại độc lập tương đối so với các module khác.
Như vậy kho dữ liệu không chỉ đơn thuần là một sản phẩm, chủ quan nhất cũng phải đánh giá: nó là tập hợp nhiều sản phẩm khác nhau. Kho dữ liệu là một ngôn ngữ lập trình: Gồm nhiều công cụ khác nhau, một hệ thống kho dữ liệu chắc chắn cũng được xây dựng dựa vào nhiều ngôn ngữ máy khác nhau, tối thiểu là xây dựng bằng đoạn mã SQL và một ngôn ngữ lập trình đại trà nào đó (Java, C++, C#). Không thể học cách lập trình ra một hệ thống kho dữ liệu được. 8 KHÓA LUẬN TỐT NGHIỆP 1.
Tổ chức dữ liệu logic 1. Các loại lược đồ kho dữ liệu Star schema (Lược đồ hình sao): Gồm 1 bảng Fact (bảng sự kiện) nằm ở trung tâm và được bao quanh bởi những bảng Dimension (bảng chiều). Dữ liệu của lược đồ hình sao không được chuẩn hoá. Các câu hỏi nhằm vào bảng Fact và được cấu trúc bởi các bảng Dimension.
[5] Ưu điểm: Bảng Fact, Dimension được mô tả rõ ràng, dễ hiểu. Bảng Dim là bảng dữ liệu tĩnh, và bảng Fact là dữ liệu động được nạp bằng các thao tác. Khoá của Fact được tạo bởi khoá của các bảng Dim. Nghĩa là khoá chính của các bảng Dim chính là khoá của bảng Fact.
Nhược điểm: Dữ liệu không được chuẩn hoá. - Snow flake schema (Lược đồ bông tuyết): Là dạng mở rộng của lược đồ hình sao bằng các bổ sung các Dim. Bảng Fact như lược đồ hình sao, bảng Dim được chuẩn hoá. Các chiều được cấu trúc rõ ràng.
Bảng Dim được chia thành chiều chính hay chiều phụ. Ưu điểm: Số chiều được phân cấp thể hiện dạng chuẩn của bảng Dim. Nhược: Cấu trúc phi dạng chuẩn của lược đồ hình sao phù hợp hơn cho việc duyệt các chiều. - Starflake Schema (Lược đồ ánh sao): là sự kết hợp giữa lược đồ hình sao và lược đồ bông tuyết.
Một số dimension được chuẩn hoá, một số khác thì không. - Fact constellation schema (Lược đồ chòm sao): Dimension trong lược đồ được tách thành các Dimension độc lập dựa trên các cấp độ của hệ thống phân cấp. Bảng sự kiện Bảng sự kiện điển hình có hai kiểu cột, chúng chứa đựng những sự kiện số (thường gọi là thước đo), và chứa khóa của các bảng dimension. Bảng sự kiện chứa đựng những sự kiện mức chi tiết hoặc những sự kiện mà đã được tổng hợp lại.
Bảng sự kiện mà chứa sự kiện tổng hợp thường được gọi là những bảng tóm tắt. Bảng sự kiện thông thường chứa đựng những sự kiện với cùng mức của sự tổng hợp. Tuy 9 KHÓA LUẬN TỐT NGHIỆP nhiên hầu hết những sự kiện liên kết tất cả các chiều, nó có thể liên kết với 1 số chiều hoặc không liên kết. Bảng chiều Các chiều là cách mô tả chủng loại mà theo đó các dữ liệu số trong khối được phân chia để phân tích.
Khi xác định một chiều, chọn một hoặc nhiều cột của một trong các bảng liên kết (bảng chiều). Nếu ta chọn các cột phức tạp thì tất cả cần có quan hệ với nhau, chẳng hạn các giá trị của chúng có thể được tổ chức theo hệ thống phân cấp đơn. Để xác định hệ thống phân cấp, sắp xếp các cột từ chung nhất tới cụ thể nhất. Ví dụ: một chiều thời gian được tạo ra từ các cột năm, qúy, tháng, ngày.
Mỗi cột trong chiều góp phần vào một cấp độ cho chiều. Các cấp độ được sắp đặt theo nét riêng biệt và được tổ chức trong hệ thống cấp bậc mà nó thừa nhận các con đường hợp logic cho việc đào sâu.