- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在对一个应用程序进行一些规划,该应用程序使用 Mondrian OLAP 引擎和 Olap4j,并且应该向用户呈现/显示数据。我了解所有后端内容,但我不确定应该如何在 View 层中显示数据。
例如,olap4j 有一个格式化程序,可以将 SELECT 很好地打印到控制台中。
从olap4j获取的数据如何显示在 View 层中?我刚刚浏览了olap4j API,似乎没有任何东西可以以可以某种方式进一步处理和显示的形式获取结果。这个过程是 Pentaho 解决方案的一部分吗?那么,仅从 Mondrian OLAP 引擎和 olap4j 呈现数据真的不容易吗?
编辑:我习惯于传统上从数据库获取一些数据到我的 DTO 中并将其显示在 View 层中。但是如何为如此复杂的结果集创建 DTO?
最佳答案
您可以创建自己的 View 层,只是有点棘手。
OlapStatement .executeOlapQuery() 返回 CellSet ,你将不得不处理它。另请阅读specifications ,这是一个很好的信息来源。
这是一个创建 List<List<MyCell>>
的示例(不是最好的表示,但很容易理解它是如何工作的)。这将创建一个类似于 http://www.olap4j.org/api/index.html?org/olap4j/Position.html 的表(没有“性别”和“产品”标签)。
private final static int COLUMNS = 0; //see Cellset javadoc
private final static int ROWS= 1; //see Cellset javadoc
/**
* Outer list: rows, inner list: elements in a row
*/
private List<List<MyCell>> getListFromCellSet(CellSet cellSet) {
List<List<MyCell>> toReturn= new ArrayList<List<MyCell>>();
//Column header
//See http://www.olap4j.org/api/index.html?org/olap4j/Position.html on how Position works, it helps a lot
//Every position will be a column in the header
for (Position pos : cellSet.getAxes().get(COLUMNS).getPositions()) {
for (int i = 0; i < pos.getMembers().size(); i++) {
if (toReturn.size() <= i) {
toReturn.add(i, new ArrayList<MyCell>());
}
Member m = pos.getMembers().get(i);
MyCell myCell = new MyCell(m); //use m.getCaption() for display
toReturn.get(i).add(myCell );
}
}
//Put empty elements to the beginning of the list, so there will be place for the rows header
if (cellSet.getAxes().get(ROWS).getPositions().size() > 0) {
for (int count=0; count < cellSet.getAxes().get(1).getPositions().get(0).getMembers().size(); count++) {
for (int i = 0; i < toReturn.size(); i++) {
toReturn.get(i).add(0, new MyCell());
}
}
}
//Content + row header
for(int i = 0; i < cellSet.getAxes().get(ROWS).getPositionCount(); i++) {
List<MyCell> row = new ArrayList<MyCell>();
//Header
for (org.olap4j.metadata.Member m : cellSet.getAxes().get(ROWS).getPositions().get(i).getMembers()) {
row.add(new MyCell(m));
}
//Content
for (int j = 0; j < cellSet.getAxes().get(COLUMNS).getPositionCount(); j++) {
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(j); //coordinte
list.add(i); //coordinte
row.add(new MyCell(cellSet.getCell(list))); //use cell.getFormattedValue() for display
}
toReturn.add(row);
}
return toReturn;
}
使用这些构造函数创建 MyCell 类:
public class MyCell {
...
public MyCell(){...}
public MyCell(Member m){...}
public MyCell(Cell c){...}
}
不要忘记显示过滤器,请使用 Cellset.getFilterAxis() 。
您还可以查看 Rectangular SourceForge 上的格式化程序,但它有点长。
关于olap - Mondrian OLAP 引擎 + Olap4j 的数据呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4893993/
在 Excel 数据透视表中,您可以请求生成离线 OLAP 多维数据集:即扩展名为 .cub 的文件。有没有人知道或有任何关于这种文件格式的指针? 谢谢,_马克 最佳答案 我认为创建它们所需的所有信息
我需要一个心理过程来设计一个 OLAP 数据库...... 基本上对于标准关系它会是(松散地): Identify Entities Identify Relationships Identify P
类似于 NoSQL 数据库,但适用于 OLAP。当然是开源的:) 编辑: OLAP 引擎在幕后使用关系数据库。例如 SAPBW 可以使用 Oracle 等。我的意思是一个没有这个底层关系数据库的 OL
在大多数情况下,维度内层次结构的每个级别代表不同的概念(即国家->地区->城市、年->月->日),这很简单,可以在多维数据集中使用。 我感兴趣的是可变深度层次结构,它往往由相同概念的实例组成,即计算机
在 BigQuery 文档中提到它使用 OLAP 函数。但是开发人员文档没有提到 MDX 查询语言、维度或事实表。 BQ 中有哪些 OLAP 功能(如果有)以及它们如何使用 最佳答案 BigQuery
背景:我正在分析通话详细记录 (CDR) 数据,以便根据通话时长、通话时间(节假日通话或非节假日通话、商务通话)对客户进行分割或非商务电话)、用户年龄组和性别。数据来自两个表名cdr(包括card_n
我正在尝试在 Snowflake 中重建一个 Cognos Transformer 多维数据集。1. 我们是否可以选择在 Snowflake(如 SSAS、Cognos Transformer)中构建
我正在对一个应用程序进行一些规划,该应用程序使用 Mondrian OLAP 引擎和 Olap4j,并且应该向用户呈现/显示数据。我了解所有后端内容,但我不确定应该如何在 View 层中显示数据。 例
我正在尝试在 Snowflake 中重建一个 Cognos Transformer 多维数据集。1. 我们是否可以选择在 Snowflake(如 SSAS、Cognos Transformer)中构建
我对如何将BI与数据挖掘连接感到困惑。可以将BI称为某种形式的数据挖掘的体现吗? BI分析工具(如Microsoft Analysis Services)与数据挖掘工具(如Weka)有何不同? 我猜想
OrientDB 对更高级结构(例如立方体单元、维度、OLAP/BI)的支持情况如何?分析函数/窗口函数?这些在高端数据库(Oracle、MSSQL、Postgres)中很常见。谢谢。 最佳答案 我也
我正在 SQL Server Analysis Services 2005 中制作一个多维数据集,并且有一个关于多对多关系的问题。 我有两个实体之间的多对多关系,其中包含一个附加的描述性列作为关系的一
我一直在努力让聚合表发挥作用。这是我的事实表的样子: employment_date_id dimension1_id dimension2_id dimension3_id dimension4 d
我们使用 Azure Analysis Services 来托管我们的多维数据集。我们在通过EXCEL读取数据时遇到了问题。 问题在于总计(和小计)计算不正确。最初,我们在EXCEL中发现了这个问题。
我是新手,找不到如何为这种结构定义维度: invoices:--------idid_companydateinvoices_data:-------------idid_invoiceid_prod
我们不希望在未选择某些强制尺寸时执行后处理器。例如,我们有称为风险类型、敏感曲线、期限、货币 1 和显示货币的维度。我们还有称为 Rate.Move 的后处理措施 - 它实现了 doLeafEvalu
有什么方法可以用它在 HBase 或 OLAP 中创建 CUBE DIMENSIONS 吗?我想使用我的 HBASE 或 HIVE 创建 CUBE DIMENSIONS 类型的应用程序并将其与 SSA
首先,我对 OLAP 一点都不熟悉,所以如果术语不正确,请随时提供更正。 我正在阅读有关 OLAP 的文章,它似乎完全是关于以空间换取速度,您可以在其中预先计算(或按需计算)并存储有关数据的聚合,并以
一些背景知识,我们有一个 OLAP 系统,长期以来一直愉快地为客户处理它的多维数据集。然后最近它开始失败。这与主要开发人员意外结婚并使自己无法联系在一起。所以显然我不能去纠缠他。 我们有一个在年、月、
我有一个用于销售的多维 OLAP 多维数据集。但是我有一个巨大的数据库。首先我完成了 olap 多维数据集的完整处理。但是每次它都会完成,所以需要很多时间。我必须进行增量处理。但我没有这个主题有任何过
我是一名优秀的程序员,十分优秀!