Data warehouse Design

1. Các khái niệm cơ bản

1.1. Định nghĩa Data Warehouse

Data warehouse là một loại data management system được design để có thể hỗ trợ các hoạt động Business intelligence , đặc biệt là analytics. Các data warehouses chỉ nhằm mục địch thực hiện các truy vấn và phân tích. Khả năng phân tích của data warehouse cho phép các tổ chức thu được những business insights có giá trị từ dữ liệu của họ để cải thiện việc đưa ra quyết định

1.2. Định nghĩa Businness Intellgence

BI(Business Intelligence is a set of a processes, architectures, và technologies chuyển đồi dữ liệu thành các thông tin có ích chuyển hóa thành hoạt động business mang lại lợi ích.

2. Lợi ích của hệ thống Data Warehouse và Business Intelligence

Data warehouse mang lại nhiều lợi ích quan trọng:

  • Cung cấp thông tin business nâng cao
  • Tiết kiệm thời gian
  • Nâng cao chất lượng và sự nhất quán của dữ liệu
  • Cung cấp lợi thế cạnh tranh
  • Nâng cao trải nghiệm khách hàng

3. Kiến trúc của hệ thống Data Warehouse và Business Intelligence

3.1 Data source – Dữ liệu nguồn

Dữ liệu nguồn đồ vào DW có thể được chia thành 4 nhóm chính:

  • Production data : Các loại data này đền từ các hệ thống vận hành của doanh nghiệp.
  • Internal data : Trong mỗi tổ chức, khách hàng lưu giữ các báo cáo, progiles của customer, các giữ liệu nội bộ khác.
  • Archived data : Dữ liệu được lưu trữ định kì của hệ thống vận hành hiện tại
  • External data : Dữ liệu này là dữ liệu từ các external source được tạo ra bởi các bộ phận ngoài, các dữ liệu này có thể là các dữ liệu thống kế liên quan đến lĩnh vực doanh vực và hay được các giám đốc sử dụng. Dữ liệu nguồn có thể là bất cứ hệ quản trị cơ sở dữ liệu nào như MySQL, Oracle, MSSQL,...

3.2 Data Warehouse – Kho dữ liệu tập trung

Một DW như một kho dữ liệu trung tâm, nơi dữ liệu được lưu trữ từ một hoặc nhiều nguồn không đồng nhất. Hệ thống DW lưu trữ cả dữ liệu hiện tại và dữ liệu lịch sử. DW chỉ có thể đọc, không được sử dụng để ghi hay update thông thường. DW có những tính chất điển hình:

  • Subject-Orieted: Mục tiêu của kho dữ liệu nhằm mô hình hóa và phân tích dữ liệu. Vì thế dữ liệu trong data warehouse cung cấp cái nhìn ngắn gọn và đơn giản về một chủ đề cụ thể như customer, product, hay sale, inventory.

                                   Hình 1.1
  • Intergrated Hệ thống DW tích hợp dữ liệu từ nhiều nguồn dữ liệu như RDBMS, flat files... Vì thế DW đòi hỏi việc làm sạch và tích hợp trong suốt quá trình lưu trữ dữ liệu để đám bảo tính nhất quán giữa các nguồn dữ liệu khác nhau.

                                Hình 1.2
  • Time-Variant Dữ liệu lịch sử được giữ trong data warehouse. Dữ liệu lịch có thể được truy xuất từ 6 tháng, 12 tháng, thậm chí 36, 48 tháng trước.
  • Non-volatile: Một khi dữ liệu được đưa vào data warehouse, thì dữ liệu sẽ không được thay đổi.

				Hình 1.3

3.3 Tầng Business Intelligence(BI)

BI bao gồm một loạt các công cụ và ứng dụng và phương thức cho phép tổ chức thu thập thông tin từ hệ thống nội bộ và nguồn bên ngoài; chuẩn bị sẵn sàng chp việc phân tích, phát triển và chạy các truy vấn đối với dữ liệul tạo các báo cáo, bảng điều khiển và trực quan hóa dữ liệu

					Hình 1.4

4. Thiết kế conceptual hệ thống Data Warehouse

4.1. MultiDim model

Mô hình hóa Data warehouse là quá trình thiết kế các lược đồ thông tin chi tiết và tóm tắt của DW. Mục tiêu của mô hình hóa DW là phát triển một lược đồ mô tả thực tế mà DW cần hỗ trợ.

Hình 1.5  Phases in data warehouse design

Mô hình hóa conceptual DW đòi hỏi một mô hình rõ ràng. Vì thế trong hệ thống này, MultiDim model được sử dụng vì model này đủ mạnh để biểu diễn ở mức conceptual tất cả các yếu tố cần thiết trong kho dữ liệu và OLAP applications (dimensions, hierarchies, và facts với measures liên quan). 4.2. Key concepts in MultiDim model Các thành phần cơ bản trong mô hình MultiDim :

  • Schema : bao gồm một tập hợp các dimensions và một tập các facts
  • Dimension : bao gồm 1 level hoặc một hoặc nhiều phân cấp
  • Level : mức tương đương với một loại thực thể tỏng ER model.
  • Fact : liên quan đến một vài levels(ví dụ: Sales fact liên quan đến Employee, Customer, Order, Product và Time levels)
  • Hierarchy : bao gồm một số levels liên quan. Level thấp hơn được gọi là con, level cao hơn gọi là cha. ( ví dụ lelvel con Product liên quan đến lelvel cha là Category)

5. Thiết kế logical hệ thống Data Warehouse

5.1. Cách tiếp cận trong biểu diễn mô hình MultiDim

Dựa trên cách mà các data cube được lưu trữ, một vài cách tiếp cận phổ biển để implement một mô hình đa chiều, đó là:

  • Relational OLAP (ROLAP) : lưu trữ dữ liệu trong CSDL quan hệ, hỗ trợ các phần mở rộng cho SQL và các phương pháp truy cập đặc biệt để triển khai hiệu quả mô hình dữ liệu đa chiều và các hoạt động liên quan.
  • Multidimensional OLAP (MOLAP): lưu trữ dữ liệu trong cấu trúc dữ liệu đa chiều chuyện biệt( ví dụ arrays) và triển khai các hoạt động OLAP trên cấu trúc dữ liệu đó.
  • Hybrid OLAP ( HOLAP) : kết hợp cả 2 cách tiếp cận ROLAP và MOLAP Mỗi cách tiếp cận đều có những ưu, nhược điểm riêng. Tuy vào mục đích, yêu cầu mà lựa chọn phù hợp từng cách tiếp cận.

5.2. Thiết kế thành phần Data Warehouse

5.2.1. Các lược đồ CSDL trong Data Warehouse Biểu diễn dữ liệu quan hệ của mô hình đa chiều có thể dựa trên các lược đồ :

  • Star schema: 1 bảng fact trung tâm và 1 set các bảng dimensions.
  • Snowflake schema: tránh được sự dư thừa trong start schemas bằng cách normalize các bảng dimensions. Vì thế mà các bảng dimensions được biểu diễn bằng một vài bảng liên quan bằng các ràng buộc.
  • Starflake schema: kết hợp star và snowflake schema. Một vài abnrg dimensions sẽ được normailize, trong khi một số bảng khác thì không.
  • Constellation schema: có nhiều bảng fact cùng chia sẻ các bảng dimension tables.

Star schema

Là mô hình đơn giàn nhất được sử dụng trong DWH. Star 3w schema được sử dụng rộng rãi trong data marts.

Hình 1.6 Ví dụ của star schema

Với star schema,các bảng dimensions trong star schema thông thường không được chuẩn hóa. Vì thế mà có sự dư thừa dữ liệu. Tuy nhiên, điểm mạnh của star schema là tốc độ truy vấn.

Snowflake schema

Lược đồ snowflake tránh được sự dữ thừa dữ liệu của lược đồ star bằng cách chuẩn hóa các bảng dimension. Vì thế, một dimension được biểu diễn bằng một vài bảng liên quan bằng các ràng buộc toàn vẹn tham chiếu.

Hình 1.7 Ví dụ về snowflake schema

Việc chuẩn hóa các bang khiến việc maintain dễ dàng hơn và tối ưu được không gian lưu trữ, Tuy nhiên performance sẽ bị ảnh hưởng khi có nhiều phép join hơn khi thực hiện các truy vấn yêu cầu duyệt qua cây phân cấp.

Starflake schema Star schema là sự kết hợp giữa star và snowflake schemas. Một vài dimensions được chuẩn hóa, trong khi số khác lại không. Constellation schema Constellation schema có nhiều bảng fact chia sẻ các bảng dimensions.

Hình 1.x Ví dụ constellation chema

5.2.2. Thiết kế CSDL chủ đề (Data Mart)

Data Mart có thể được coi như một DW thu nhỏ, tập trung vào một khu vực chức năng duy nhất của một tổ chức. Dữ liệu trong data mart là tập hợp dữ liệu được lưu trữ trong DW. Data Mart được thiết kế để sử dụng cho một bộ phận, đơn vị, hoặc nhóm người dùng cụ thể( như Sales, Marketing, HR hoặc Finance..).
Một data mart có thể được tạo từ một data warehouse theo hướng tiếp cận top-down hoặc ngược lại được xây dựng từ data sources trước khi xây dựng DW. Có 3 loại data marts dựa trên mối quan hệ với DW và data sources được sử dụng để tạo ra hệ thống : dependent, independent, và hybrid.
Dependent Data Marts
Được tạo ra từ một enterprise DW đã tồn tại. Đây là cách tiếp cận top-down bằng việc lưu trữ tất cả dữ liệu business ở một vị trí trung tâm, sau đó trích xuất sau một phần dữ liệu được xác định rõ ràng để phân tích. Từ DW, một tập hợp dữ liệu cụ thể được tổng hợp, tái cấu trúc và load vào data mart. Nó có thể là một logical view hoặc tập con vật lý của DW • Logical view : một bảng/view virtual được tách biệt riêng về mặt logic, nhưng không về mặt vật lý khỏi kho dữ liệu • Physical subset : dữ liệu được trích xuất vào một cơ sở dữ liệu vật lý riêng biệt với DW

Independent Data Marts
Một independent Data Mart là một hệ thống độc lập, được tạo ra mà không sử dụng DW, tập trung vào 1 chủ đề hoặc một business function. Dữ liệu được extract từ internal hoặc external data source, hoặc cả hai, được xử lý, và load vào data mart repository. Xây dựng và phát triển independent data mart không khó. Chúng có lợi khi đạt dược các mục tiêu ngắn hạn nhưng có thể trở nên cồng kềnh khó quản lý khi nhu cầu kinh doanh mở rộng và trở nên phức tạp hơn.

Hybrid Data Marts
Kết hợp dữ liệu từ DW đã tồn tại và các hệ thống hoạt động khác.

Tương tự như DW, một data mart có thể được tổ chức bằng cách sử dụng star, snowflake, starflake, hoặc các lược đồ khác. Lợi ích của star schema đó là việc sử dụng ít phép join cũng như ít sự phụ thuộc giữa các bảng dimensions.

5.2.3. Thiết kế CSDL tích hợp(Enterprise Model-EM)

5.2.3.1 Hướng tiếp cận

Việc thiết kế CSDL tích hợp không phải là việc dễ dàng. Có 2 cách tiệp cận để xây dựng nên CSDL tích hợp

  • Top-down : Xây dựng DW từ rất nhiều data source, đòi hỏi có cái nhìn tổng quan cũng như hiểu biết về nghiệp vụ
  • Bottom-up : Lây data mart làm trung tâm, kết hợp các data mart lại để có DW. Việc xây dựng nên các data mart là nhanh, tuy nhiên việc kết hợp là không hề đơn giản.

Không có cách tiếp cận nào là tốt hơn cả, tùy vào quy mô, thời gian, nguồn lực của doanh nghiệp mà chọn cách tiếp cận phù hợp.

Top-down
Với cách tiếp cận này, mô hình CSDL được coi là mô hình có tính thích ứng mạnh nhất với sự thay đổi business. Đó là lí do mà các tổ chức lớn thích làm theo cách tiếp cận này Việc tạo ra data mart từ data warehouse rất dễ. Tuy nhiên, cost và time để desig và maintain rất cao, đây chính là điểm yếu với cách tiếp cận này.

Bottom-up
Với cách tiếp cận này, các report được tạo ra nhanh chóng. Cost và time để thiết kể mô hình là tương đối thấp.

5.2.3.2. Các loại Data Warehouse

Phụ thuộc vào nhiều yếu tố như lượng dữ liệu, độ phức tạp phân tích, vấn đề bảo mật hay ngân sách mà có những options khác nhau để thiết kế hệ thống

Traditional data warehouse
Yêu cầu cung cấp tài nguyên IT như máy chủ, phần mềm on-premise, một DW truyền thống được đặt tại chỗ để thu thập, lưu trữ, và phân tích dữ liệu.

Virtual data warehouse
Được sử dụng như là một sự thay thế cho DW cổ điển. Về cơ bản, là rất nhiều DB được connect ảo với nhau, vì thế mà có truy vấn như trên một hệ thống duy nhất.

Cloud data warehouse
Cloud DW là khái niệm mới và luôn thay đổi. Cloud DW có thể thu thập, lưu trữ và phân tích dữ liệu trong môi trường cloud mà không cần đầu từ vào phần cứng hoặc các nhân viên IT chuyên biệt. Cloud DW có thể được xây dựng để làm việc với dữ liệu rất lớn. Tuy nhiên mỗi DW được xây trên các nền tảng cloud khác nhau sẽ khác nhau như Google, Oracle, Microsoft..

Classic và Cloud DW Analysis

5.2.4. Thiết kế CSDL trung chuyển (Data Staging Area – DSA)

Kho dữ liệu trung chuyển là nơi dữ liệu sẽ được lưu trữ cũng như làm sạch và thực hiện các bược biến đổi trước khi đưa vào DW. Khu vực này được sử dụng để xử lý dữ liệu trong quá trình trích xuất, biến đổi và tải (ETL).

DSA được thiết kế bởi vì lợi ích mà nó mang lại. Động lực chính khi ta sử dụng DSA đó là tăng hiệu quả của quá trình xử lý ETL, đồng thời đám bảo tính toàn vẹn dữ liệu và hỗ trợ các hoạt động chất lượng dữ liệu. Các chức năng của DSA:

Consolidation
Một trong những chức năng chính của DSA đó là hợp nhất dữ liệu từ nhiều nguồn dữ liệu. Chức năng này của DSA hoạt động như một “bể” lớn trong đó dữ liệu từ nhiều hệ thống nguồn có thể đượcc tạm thời đặt để xử lý thêm.

Recoverability
Dữ liệu cần được phục hồi trong trường hợp bị hỏng. Vì vậy các bước ở DSA đóng vai trò là điểm khôi phục trong trường hợp dữ liệu bị hỏng trong các giai đoạn sau.

Backup
Backup cho phép lưu, nén và lưu trữ dữ liệu xuống cập CSDL.

Auditing
Dữ liệu trong DSA có thể làm quá trình đánh giá trở nên đơn gian hơn nhiều bằng cách so sánh các tệp đầu vào ban đầu( với các quy tắc chuyển đổi) với các dữ liệu đầu ra.

Data quality
Chất lượng dữ liệu đóng vai trò hết sức quan trọng trong DW. DSA là nơi mà dữ liệu sẽ được làm sạch, kiểm tra, hợp nhất trước khi đưa vào DW Điều này làm giảm đi rủi ro về mặt dữ liệu(một số trường dữ liệu unique bị trùng lặp, một số trường mandatory bị NULL ..)

Thông thường, DSA được thiết kế với 2 lớp đó là RAW và STAGE.

Khu vực RAW, là nới mà các dữ liệu nguồn đổ về. Dữ liệu ở đây thực hiện các bước làm sạch và chuyển hóa, sau đó được load vào khu vực STAGE.

Ở khu vực STAGING các bảng dữ liệu có thể được thêm mới, đây là các bảng chứa những dữ liệu được transform và tổng hợp.

5.2.5. Thiết kế tiến trình Thu thập, làm sạch và tích hợp dữ liệu(ETL)

Quá trình ETL dữ liệu cũng chính quá trình cơ bản và xuyên suốt từ khi DW được xây dựng. Quá trình ETL gồm 3 bước: Extract – Transform – Load.

5.2.5.1. Extract

Là hoạt động trích xuất dữ liệu từ hệ thống nguồn để sử dụng tiếp trong môi trường DW. Đây cũng là hoạt đọng đầu tiên trong quá trình ETL. Việc thiết kế và tạo quá trình trích xuất thường là một trong những tác vụ tiêu tốn nhiều thời gian. Hệ thống nguồn có thẻ rất phức tạp và không có nhiều tài liệu mô tả, chính vì thế việc xác định những dữ liệu gì là cần thiết để trích xuất là điều không hề dễ. Dữ liệu cần được trích xuất bình thường không chỉ một lần mà còn nhiều lần theo cách định kì để có thể cùng cấp tất cả dữ liệu đã thay đổi vào kho dữ liệu và giữ cho nó được cập nhật. Hệ thống nguồn nếu có thay đổi về mặt cấu trúc pahri đảm bảo được luồng dữ liệu và các dữ liệu cần lấy không được thay đổi.

Các phương pháp trích xuất phụ thuộc nhiều vào hệ thống nguồn cũng như nhu cầu trong môi trường kinh doanh. Phương pháp trích xuất có thể được chia thành loại :

  • Logical Extraction
  • Physical Extraction

Logical Extraction

Phương pháp này có 2 loại:

  • Full extraction
  • Incremental extraction

Full extraction

Dữ liệu được trích xuất hoàn toàn từ hệ thống nguồn. Bởi vì quá trình trích xuất này phản ảnh tất cả dữ liệu hiện có trên hệ thống nguồn, nên không cần theo dõi các thay đổi với nguồn dữ liệu ể từ lần trích xuất thành công cuối cùng.

Incremental extraction

Tại một thời điểm cụ thể, chỉ những dữ liệu có sự thay đổi kề từ một sự kiện được xác định rõ trong lịch sử mới được trích xuất. Sự kiện này có thể là lần cuối cùng dữ liệu được trích xuất hoặc một sự kiện kinh doanh phức tạp hơn. Thông thường các sự kiện này còn được gọi là giá trị watermark. Giá trị watermark có thể là timestamp hoặc có thể là id của thực thể. Incremental extraction đòi hỏi việc cần lưu lại các giá trị sự kiện sau khi dữ liệu được trích xuất.

Physical Extraction

Phụ thuộc vào cách chọn phương pháp trích xuất logical và các khả năng, hạn chế ở phái nguồn dữ liệu có thẻ được trích xuất vật lý bằng hai cơ chế là online và offline.

Online extraction

Dữ liệu được trích xuất trực tếp từ hệ thống nguồn. Quá trình trích xuất có thể trực tiếp kết nối đến hệ thống nguồn để tự truy cập các bảng ở hệ thống nguồn hoặc đến một hệ thống lưu trữ trung gian dữ liệu trung gian theo cách được cấu hình sẵn.

Offline extraction

Dữ liệu được trích xuất không trực tiếp từ hệ thống nguồn nhưng được xây dựng một cách rõ ràng nằm bên ngoài hệ thống nguồn. Dữ liệu đã có sẵn cấu trúc như : flat files, dump files

5.2.5.2. Loading and Transform

Từ góc độ kiến trúc, việc transform dữ liệu có thể được thực hiện theo các cách:

  • Multistage Data Transform in DW
  • Pipelined Data Transform in DW

Multistage Data Transform in DW

Hình 1.8 Multistage Data Transform

Dữ liệu được chuyển đổi qua nhiều bước. Một chiến lược thường được áp dụng đó là thực hiện mỗi chuyển đổi như một hoạt độnn SQL riêng biệt và tạo một bảng tạm thời riêng biệt. Các bảng new_table_step trên hình lưu trữ các kết quả tăng dần sau mỗi bước chuyển đổi. Chiến lược này giúp tạo ra các điểm checkpoint, khiến việc monitor và tải khởi đọng dễ dàng hơn. Tuy nhiên, một nhược điểm của chiến lược này là việc tốn thời gian và bộ nhớ. Có thể kết hợp nhiều việc chuyển đổi dữ liệu logic thành một câu lệnh SQL hoặc một SQL procedure. Việc này cung cấp hiệu suất tốt hơn so với việc thực hiện đơn lẻ, độc lập các bước. Nhưng nó cũng có thể gây ra những khó khăn trong việc khôi phục các phép biến đổi không thành công.

Pipelined Data Transform in DW

Hình 1.9 Pipelined Data Transform

Chiến lược này có thể hiểu là việc loading có thể diễn ra ngay trong khi loading. Điều này khiến quá trình ETL có được performance cao.

5.3. Thiết kế tầng khai thác và phân tích thông tin

5.3.1. Thiết kế CSDL đa chiều với OLAP

5.3.2. Thiết kế tầng khai thác và phân tích thông tin