Thứ Hai, 11 tháng 10, 2010

Các thành phần của Data Warehouse

Một hệ thống data warehouse về mặt lô gích được cho là có 4 thành phần

1. Nguồn dữ liệu (Operational Source Systems).
2. Khu vực xử lý (Staging Area).
3. Khu vực trình bày (Data Presentation Area).
4. Công cụ truy cập dữ liệu (Data Access Tools).

Các thành phần trên tương tác với nhau như sau:
- Data từ Nguồn dữ liệu được nạp vào Khu vực xử lý.
- Data đã qua xử lý được nạp từ Khu vực xử lý vào Khu vực trình bày.
- Công cụ truy cập dữ liệu do người dùng cuối thao tác sẽ làm việc trên dữ liệu trong Khu vực trình bày.

I. Nguồn dữ liệu:
Nói một cách đơn giản, đây là nơi mà data xuất phát và thường là cơ sở dữ liệu của một ứng dụng nào đó. Và khách quan mà nói, nguồn dữ liệu là một thành phần nằm ngoài data warehouse. Như đã trình bày trong phần trước, dữ liệu của một hệ thống data warehouse thường đến từ nhiều nguồn khác nhau. Ví dụ: trong cùng một tổ chức, có phòng ban nhập dữ liệu vào Access database, trong khi phòng ban khác lại dùng bảng biểu Excel. Thậm chí có nơi dữ liệu được xuất ra từ những mainframe server 50, 60 tuổi theo dạng csv file. Do tính chất đa dạng của nguồn dữ liệu, nên các phương pháp chuyển tải dữ liệu từ nhiều nguồn về cùng một chỗ khá phong phú. Tùy theo quy định riêng của từng tổ chức, bạn có thể được phép truy cập trực tiếp dữ liệu nguồn. Nhưng cũng có nơi dữ liệu chỉ được truy cập qua Email, FTP, File Sharing... Thậm chí bạn có thể phải tạo ra các modules riêng để truy cập Web Services để lấy dữ liệu về. Nói như vậy để thấy, làm data warehouse không chỉ đơn thuần là database mà đòi hỏi developer phải có kiến thức rộng và tổng hợp cũng như những kỹ năng lập trình ứng dụng khác.

Xác định được dữ liệu đến từ những nguồn nào là một phần quan trọng trong việc xây dựng kiến trúc cho hệ thống data warehouse (data warehouse architecture) và là một trong những bước đầu tiên của ETL process.

II. Khu vực xử lý (Data Staging Area):

Có thể hiểu đây là nơi các hoạt động xử lý data diễn ra. Khu vực xử lý vừa là một nơi lưu trữ dữ liệu vừa nơi diễn ra các quá trình chuyển đổi dữ liệu trước khi chúng được đưa sang Khu vực trình bày.

Lý do cho sự tồn tại của thành phần này trong một hệ thống data warehouse là bởi vì quá trình ETL khá phức tạp. Dữ liệu phải được làm sạch (cleanse), chuyển đổi (convert), chuẩn hóa (conform). Những công đoạn này nhìn chung đòi hỏi phải xây dựng các temp tables để chứa dữ liệu đang được xử lý và các control tables để chứa metadata về quá trình ETL.

Staging Area cũng là nơi mà dữ liệu nguồn được lưu trữ như một dạng backup storage. Do quá trình ETL hoàn toàn có khả năng gặp trục trặc giữa chừng trong khi đang nạp dữ liệu từ Khu vực xử lý sang Khu vực trình bày, nên dữ liệu nguồn cần phải được lưu trữ để lúc nào cũng có thể được sử dụng lại. Có người sẽ hỏi tạo sao không yêu cầu các nguồn dữ liệu cung cấp lại dữ liệu một lần nữa ? Việc này trên thực tế nhiều lúc hoàn toàn không khả thi.

Một ví dụ đơn giản như sau: Quá trình ETL chạy vào buổi tối sử dụng dữ liệu của ngày hôm đó. Vì một lý do nào đó, nó buộc phải dừng lại giữa chừng. Ngày hôm sau, ETL phải chạy lại trong chế độ recovery. Ngoài việc phải dọn dẹp sạch sẽ những gì đã được lưu trữ dở dang trong presentation area, ETL đòi hỏi phải có dữ liệu nguồn để bắt đầu lại từ đầu. Lúc này, do đã sang ngày mới nên dữ liệu trong các cơ sở dữ liệu nguồn hoàn toàn có khả năng đã bị thay đổi và mất đi giá trị nguyên thủy của ngày hôm qua. Nếu vẫn tiếp tục, ETL sẽ sử dụng các dữ liệu không đúng, và do vậy phá vỡ tính đúng đắn của cả hệ thống. Nếu như dữ liệu nguồn đã được lưu trữ trong staging area từ tối hôm trước, mọi việc trở nên đơn giản hơn nhiều mà vẫn đảm bảo được tính vẹn toàn của data warehouse.

Các công cụ ETL hiện đại trên thị trường hiện nay có khả năng xử lý tương đối tốt một lượng lớn những yêu cầu về cleansing & converting, lookup, aggregation.... Nhiều lúc nó khiến người dùng cảm thấy có thể nạp dữ liệu trực tiếp từ nguồn vào data warehouse database, bỏ qua staging area. Nhưng như đã trình bày ở trên, cách làm này tuy có thể tiết kiệm được thời gian và không gian nhưng không hề ổn định. Những người làm data warehouse lâu năm có một nguyên tắc vàng: "Luôn phải có staging area".

III. Khu vực trình bày
:

Đây chính là data warehouse database. Hiện tại, phần lớn các data warehouse database đều là relational database bởi đây là loại cơ sở dữ liệu thông dụng nhất hiện nay trên thị trường. Dữ liệu trong relational database được tổ chức theo dạng hình sao (star schema), về cơ bản tức là mô phỏng tính đa chiều trong relational database. Data warehouse database có thể được tổ chức dưới dạng cube, tức là đa chiều theo đúng nghĩa. Cho dù được lưu trữ theo kiểu gì, nguyên tắc thiết kế đa chiều là giống nhau giữa 2 loại database.

Do nhu cầu của BI ngày càng cao, trên thị trường hiện nay xuất hiện khá nhiều commercial & opensource databases dành riêng cho data warehouse. Đặc điểm của các database này là phải xử lý được một khối lượng lớn data và tốc độ nhanh.

IV. Công cụ truy cập:
Mặc dù không hoàn toàn chính xác, nhưng có thể hiểu đây là các công cụ để làm báo cáo (reporting). Ở mức thấp nhất, đó có thể là một công cụ soạn SQL đơn giản. Ở mức cao hơn, đó có thể là các bộ công cụ chuyên về báo cáo như Business Objects, Cognos, Oracle BI... Các công cụ phân tích (analytics) cũng ngày càng được sử dụng rộng rãi. Những commercial tool kể trên đều bao gồm các công cụ để tạo report một trực quan (bằng cách sinh ra các SQL) và các công cụ phân tích truy cập vào các OLAP databases (cube).

copy from fotech.org
Tác giả: Huy Nguyen

Không có nhận xét nào:

Đăng nhận xét