Online Analytics

Định nghĩa:

Hệ thống phân tích dữ liệu online (Online Analytical Processing – OLAP) là một nhánh của hệ thống nghiệp vụ thông minh (Business Intelligence) trong ngành Khai phá dữ liệu (Data Mining). Mục đích của các hệ thống OLAP là hỗ trợ người dùng phân tích dữ liệu trong hệ thống, từ đó đưa ra các báo cáo (report) và các kết quả phân tích dữ liệu theo thời gian. Từ các hỗ trợ này, người dùng (thường là các nhà đầu tư, doanh nghiệp) có thể có các thông tin tham khảo hữu ích cũng như có cái nhìn đa chiều vào các mặt của doanh nghiệp, sản phẩm, chương trình marketing, hệ thống nhân sự của mình để từ đó có các quyết định đúng và chính xác nhất.

Hệ thống OLAP với khả năng hỗ trợ quyết định tốt của mình đang phát triển ngày càng mạnh mẽ và dần trở thành xu hướng công nghệ mới mà mọi lập trình viên cần tìm hiểu.

Đặc điểm của một hệ thống OLAP khác biệt với các hệ thống giao dịch hàng ngày (Operational System) là:

  1. Cơ sở dữ liệu thường rất lớn với khả năng lưu trữ sự thay đổi theo thời gian (Historical Database) của các đối tượng.
  2. Cung cấp nhiều bảng dữ liệu, biểu đồ và chức năng lọc (filter) đa điều kiện.
  3. Cung cấp nhiều số liệu thống kê, phân tích nghiệp vụ.
  4. Nguồn dữ liệu lớn, tới từ nhiều nơi và cần thiết lập hệ thống cung cấp dữ liệu ETL (Extract Transform Load) phục vụ cho kho dữ liệu (Data Warehouse).

Một biểu đồ mẫu tạo ra từ hệ thống OLAP:

OLAP chart

 

Vậy, làm thế nào để tạo ra những sự khác biệt trên?

Vấn đề 1: thiết lập cơ sở dữ liệu lớn với khả năng lưu lịch sử dữ liệu

Hệ cơ sở dữ liệu đáp ứng yêu cầu phân tích của một hệ thống BI nói chung (còn bao gồm cả hệ thống phân tích dự đoán – Predictive Analysis) và OLAP nói riêng được gọi với thuật ngữ kho dữ liệu (Data Warehouse).

Trong Data Warehouse, dữ liệu được lưu trữ với mục đích tối ưu hiệu suất và tính dễ hiểu khi truy suất dữ liệu nên nguyên lý thiết kế hoàn toàn khác với cơ sở dữ liệu của các hệ thống giao dịch thông thường (tối ưu tính nhất quán của dữ liệu, giảm thiểu sự dư thừa để luôn sẵn sàng đáp ứng các lệnh giao dịch của hệ thống). Các mô hình thông dụng với Data Warehouse áp dụng cho hệ thống OLAP là Star Schema và Snowflake Schema.

Stars Schema

Trong mô hình ngôi sao, một thực thể chính được gọi là bảng Sự Thật (Fact), các thông tin thuộc các trường dữ liệu được tách ra thành các bảng Chiều (Dimension). Như vậy, một sự thật sẽ bao gồm nhiều chiều, nhiều khía cạnh. Mỗi chiều, khía cạnh sẽ có nhiều thuộc tính nhỏ liên quan. Điều này cho phép hệ thống OLAP dễ dàng truy vấn dữ liệu theo một khía cạnh nào đó như việc phân tích vấn đề doanh thu của một sản phẩm mới song song với phân tích vấn đề nhân lực, hiệu quả marketing của chính sản phẩm đó ở các biểu đồ khác nhau. Mỗi biểu đồ cho từng khía cạnh đó sẽ dùng một bảng Fact được tách ra từ bảng Fact chính với sự giảm thiểu thông tin không liên quan và bổ sung các thông tin phân tích, tổng hợp được gọi là Data Mart. Mục đích của các Data Mart là đáp ứng một nhu cầu cụ thể với hiệu suất cao nhất. Tất cả các bảng Fact trên còn được gọi là các khối lập phương OLAP (OLAP cubes) bởi tính đa chiều của nó (Data Mart vẫn có thể có nhiều chiều, chỉ ít hơn bảng raw Fact trong Data Warehouse thôi).

OLAP cube

Vấn đề 2 và 3: cung cấp nhiều công cụ và số liệu phân tích

Với sự hỗ trợ từ thiết kế Data Warehouse, các OLAP cubes, việc cung cấp các công cụ filter trở nên đơn giản và dễ dàng hơn khi các khía cạnh đã được tách ra thành các bảng Dimension. Tuy nhiên, một kho dữ liệu của hệ thống OLAP thường là rất lớn và có nhiều yêu cầu phân tích phức tạp nên cần có sự trợ giúp của các công nghệ Big Data đi kèm như

  • Hệ cơ sở dữ liệu NoSQL
  • Kỹ thuật map-reduce
  • Hệ thống Hadoop hỗ trợ xử lí dữ liệu phân tán

Vấn đề 4: thiết lập hệ thống cung cấp dữ liệu ETL cho kho dữ liệu

Một hệ thống như vậy gồm 3 bước:

  1. Extract: tìm kiếm và lưu trữ dữ liệu thô từ các nguồn vào những bảng tạm (tham khảo: thu thập dữ liệu tự động)
  2. Transform: bước này được thực hiện xen kẽ trong cả Extract và Load, bao gồm các công việc xử lý dữ liệu xấu, trùng lặp, tích hợp dữ liệu từ các nguồn hay phân chia một dữ liệu thành nhiều bảng con tuỳ theo thiết kế của hệ thống
  3. Load: từ bảng tạm lưu giữ các kết quả đã được xử lý vào các bảng Fact trong kho dữ liệu

Một hệ thống ETL tốt, ngoài các yêu cầu về dữ liệu còn cần cung cấp các khả năng sau:

  • Đảm bảo tính độc lập với hệ thống OLAP trong quá trình hoạt động
  • Có khả năng hoàn tác quá trình Load vào Data Warehouse khi có nhu cầu
  • Đảm bảo lưu trữ các thông tin hoạt động (log) đầy đủ và dễ hiểu

Sau đây là cái nhìn tổng quan về các thành phần của hệ thống OLAP:

OLAP elements and data flows