用
Mondrian
建立
cube
示例
1
准备数据
分析一个访问日志的事实表,有三个维度,站点、
IP
地址、日期。事实表记录的
数据源为
mysql
数据库
1.1
创建数据库
DROP DATABASE IF EXISTS
`accessinfo`;
CREATE DATABASE `accessinfo` /*!40100
DEFAULT CHARACTER SET latin1 */;
USE `accessinfo`;
1.2
创建维度表
DROP TABLE IF EXISTS `dim_ip`;
CREATE TABLE `dim_ip` (
`id` smallint(6) NOT NULL AUTO_INCREMENT,
`dip` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT
CHARSET=latin1;
INSERT INTO `dim_ip` VALUES
(1,'61.183.248.218');
INSERT INTO `dim_ip` VALUES
(2,'61.144.207.115');
DROP TABLE IF EXISTS `dim_site`;
CREATE TABLE `dim_site` (
`id` smallint(6) NOT NULL AUTO_INCREMENT,
`dSiteID` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT
CHARSET=latin1;
INSERT INTO `dim_site` VALUES
(1,542);
INSERT INTO `dim_site` VALUES
(2,548);
INSERT INTO `dim_site` VALUES
(3,543);
INSERT INTO `dim_site` VALUES
(4,552);
INSERT INTO `dim_site` VALUES
(5,551);
INSERT INTO `dim_site` VALUES
(6,549);
DROP TABLE IF EXISTS `dim_time`;
CREATE TABLE `dim_time` (
`id` smallint(6) NOT NULL AUTO_INCREMENT,
`signinTime` varchar(10) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT
CHARSET=latin1;
INSERT INTO `dim_time` VALUES
(1,'2008-11-15');
INSERT INTO `dim_time` VALUES
(2,'2008-11-16');
INSERT INTO `dim_time` VALUES
(3,'2008-11-17');
INSERT INTO `dim_time` VALUES
(4,'2008-11-18');
INSERT INTO `dim_time` VALUES
(5,'2008-11-19');
1.3
创建事实表
DROP TABLE IF EXISTS `fact_logs`;
CREATE TABLE `fact_logs` (
`fID` varchar(20) NOT NULL DEFAULT '',
`fSiteID` varchar(20) DEFAULT NULL,
`fTime` varchar(10) DEFAULT NULL,
`fIP` varchar(20) DEFAULT NULL,
`fCount` int(11) DEFAULT NULL,
PRIMARY KEY (`fID`)
) ENGINE=InnoDB DEFAULT
CHARSET=latin1;
INSERT INTO `fact_logs` VALUES
('1','1','4','1',87);
INSERT INTO `fact_logs` VALUES
('10','2','5','2',14);
INSERT INTO `fact_logs` VALUES
('2','1','4','2',128);
INSERT INTO `fact_logs` VALUES
('3','3','4','1',5);
INSERT INTO `fact_logs` VALUES
('4','4','4','2',4);
INSERT INTO `fact_logs` VALUES
('5','5','4','2',5);
INSERT INTO `fact_logs` VALUES
('6','6','4','2',3);
INSERT INTO `fact_logs` VALUES
('7','2','4','2',4);
INSERT INTO `fact_logs` VALUES
('8','5','5','2',15);
INSERT INTO `fact_logs` VALUES
('9','6','5','2',13);
2
定义模型
利用的是
pentaho
的工具:
psw-ce-3.2.2.14148\schema-workbench
(
1
)
Option->connection
配置好数据源
(
2
)创建模型文件
AccessInfo.xml
(
3
)新建
schema
,随便给个名字
(
4
)右击
add cube
(
5
)右击
add table
(
6
)右击
add measure
(
7
)右击
schema
然后
add dimension
双击这个
dimension
,设置所有层次的别名:
右击这个层次,
add table
,并选择它对应的维度表:
右击层次添加至少一个
level
:
同样的方法添加另外两个维度。
(
8
)在
cube
中引用以上维度
右击
cube
,
add dimension usage
:
注意添加完引用后,需要再回到
dimension
处,修改
hierarchy
的
primaryKey
:
3
添加数据源
在
datasource.xml
文件中添加如下内容:
<DataSource>
<DataSourceName>Provider=Mondrian;DataSource=AccessInfo;</DataSourceName>
<DataSourceDescription>AccessInfo Data
Warehouse</DataSourceDescription>
<URL>http://localhost:8080/mondrian/xmla</URL>
<DataSourceInfo>Jdbc=jdbc:mysql://192.168.23.128/accessinfo;JdbcUser=root;JdbcPassword=root;JdbcDrivers=com.mysql.jdbc.Driver;</DataSourceInfo>
<ProviderName>Mondrian</ProviderName>
<ProviderType>MDP</ProviderType>
<AuthenticationMode>Unauthenticated</AuthenticationMode>
<Catalogs>
<Catalog
name="AccessInformation">
<Definition>/WEB-INF/queries/AccessInfo.xml</Definition>
</Catalog>
</Catalogs>
</DataSource>
4
添加查询页面
修改
query
文件夹下的
xmla.jsp
页面内容:
<jp:xmlaQuery id="query01"
uri="http://localhost:8080/mondrian/xmla"
dataSource="Provider=Mondrian;DataSource=AccessInfo;"
catalog="AccessInformation">
select NON EMPTY {[Measures].[Amount]} ON
COLUMNS, NON EMPTY{([Access Time].[All Time], [Website
Num].[All Site])
} ON ROWS from [Access Analysis] where [User IP].[All
IP].[61.144.207.115]
</jp:xmlaQuery>
注意:红色字体中的括号不能少,另外
where
条件(即对应的切片过滤条件
slicer
)也不能少。
分析查询的结果:
- 大小: 10.5 KB
- 大小: 12.1 KB
- 大小: 10.8 KB
- 大小: 11.7 KB
- 大小: 10.2 KB
- 大小: 11.7 KB
- 大小: 18.5 KB
- 大小: 14.7 KB
- 大小: 17.3 KB
- 大小: 13.9 KB
- 大小: 43.3 KB
- 大小: 18.1 KB
分享到:
相关推荐
MySQL Workbench 创建数据库教程 MySQL Workbench 是一款专为 MySQL 设计的 ER/数据库建模工具,可以用来设计和创建新的数据库图示,建立数据库文档,以及进行复杂的 MySQL 迁移。下面是使用 MySQL Workbench 创建...
MySQL_Workbench创建数据库和表 MySQL Workbench 是一款专为 MySQL 设计的 ER/数据库建模工具,继承了 DBDesigner4 的功能。它可以帮助用户设计和创建新的数据库图示,建立数据库文档,以及进行复杂的 MySQL 迁移。...
MySQL Workbench 数据库和表的创建 MySQL Workbench 是一个功能强大且易于使用的可视化工具,能够帮助开发者快速创建数据库和表。下面我们将详细介绍如何使用 MySQL Workbench 创建数据库和表。 创建数据库 在 ...
"使用 MySQL Workbench 创建数据库教程" MySQL Workbench 是 MySQL AB...本教程通过实际示例,展示了如何使用 MySQL Workbench 创建数据库,设计物理数据模型,设置数据库对象,创建订单系统,设计表结构和创建关系。
- **工具集**: 在 ABAP Workbench 中,开发者可以利用 SAP 提供的标准化体系结构和工具集来创建 Web Service,这些工具集覆盖了从设计到实现再到测试和发布的整个生命周期。 总之,基于 ABAP Workbench 创建并发布 ...
更多可以参考官方 ...这个是可视化工具,配置好jdk1.8之后,运行workbench.sh或者workbench.bat就可以把代码弹出来,配合我其他资源的foodmart.xml就可以针对mondrian4.0以下可视化建模了。
Schema Workbench是用于创建和编辑Mondrian Schema的工具,它为用户提供了图形化的界面来设计和管理数据模型。这个工具可以帮助你直观地构建维度、层次和度量,简化了复杂的数据模型设计过程。 在Schema Workbench...
MySQL Workbench 数据库和表创建指南 MySQL Workbench 是一个功能强大且易用的可视化数据库设计工具,能够帮助开发者快速创建数据库和表。以下是使用 MySQL Workbench 创建数据库和表的步骤指南: 创建数据库 1. ...
Schema Workbench是Mondrian提供的一个图形化工具,用于创建和编辑Mondrian的XML schema文件。通过这个工具,开发者可以直观地设计多维数据模型,包括维度、层次、度量等,并能直接预览MDX查询结果,极大地简化了...
我们可以使用 Workbench 的关系图标来创建这种关系,并将 ORDER 表的键移动到 SALES_ORDER 表和 PURCHASE_ORDER 表中。 最后,我们将我们的模型保存为 ORDER.mwb,并生成 DDL(SQL CREATE script)。然后,我们可以...
在本文中,我们将深入探讨如何配置workBench以及与Mondrian数据源的集成,以实现更高效的数据分析和处理。首先,让我们了解workBench和Mondrian是什么。 workBench是一种用于设计和管理数据仓库的工具,它允许用户...
### 通过MySQL Workbench创建及管理数据库 #### 实验目的 - **熟悉MySQL Workbench工具:** 学习如何使用MySQL Workbench进行数据库管理和开发工作。 - **掌握MySQL Workbench管理数据库的方法:** 包括创建数据库...
本示例将引导你了解如何利用这个强大的工程模拟工具来研究电机的电磁性能。 首先,我们要理解ANSYS Workbench的核心价值。它是ANSYS公司提供的一款集成化的工程仿真平台,集成了结构力学、流体动力学、热力学、电磁...
workbench作为一款大型的CAE软件,在各行各业都有着广泛的应用。对于workbench二次开发技术的研究在国内少之又少,现在就将workbench的二次开发代码实例与大家分享。希望给从事workbench二次开发技术研究的同学以...
标题中的"FME WorkBench添加独立发布参数"指的是在FME(Feature Manipulation Engine)工作台中设置独立的发布参数,以便在FME Server上部署转换服务时进行动态配置。FME是Safe Software开发的一款强大的数据转换...
总结来说,添加新材料到Workbench的材料库的步骤包括:进入Engineering Data模块,复制或创建新材料,并设置相应的属性。然后,通过在Engineering Data Sources(工程数据源)中找到需要编辑的材料库,并将新创建的...
MySQL_Workbench 创建数据库教程 MySQL_Workbench 是 MySQLAB 近来开释的可视数据库设计工具,拥有很多功能和特征。这个工具是设计 MySQL 数据库的专用工具。 MySQL Workbench 拥有好多的功能和特征,通过本教程,...
对于初学者,通过阅读和理解这段代码,可以学习到如何使用Qt创建复杂界面,理解Workbench界面的设计思路,同时也能了解到CAE软件的用户交互设计原则。对于有经验的开发者,这可能是改进或定制现有Workbench界面的一...
Mondrian是一个开源的在线分析处理(OLAP)服务器,它支持多种数据库系统,并且能够快速地处理复杂的数据查询,提供高效的数据分析能力。 Schema-Workbench是Mondrian的重要辅助工具,主要用途是设计、测试和调试...
Workbench与Mondrian的集成意味着用户可以直接在Workbench中创建和管理多维数据集,进行复杂的分析查询。Mondrian通常与Pentaho Data Integration (Kettle)等BI工具一起使用,提供快速的数据立方体处理和分析。 5. ...