Data Warehouse và Business Intelligence

1 post / 0 mới
tat1409
Offline
Truy cập lần cuối: 11 tháng 2 tuần trước
Tham gia: 16/05/2015 - 15:44
Data Warehouse và Business Intelligence

Data warehouse và BI là những khái niệm mặc dù đã có từ lâu nhưng chưa được ứng dụng rộng rãi ở Việt Nam vì giá thành và sự phức tạp của nó, cũng như số lượng các DN có quy mô dữ liệu bắt buộc phải sử dụng data warehouse và BI thực sự chưa nhiều. Theo hiểu biết cá nhân thì trong các trường đại học cũng chỉ mới bắt đầu đưa vào giảng dạy trong vài năm trở lại đây.
Để hiểu được những khái niệm (tạm gọi là cao cấp trong mảng database) này, đòi hỏi người triển khai phải có kiến thức và trải nghiệm thực tế trước khi làm quen và xây dựng những hệ thống như thế. Thông thường, các tài liệu viết về những khái niệm này khá trừu tượng, khó tiếp cận cho những người mới bắt đầu làm quen. Loạt bài viết này không có tham vọng gì lớn ngoài việc cùng trao đổi và chuyển tải một số hiểu biết về data warehouse và BI tới người đọc, đặc biệt những người mới làm quen với những khái niệm này.

Data warehouse là gì?

Data warehouse được sử dụng như là một nền tảng cho hệ thống hỗ trợ ra quyết định. Nó gắn liền với khái niệm Business Inteligence (Kinh doanh thông minh). Nó được dùng để giải quyết các vấn đề gặp phải khi một tổ chức cố gắng phân tích chiến lược từ số liệu trong một hệ thống database được dùng chung với hệ thống xử lý dữ liệu trực tuyến (Online Transaction Processing - OLTP).
Một hệ thống OLTP điển hình được đặc trưng bởi một hệ thống có nhiều người sử dụng đồng thời để thêm, sửa, xóa dữ liệu. Ví dụ như một hệ thống bán lẻ, có nhiều nhân viên bán hàng đồng thời cùng nhập và chỉnh sửa dữ liệu vào hệ thống. Trong một hệ thống nhỏ, việc sử dụng cùng một hệ thống database này cho mục đích lên báo cáo thống kê, phân tích có thể chấp nhận được do khối lượng dữ liệu ít, ít người dùng. Nhưng trong một hệ thống với khối lượng dữ liệu hàng chục triệu đến trăm triệu bản ghi trên một bảng thì việc khai thác dữ liệu chung trên cùng một hệ thống database OLTP là không thể chấp nhận được vì thời gian xử lý dữ liệu rất lâu, làm cho tài nguyên hệ thống trở nên quá tải và có thể làm cho toàn bộ hệ thống bị tê liệt.

Hệ thống OLTP được thiết kế cho mục đích thu thập dữ liệu, khối lượng dữ liệu càng càng càng lớn khiến cho nhu cầu phân tích càng trở nên cấp thiết hơn. Tuy nhiên database trong OLTP được thiết kế cho mục đích thu thập số liệu thường phải tối ưu hóa cả về không gian lưu trữ lẫn chuẩn hóa trong thiết kế tuân thủ nghiêm ngặt theo mô hình dữ liệu quan hệ. Còn khi nhu cầu phân tích, khai thác dữ liệu thông qua các báo cáo sẽ phát sinh hàng loạt các vấn đề:
- Người xây dựng báo cáo không hiểu mối quan hệ phức tạp giữa các bảng trong một loạt database của các ứng dụng khác nhau.
- Database của các ứng dụng có thể để rải rác trên nhiều server, rất khó cho việc tìm kiếm các bảng để xây dựng câu truy vấn.
- Việc phân quyền không cho phép người dùng có thể lấy dữ liệu chi tiết.
- DBA hạn chế việc chạy các câu query lớn nhằm ngăn chặn nguy cơ làm cho hệ thống bị tê liệt.

Bằng cách copy dữ liệu từ một hệ thống OLTP sang một máy chủ theo một lịch trình cho mục đích báo cáo, tổ chức có thể cải thiện thời gian phản hồi cho báo cáo và các câu truy vấn. Một database thiết kế trong hệ thống OLTP là không đủ linh hoạt cho một ứng dụng hỗ trợ ra quyết định, lý do chủ yếu do khối lượng dữ liệu quá lớn và sự phức tạp của các bảng trong các database có mô hình quan hệ.

