多维分析就是在原有一维、二维分析的基础上继续添加维度,已实现复杂的统计分析,以清晰直观的视角为决策服务的技术。
JAVA领域中也有很多不错的BI框架,比如OpenI,JasperSoft,SpagoBI,pentaho等等。
这些要么比较庞大,学习成本较高;要么虽然简单,但对中文的支持比较差,总让人感觉差强人意。
Jqpivottable 是一款基于Jquery的多维数据分析处理框架。使用起来轻便、快捷。最主要的是你可以以此设计出很优雅很高效的界面。
资源地址:http://code.google.com/p/jqpivottable/
在以上网站下载最新的资源,本人使用的是1.1版。可能是由于访问受限的原因,很抱歉,这个框架没有公开API。只能根据demo来窥探其奥秘了。
下面介绍Jqpivottable的使用。1.1版的压缩包中含有CSS/Scripts两个文件夹和两个PHP页面。这两个PHP是一个简单的小例子。如果你使用PHP的框架,这个再好不过了。可以创建数据库直接运行。
将css和scripts两个文件夹拷贝到项目中,然后新建一个jqpt_demo.jsp文件并将index.php的内容拷贝到这个jsp文件。稍作修改。
jqpt_demo.jsp页面内容如下:
<%@ page language="java" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<%@ include file="common/header.jsp"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>浙江省电力公司作业项目安全风险管控系统</title>
<link href="${root}/css/PivotTable.css" rel="stylesheet" type="text/css" />
<script src="${root}/scripts/jquery-1.6.4.min.js" type="text/javascript"></script>
<script src="${root}/scripts/jquery.ui.core.js" type="text/javascript"></script>
<script src="${root}/scripts/jquery.ui.widget.js" type="text/javascript"></script>
<script src="${root}/scripts/jquery.ui.mouse.js" type="text/javascript"></script>
<script src="${root}/scripts/jquery.ui.draggable.js" type="text/javascript"></script>
<script src="${root}/scripts/jquery.ui.droppable.js" type="text/javascript"></script>
<script src="${root}/scripts/jquery.ui.sortable.js" type="text/javascript"></script>
<script src="${root}/scripts/json2.js" type="text/javascript"></script>
<script src="${root}/scripts/number-functions.js" type="text/javascript"></script>
<script src="${root}/scripts/jqPivotTable.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#pivotT").pivottable({
urldata: "jxplan/jpt.action", //URL data from AJAX
urlfields: "500.jsp", //jxplan/jpt.action//URL fields catalog from AJAX (obsolete in v 1.1)
table: "jx_plan_item",
columns: ["电压等级","属性","风险等级"],
rows: ["是否计划外", "计划类型"],
filters: ["风险类型"],
datafields: "risk_level_count",
op: "COUNT" //sum or count
});
})
</script>
</head>
<body>
<form id="frm1" name="frm1" method="post" action="">
<div class="main">
<table id="pivotT">
</table>
</div>
</form>
</body>
</html>
这里需要注意一点的是:虽然1.1版本放弃了urlfields这个属性,但我们是不能省略的。省略后就无法访问后台并显示数据了。为了方便可以将urldata和urlfields的属性值设置为一致。
下面谈谈这几个属性
urldata:--异步获取数据的地址
urlfields:--该属性在1.1后已被弃用
table:表名
columns:列中要显示的字段(可以多维)
rows:行中需显示的字段(可以多维)
filters:过滤器,用于过滤数据的条件
datafields:显示的数据字段名
op:统计方式,可以是sum或count
这些属性理论上都应该可以在后台获取,但通过查看jqPivotTable.js代码我们可以发现,这些属性并没有提交到后台,这是一件比较遗憾的事情。也就是说,这些属性目前只用于前台。当然,我们可以通过修改代码来实现数据的传递,有兴趣的同学不妨试试。
以下是后台Action中对应的方法
/**
* 多维分析
* @return
*/
public String jpt()throws Exception{
//查询结果集
List<JxPlanItemMultidimAnalysis> list = jxPlanItemServiceImpl.list(null);
//定义一些常用的符号
final String lbb="{",rbb="}",dq="\"",colone=":",lmb="[",rmb="]",comma=",";
StringBuffer sb= new StringBuffer();
sb.append(lbb).append(dq).append("items").append(dq).append(colone).append(lmb);
for (JxPlanItemMultidimAnalysis j : list) {
sb.append(lbb);
sb.append(dq).append("电压等级").append(dq).append(colone).append(dq).append(j.getVolLevel()==null?"":j.getVolLevel()).append(dq);//
sb.append(comma);
sb.append(dq).append("是否计划外").append(dq).append(colone).append(dq).append(ValidateUtil.matchString(j.getIsOut(), String.valueOf(true))?"是":"否").append(dq);
sb.append(comma);
sb.append(dq).append("计划类型").append(dq).append(colone).append(dq).append(j.getPlanType()==null?"":j.getPlanType()).append(dq);
sb.append(comma);
sb.append(dq).append("属性").append(dq).append(colone).append(dq).append(j.getProjectAttribute()==null?"":j.getProjectAttribute()).append(dq);
sb.append(comma);
sb.append(dq).append("风险类型").append(dq).append(colone).append(dq).append(j.getRiskType()==null?"":j.getRiskType()).append(dq);
sb.append(comma);
sb.append(dq).append("风险等级").append(dq).append(colone).append(dq).append(j.getRiskLevel()==null?"":j.getRiskLevel()).append(dq);
sb.append(comma);
sb.append(dq).append("risk_level_count").append(dq).append(colone).append(dq).append(j.getRiskLevelCount()).append(dq);
sb.append(rbb).append(comma);
}
sb.deleteCharAt(sb.length()-1);
sb.append(rmb).append(rbb);
jsonString = sb.toString();
return SUCCESS;
}
这里我们将获得的结果转成json格式的字符串,返回给前端页面。
这里我没有直接用JSONObject或者JSONArray对象来转是因为我的字段需要中文名称,便于在页面显示。
分享到:
相关推荐
DataFunsummit:多维分析架构峰会 共48份 京东ClickHouse高可用实践 Impala在腾讯灯塔的优化和实践 在公有云搭建敏捷的分析平台 Doris数智一体解决方案与在银行领域的应用实践 百信银行用户-产品-企业经营多维...
【Cognos多维分析】是IBM Cognos BI(商业智能)系统中的一种核心功能,主要用于构建和分析复杂的多维数据模型。这种分析方法允许用户从不同角度探索和理解数据,提供深入的业务洞察。 在Cognos多维分析中,**模型...
cognos查询与报表和多维分析工具 COGNOS 查询与报表和多维分析工具是业界领先的商务智能工具供应商的主要产品,包括查询与报表工具 Imprompwu 和多维分析工具 PowerPlay。本文将简要介绍这两种产品。 Impromptu ...
大数据多维分析平台实践方案 大数据多维分析平台实践方案是基于大数据平台的实践方案,...大数据多维分析平台实践方案旨在解决大数据平台下的多维分析问题,实现高效稳定的多维分析,满足业务需求的灵活性和高性能。
C/C++实现多维不等宽多维动态数组 C/C++实现多维不等宽多维动态数组 C/C++实现多维不等宽多维动态数组 C/C++实现多维不等宽多维动态数组
在数据结构的学习中,设计并模拟实现整型多维数组类型是一项重要的实践任务。多维数组是计算机科学中处理复杂数据的一种基础结构,它能够帮助我们有效地存储和操作矩阵或类似表格的数据。在这个课程设计中,我们将...
《Kylin多维分析》是针对大数据领域中一种流行的开源工具——Apache Kylin的深入解析。Kylin,源自于LinkedIn,后成为Apache软件基金会的顶级项目,它主要应用于大规模数据集上的快速、稳定且可扩展的在线分析处理...
### 基于动态交叉表的Web多维分析系统设计与实现 #### 一、引言 在现代商业环境中,企业越来越依赖于大数据分析来驱动决策制定。在这些场景下,传统的在线分析处理(OLAP)工具虽然强大,但在基于Web的应用程序中...
本实验的主要目的是讲解如何使用 SQL Server 2005 构建数据仓库和实现 OLAP 多维分析。实验中,我们将使用 Northwind 数据库作为数据源,并使用 SQL Server 2005 的 Integration Services 实现数据仓库和 ETL,使用 ...
该智能多维分析系统的设计和实现是基于以下几个方面来保障电能计量数据分析系统稳定性的:首先是效率高,这得益于SparkSQL和聚合ETL技术的高效性能;其次是编程简单,这得益于SparkSQL和关联规则方法的易用性;再次...
根据提供的文件内容,本文将深入解析ClickHouse在构建数据仓库时的多维分析应用实践。涉及到的知识点包括ClickHouse的基本概念、数据架构设计、同步工具的选择、数仓模型设计、性能优化以及实际应用中遇到的问题和...
本教程将从基础入手,深入介绍Cognos的基本概念、核心功能以及多维分析的实战操作。 首先,Cognos基础知识部分主要涵盖以下几个方面: 1. **Cognos架构**:Cognos由多个组件构成,包括Cognos Connection(用户界面...
数据仓库的多维分析展现技术可以通过OLAP(Online Analytical Processing)技术来实现。OLAP技术可以将数据仓库中的数据进行多维度的分析,并将结果以图形或报表的形式展现。 知识点6:数据仓库的多维分析展现技术...
多维数据分析是以数据库或数据仓库为基础的,其最终数据来源与OLTP一样均来自底层的数据库系统,但两者面对的用户不同,数据的特点与处理也不同。 多维数据分析与OLTP是两类不同的应用,OLTP面对的是操作人员和低层...
DataFunSummit:2022年多维分析架构峰会PPT合集(38份)。 基于历史查询的 Impala 集群性能优化实践 Flink Table Store v0.2 应用场景和核心功能 基于 Doris 的数据湖仓探索 Apache Doris 在数仓建设中的实践 新...
【标题】:“10-1+Impala+落地&优化:神策数据多维...综上所述,该分享主要涵盖了Impala在大数据环境中的应用,强调了其在构建多维分析平台中的核心地位,以及如何通过一系列技术和策略实现平台的高效运行和性能优化。
在数据分析和机器学习...通过深入学习和实践这部分内容,读者不仅可以掌握K-means聚类的基本操作,还能进一步理解其在多维矩阵上的应用和可视化技巧,这对于在MATLAB环境下进行数据分析和机器学习项目的开发大有裨益。
- **多维数据分析**:通过结合不同的维度和度量值,多维分析能够提供对数据深入的理解和洞察,常见的实现方式是利用OLAP技术栈进行数据的查询和分析。 #### 三、OLAP技术栈 - **传统OLAP引擎**:传统的OLAP引擎如...