在MySQL数据库之上使用诸如Mondrian之类的ROLAP服务器是否有任何性能优势,而不是简单地查询MySQL数据库?
我在大多数查询相对简单的上下文中询问这一点(例如在一定时间内查找所有销售),但数据库的大小相当大(数十万条目).
我的想法是使用OLAP加速查询,但现在我很困惑这是否实际上是这项技术的目的,特别是在其ROLAP形式.在尝试olap4j API时,我意识到我可以使用它来进行MDX查询,甚至没有实际的OLAP服务器(只有一个关系数据库和OLAP架构).在性能方面,这怎么可能有用呢?
谢谢
我们正在考虑将计划和预算应用程序迁移到Salesforce平台.现有应用程序基于维度数据模型构建,并具有通过星型连接实现的广泛的即席查询功能.
我们看到,该平台将如何让我们的数据输入屏幕很快就把在一起,但底层的数据模型和查询语言似乎并不适合我们的报告要求.
是否可以通过此平台快速灵活地进行报告?如果没有,定期提取数据以将其带入分析应用程序有多麻烦?
基础:
据我所知,到目前为止,我必须使用OLAP服务器作为MDX查询和SQL数据库之间的连接器,以提供XMLA作为数据源.因此我想使用Mondrian OLAP服务器.
题:
现在我需要启动Mondrian OLAP服务器,将其连接到PostgreSQL数据库并提供OLAP架构.
我找不到任何一步一步的指南或任何有用的蒙德里安文件.这对我来说都是一片大云.
当我在带有 OUTER JOIN 的查询上使用 PostgreSQL 的CUBE时,我得到一个额外的全 NULL 行,该行无法与多维数据集自己的“所有内容组合”的全 NULL 结果区分开来。
CREATE TABLE species
( id SERIAL PRIMARY KEY,
name TEXT);
CREATE TABLE pet
( species_id INTEGER REFERENCES species(id),
is_adult BOOLEAN,
number INTEGER)
;
INSERT INTO species VALUES
(1, 'cat'), (2, 'dog');
INSERT INTO pet VALUES
(1, true, 3), (1, false, 1), (2, true, 1), (null, true, 2);
Run Code Online (Sandbox Code Playgroud)
好的,总共有 7 只宠物:
SELECT SUM(number) FROM pet;
sum
-----
7
(1 row)
Run Code Online (Sandbox Code Playgroud)
现在看看立方体的总行数:
SELECT * FROM (
SELECT name, is_adult, SUM(number) …Run Code Online (Sandbox Code Playgroud) rolap ×4
mondrian ×2
olap ×2
postgresql ×2
apex-code ×1
cube ×1
mysql ×1
olap4j ×1
outer-join ×1
salesforce ×1
sql ×1
xmla ×1