Mục lục
|
Giới thiệu về kiểu báo cáo OLAP
OLAP là gì?
- OLAP được viết tắt bởi Online Analytical Processing.
- OLAP là một công nghệ được dùng để sắp xếp cơ sở dữ liệu công việc lớn và hỗ trợ nghiệp vụ thông minh.
- Cơ sở dữ liệu OLAP được chia thành một hoặc nhiều khối và mỗi khối được tổ chức và được thiết kế khối người quản trị cho phù hợp với cách bạn truy xuất và phân tích dữ liệu sao cho nó dễ dàng hơn để tạo.
- Cung cấp cho người dùng 1 cái nhìn trực quan về dữ liệu qua đó đem ra những so sánh ,hướng giải quyết tốt cho vấn đề cần nhận định.
- Báo cáo olap cũng có thể được áp dụng để đưa ra trang dashboard.
Minh họa
Code file minh họa
rpt_login.dic
code file rpt_login.dic
View==/olap/olap.jsp
Logic
FirstFocus==LOG_DATE
Field
DateRange==LOG_DATE
Value==l7d
TimePicker==true
Format==dd/MM/yyyy HH:mm:ss
Trim
LiveValidation
Presence
Submit==GEN_HTML
Layout==Simple
Panel
Layout==Simple
Control==LOG_DATE
Control==GEN_HTML
Query
TableName==adm_module_log aml, adm_module am, adm_module amp, adm_user au
Dimension
LOG_DATE==trunc(aml.LOG_DATE)
Format==dd/MM/yyyy
PARENT_MODULE_NAME==amp.DESCRIPTION
USER_NAME==au.USER_NAME
ACTION_TYPE==aml.ACTION_TYPE
MappedValue==ACTION_TYPE_TABLE
Measure
CNT==1
AggregateFunction==SUM
Condition==aml.module_id=am.module_id and aml.user_id=au.user_id and am.parent_id=amp.module_id
aml.LOG_DATE==LOG_DATE_FROM
Format==aml.LOG_DATE >= TO_DATE(?,'DD/MM/YYYY HH24:MI:SS')
aml.LOG_DATE==LOG_DATE_TO
Format==aml.LOG_DATE <= TO_DATE(?,'DD/MM/YYYY HH24:MI:SS')
PostStatement==ORDER BY 1,5 desc
ReportOptions=:
:{
breakIndex:2
:}
rpt_loginVN.dic
Code file rpt_loginVN.dic
#reference /resource/com/ftl/wak/LiveValidationVN.dic
#reference /resource/com/ftl/wak/CommonVN.dic
Title==Báo cáo thống kê lưu lượng truy cập
Caption==BÁO CÁO THỐNG KÊ LƯU LƯỢNG TRUY CẬP
LOG_DATE==Ngày truy cập
Total==Tổng ngày
PARENT_MODULE_NAME==Nhóm chức năng
Total==Tổng nhóm chức năng
MODULE_NAME==Chức năng
Total==Tổng chức năng
USER_NAME==Người truy cập
Total==Tổng người truy cập
ACTION_TYPE==Tác động
Total==Tổng tác động
ACTION_TYPE_TABLE
S==Xem
I==Thêm
U==Sửa
D==Xóa
E==Thực hiện
CNT==Số lần
Excel
Header=:
:{
<tr>
<td colspan="3">Chúc các bạn một ngày tốt lành</td>
</tr>
<tr></tr><tr></tr>
:}
Footer=:
:{
<tr></tr><tr></tr>
<tr>
<td colspan="3"></td><td colspan="3">Hà nội ngày tháng năm</td>
</tr>
:}
Hình ảnh minh họa
Giao diện list báo cáo.
Biểu đồ hình tròn
Biểu đồ đường
Biểu đồ hình cột dọc
Biểu đồ hình cột nằm ngang
Biểu đồ vùng
Quy trình làm 1 báo cáo OLAP.
Viết câu lệnh sql.
- Mọi báo cáo đều phải bắt đầu từ việc viết câu lệnh SQL.Như ở báo cáo này thì câu lệnh SQL sau sẽ được sử dụng:
SELECT TRUNC(aml.LOG_DATE), amp.DESCRIPTION, au.USER_NAME, aml.ACTION_TYPE, 1, grouping(TRUNC(aml.LOG_DATE)), grouping(amp.DESCRIPTION), grouping(au.USER_NAME), grouping(aml.ACTION_TYPE) FROM adm_module_log aml, adm_module am, adm_module amp, adm_user au WHERE aml.module_id=am.module_id AND aml.user_id =au.user_id AND am.parent_id =amp.module_id GROUP BY cube(TRUNC(aml.LOG_DATE),amp.DESCRIPTION,au.USER_NAME,aml.ACTION_TYPE) ORDER BY 1,5 DESC
Áp dụng theo báo cáo OLAP
Include OLAP
- Sử dụng :
View==/olap/olap.jsp
chèn vào vị trí đầu trang.
- Các thư mục chứa code OLAP gồm có
- Thư mục : web/olap
- Class OlapHelper.java thuộc package com.ftl.wak.mgr trong gói flt_wak_1.0.
Khai báo các Dimension
- Dimension được hiểu là chiều dữ liệu,thay thế khai báo các cột được group by trong FieldList.Đây cũng chính là các trường dữ liệu được bạn SELECT ra trong câu lệnh SQL.
SQL
SELECT TRUNC(aml.LOG_DATE), amp.DESCRIPTION, au.USER_NAME, aml.ACTION_TYPE,
Khai báo Dimension trong báo cáo OLAP
Dimension
LOG_DATE==trunc(aml.LOG_DATE)
Format==dd/MM/yyyy
PARENT_MODULE_NAME==amp.DESCRIPTION
USER_NAME==au.USER_NAME
ACTION_TYPE==aml.ACTION_TYPE
MappedValue==ACTION_TYPE_TABLE
Sử dụng drill-down
USER_NAME
Level
USER_NAME==au.USER_NAME
ACTION_TYPE==aml.ACTION_TYPE
MappedValue==ACTION_TYPE_TABLE
Bạn cũng có thể sử dụng node Level để biến giao diện theo kiểu drill-down
Khai báo Measure
- Measure là giá trị đo lường,thường là giá trị số,là kết quả group by theo dimension được khai báo bên trên.
- Ở báo cáo này thì giá trị đo lường được tính là tổng số lần với việc sử dụng hàm SUM:
Measure
CNT==1
AggregateFunction==SUM
Ngoài SUM ra ta cũng có thể dùng 1 trong số các hàm sau đây
- COUNT : Đếm
- MIN : Lấy ra giá trị nhỏ nhất
- MAX : Lấy ra giá trị lớn nhất
- DISTINCTCOUNT : Đếm không lặp lại các giá trị con
-Ngoài các hàm trên,ta còn có thể xem chi tiết hơn về Mearsure tại đây
Group by cube
-Với những báo cáo thông thường,việc viết group by cube phải viết 1 cách tường minh :
PostStatement==GROUP BY cube(TRUNC(aml.LOG_DATE),amp.DESCRIPTION,au.USER_NAME,aml.ACTION_TYPE) ORDER BY 1,5 DESC
thì đối với OLAP thì ta không cần,chỉ cần khai báo như sau:
PostStatement==ORDER BY 1,5 DESC
Node ChartScript
- Ví dụ :
ChartScript=:
:{
if(chartOptions.xAxis == null)
chartOptions.xAxis = {};
chartOptions.xAxis.reversed = true;
:}
Trong đó
- chartOptions.xAxis.reversed = true; được định nghĩa để order lại ngay tháng theo thứ tự ngược lại.
Node ChartOptions
- Ví dụ:
ChartOptions=:
:{
yAxis: {
labels: {//chinh sua unit cho bao cáo olap
formatter: function() {
return 'Bps';
}
},
},
plotOptions:{
series:{ //dừng tính năng ấn vào số liệu trên báo cáo
point:{
events:{
click:function(){
preventDefault();
}
}
}
}
}
:}
Trong đó
- labels: Chỉnh sửa unit cho báo cáo OLAP
- series: Dừng tính năng ấn vào số liệu trên báo cáo
Node ReportOptions
- Là tùy chọn do WAK bổ sung,khai báo layout,format mặc định khi hiển thị biểu đồ.
- Ví dụ
ReportOptions=:
:{
render:"lineChart",
pieSerieIndex: 0,
breakIndex:1
:}
Trong đó:
- render: Mặc định biểu đồ ở dạng nào
- pieSerieIndex :mặc định mearsure nào (index)
- breakIndex :mặc định break nào (index)
Ngoài các node trên, có thể tham khảo các cấu trúc khác ở đây
Hình ảnh nên cho về cùng 1 size
Nếu bài wiki nào đang trong giai đoạn biên soạn thì nên có tiền tố hoặc hậu tố để người đọc đỡ mất công click xem bài.
Online Analytical Processing (, OLAP) là gì? Xử lý phân tích (OLAP) trực tuyến cơ sở dữ liệu giúp dễ dàng truy vấn nghiệp vụ thông minh
Thống nhất viết hoa thường "olap", chuẩn thì phải viết hoa các từ viết tắt. olap => OLAP.
Dear team.
Có thể thêm cho t một số thông tin ví dụ như file nào xử lý để dựng lên được báo cáo không. Ví dụ hỏi TruongNV1 thì biết là tất cả config ở trong thư mục web/olap.
Vừa copy copy về báo cáo của mình thì nó trắng xóa, đọc log cũng trắng xóa. Méo biết làm gì thêm.
Thanks,
Chèn ở đầu trang, không thuộc node Logic.
Có phải ý tác giả là xuống dòng ở câu này?
Nhiều lỗi chính tả quá, cố bỏ qua để đọc hết bài này.
Paste log lỗi lên đây xem
request-update-doc
dear team,
bài viết về olap mình thấy còn vấn đề sau:
- thiếu Node:
- Chưa có defind node ReportOptions.
- các tham số trong report
gợi ý:
Thêm mục đích của các biểu đồ. ý nghĩa các biểu đồ.
Có option nào bỏ bớt các biểu đồ không.
-> thêm các môt tả.