Bỏ qua, đến nội dung

Cài đặt và sử dụng — Data Visualization

Tổng quan

Plugin data-visualization cung cấp khả năng trực quan hóa dữ liệu từ các collection trong hệ thống. Hỗ trợ nhiều loại biểu đồ (bar, line, pie, area...) được render bằng G2Plot hoặc ECharts, tích hợp trực tiếp vào trang dưới dạng block.

Yêu cầu hệ thống

Thành phầnYêu cầu
Server DigiforcePhiên bản >= 1.0
DatabasePostgreSQL, MySQL, SQLite hoặc MariaDB
Plugin phụ thuộcplugin-acl (kiểm tra quyền), plugin-data-source-main

Bước 1: Kích hoạt plugin

  1. Truy cập Settings → Plugin Manager
  2. Tìm plugin-data-visualization
  3. Bật công tắc Enable
  4. Khởi động lại server nếu hệ thống yêu cầu

Khi kích hoạt, plugin đăng ký resource charts với action queryData — cho phép giao diện gửi truy vấn lấy dữ liệu biểu đồ.

Bước 2: Thêm biểu đồ vào trang

  1. Mở trang cần thêm biểu đồ (hoặc tạo trang mới)
  2. Nhấn Add block → Chart
  3. Hệ thống hiển thị Chart Block Designer — giao diện thiết kế biểu đồ

Bước 3: Cấu hình truy vấn dữ liệu

Trong Chart Block Designer, bạn cần cấu hình:

Chọn nguồn dữ liệu

TrườngMô tả
Data sourceChọn data source (mặc định: main)
CollectionChọn collection chứa dữ liệu

Cấu hình Measures (Số liệu)

Measures là các trường số liệu cần tổng hợp:

Thuộc tínhMô tảVí dụ
FieldTrường dữ liệuamount, quantity
AggregationHàm tổng hợpsum, count, avg, min, max
AliasTên hiển thịTổng doanh thu
DistinctĐếm/tổng hợp giá trị duy nhấttrue / false

Các hàm aggregation được hỗ trợ

sum — Tổng | count — Đếm | avg — Trung bình | min — Nhỏ nhất | max — Lớn nhất

Cấu hình Dimensions (Chiều phân tích)

Dimensions là các trường dùng để nhóm/phân loại dữ liệu:

Thuộc tínhMô tảVí dụ
FieldTrường phân nhómstatus, category, createdAt
FormatĐịnh dạng (cho date/time)YYYY-MM, YYYY-Q
AliasTên hiển thịTháng

Bộ lọc (Filter)

Thêm điều kiện lọc dữ liệu cho biểu đồ. Hỗ trợ đầy đủ các filter operator của Digiforce ($eq, $gt, $lt, $in, v.v.) và template variables (biến ngữ cảnh).

Sắp xếp (Order)

Thuộc tínhMô tả
FieldTrường sắp xếp
OrderASC (tăng dần) hoặc DESC (giảm dần)
Nullsfirst (giá trị null lên đầu) hoặc last (null xuống cuối)

Giới hạn (Limit)

Mặc định trả về tối đa 2000 bản ghi. Có thể điều chỉnh qua tham số limitoffset.

Bước 4: Chọn loại biểu đồ

Loại biểu đồMô tảPhù hợp cho
BarBiểu đồ cột dọc/ngangSo sánh giá trị giữa các nhóm
LineBiểu đồ đườngXu hướng theo thời gian
PieBiểu đồ trònTỷ lệ phần trăm
AreaBiểu đồ vùngXu hướng với tổng tích lũy
TableBảng thống kêDữ liệu chi tiết dạng bảng

Plugin hỗ trợ hai thư viện render:

  • G2Plot: Đơn giản, dễ sử dụng, phù hợp cho biểu đồ cơ bản
  • ECharts: Tùy biến cao, phù hợp cho biểu đồ phức tạp

Cơ chế Cache

Plugin tích hợp hệ thống cache để tối ưu hiệu năng:

Tham sốMô tảMặc định
enabledBật/tắt cache cho biểu đồfalse
ttlThời gian cache sống (giây)30

Khi cache được bật:

  • Kết quả query được lưu trong memory cache (tối đa 1000 entries)
  • Request trùng uid sẽ trả về kết quả từ cache
  • Nhấn Refresh trên biểu đồ để bỏ qua cache và query lại

Tạo Dashboard

Để tạo dashboard hoàn chỉnh:

  1. Tạo một trang mới (Add page)
  2. Thêm nhiều Chart block với các biểu đồ khác nhau
  3. Kết hợp với Filter block để lọc dữ liệu chung cho tất cả biểu đồ trên trang
  4. Sắp xếp bố cục bằng kéo thả

Hỗ trợ nhiều Database Dialect

Plugin có query parser riêng cho mỗi loại database:

DatabaseParserDate formattingĐặc biệt
PostgreSQLpostgresHỗ trợ đầy đủTO_CHAR, DATE_TRUNC
MySQLmysqlHỗ trợ đầy đủDATE_FORMAT
SQLitesqliteHạn chếstrftime
OracleoracleHỗ trợ đầy đủTO_CHAR, TRUNC

Kiểm tra quyền truy cập

Mỗi truy vấn biểu đồ đều được kiểm tra quyền qua plugin-acl:

  • User phải đăng nhập (loggedIn)
  • Quyền đọc trên collection được kiểm tra
  • Nếu không có quyền, trả về HTTP 403

Lưu ý

  • Đây là plugin cơ bản. Để có biểu đồ nâng cao (funnel, radar, heatmap, SQL mode), cài thêm plugin-data-visualization-pro
  • Mỗi biểu đồ kết nối đến một collection duy nhất
  • Hiệu năng phụ thuộc vào lượng dữ liệu và index trong database
  • Nên bật cache cho biểu đồ có lượng dữ liệu lớn và không yêu cầu real-time