Ví dụ: Một quản lý bán hàng muốn lên một báo cáo tổng hợp hàng bán trong tháng cho từng vùng miền khác nhau. Nếu lên dữ liệu từ cùng hệ thống OLTP thì mỗi lẫn chạy báo cáo thì hệ thống phải thực hiện lại một lần việc truy xuất và tổng hợp dữ liệu. Ngoài ra có thể dữ liệu lại được lưu trữ trên nhiều vùng địa lý, trên nhiều nguồn dữ liệu khác nhau (file excel, Oracle, SQL Server, ms access...). Điều này dẫn tới việc mức độ thỏa mãn nhu cầu tổng hợp và phân tích số liệu cho người dùng là rất thấp. Họ mong muốn có một hệ thống nhanh  chóng hơn.
Data warehouse và hệ thống phân tích dữ liệu trực tuyến (Online Analytical Processing - OLAP) cung cấp các giải pháp để giải quyết các vấn đề trên. Data warehouse cung cấp phương pháp tiếp cận lưu trữ số liệu từ các nguồn khác nhau (thường là từ nguồn OLTP) vào một kho lưu trữ duy nhất. Data warehouse cung cấp các lợi ích sau tới những người dùng phân tích số liệu:
- Dữ liệu được tổ chức để tạo thuận lợi cho các truy vấn phân tích chứ không phải cho việc xử lý các giao dịch.
- Sự khác biệt về cấu trúc dữ liệu được lưu trữ trên nhiều nguồn dữ liệu không đồng nhất sẽ được giải quyết.
- Những quy tắc thống nhất sẽ được áp dụng khi hợp nhất dữ liệu từ các hệ thống không đồng nhất sang data warehouse.
- Tính bảo mật và hiệu suất có thể được cải thiện mà không cần phải thực hiện bất kỳ sửa đổi nào trên hệ thống dữ liệu gốc.

Data marts
Thỉnh thoảng, một tổ chức duy trì những đơn vị lưu trữ dữ liệu nhỏ hơn và hướng theo chủ đề nào đó, gọi là data marts. Không như data warehouse gộp tất cả dữ liệu của tổ chức vào một chỗ, thì data marts gộp dữ liệu theo từng tập hợp dữ liệu nhỏ hơn cho từng nhóm người dùng, từng nhóm chức năng và chủ đề nào đó.

Cc917548.ware1(en-us,TechNet.10).gif

OLAP 
Trong khi Data warehouse hoặc data marts là nơi lưu trữ dữ liệu tập trung cho việc phân tích, thì OLAP là công nghệ cho phép các ứng dụng khách truy xuất dữ liệu từ đó một các hiệu quả. 
OLAP cung cấp những lợi ích sau cho những người dùng phân tích số liệu:
- Tổng hợp trước những dữ liệu được truy vấn thường xuyên, vd: doanh số theo tháng của từng mặt hàng, doanh số theo từng vùng địa lý... Từ đó cho phép thời gian phản hồi rất nhanh cho những câu truy vấn báo cáo phức tạp. Dữ liệu sẽ được tổng hợp trước trong quá trình ETL vào một table trong data warehouse, khi người dùng cần truy xuất dữ liệu cho báo cáo thì hệ thống không phải tính toán lại những số liệu này một lần nữa vì đã có sẵn.
- Cung cấp một mô hình dữ liệu đa chiều trực quan, từ đó làm cho việc truy vấn, điều hướng và khám phá dữ liệu trở nên đơn giản.
- Một công cụ cho việc tạo ra các khung nhìn dữ liệu dựa trên một tập hợp phong phú các hàm tính toán đặc biệt có sẵn.
- Công nghệ quản lý bảo mật, quản lý truy vấn khách/chủ và bộ nhớ đệm dữ liệu, và các phương tiện để tối ưu hóa hiệu suất của hệ thống dựa trên những nhu cầu của người dùng.

Thỉnh thoảng khái niệm data warehouse và OLAP được sử dụng thay thế cho nhau. Tuy nhiên, cần phải phân biệt sự khác nhau giữa chúng vì mỗi khái niệm đại diện cho một tập hợp công nghệ duy nhất, các vấn đề quản trị và các tác động khác nhau tới người dùng.

Các công cụ của SQL Server dùng cho Data Warehousing và OLAP

- Integration Services: là một công cụ cung cấp một tập hợp phong phú các thao tác dùng để xây dựng một data warehouse bắc cách xây dựng các package để thực hiện các thao tác ETL (Extract, Transform, Load) dữ liệu từ nhiều nguồn khác nhau vào data warehouse.
- Sau khi data warehouse được xây dựng, chúng ta sử dụng công cụ SQL Server Analysis Service được sử dụng để tạo ra một server OLAP mạnh mẽ nhằm cho mục đích chuyển dữ liệu sang lưu trữ dưới dạng khối, tăng khả năng phân tích dữ liệu được lưu trữ dưới nhiều định dạng khác nhau một các nhanh chóng.
 
Sơ đồ diễn giải một mô hình dữ liệu sử dụng data warehouse và các công cụ của SQL để thực hiện từng giai đoạn như trong hình sau:
 

Trong hệ thống vật lý, một data warehouse có thể là một database được thiết kế theo mô hình đặc biệt để có thể:
- Lưu trữ một khối lượng dữ liệu cực lớn từ nhiều nguồn database của các ứng dụng khác nhau (kế toán, phân phối, POS, CRM...). Toàn bộ dữ liệu của các nguồn này được trích xuất và chuyển đổi (Extract and Transform) sau đó được tải (Load) vào data warehouse.
- Vì khối lượng dữ liệu lớn nên đòi hỏi phải có tốc độ truy xuất và xử lý dữ liệu nhanh chóng.
- Có thể hỗ trợ dịch vụ Analysis Services (là dịch vụ sử dụng Data warehouse như là một nguồn dữ liệu, chuyển nó thành dạng khối dữ liệu, caching dữ liệu và báo cáo sẽ dễ dàng lấy từ nguồn này một cách nhanh chóng).

Theo http://sql-note.blogspot.com