MDX 如何 翻译 转换 为 SQL 脚本
如题 ,或者相关sql,mdx 转换翻译的 解决方案 和 思路
[解决办法]
看看微软的文档即可,本地如果安装msdn教全也有:
地址: http://msdn.microsoft.com/en-us/library/ms719711(VS.85).aspx
Mapping MDX to SQL Statements
The mappings described in this section assume that the cube is stored as a set of tables in an SQL schema. A precise specification of the mappings requires a correspondingly precise specification of the structure of the tables that constitute a cube. One such representation is detailed here, but there are many possible ways in which a cube can be represented as a set of tables. Discussion of which particular representation is the most efficient is beyond the scope of this section. If the representations differ, it is not difficult to alter mappings to accommodate the differences.
[解决办法]
或分析Mondrian源码.
如需理论思路,查找sql Grouping实现olap相关论文
[解决办法]
只要符合语法,MDX转SQL是可以的,我曾实现过一个ROLAP的OLAP服务器,每次前端查询都是最终转换成SQL查询来做的,理论上,MDX查询可以分解成多个SQL查询,就是按维度层次做迪卡尔积,维度每层次成员做聚合,实践中,没有支持MDX,MDX只是多了一个语法分析罢。比如当前查询时间*地区,时间上有年月,地区有国家省份,则分为四个查询,年*国家,年*省份,月*国家,月*省份,如果有All的就是3*3一共9个查询,因为All也是作为一个Level的。
SQL转MDX没有想过。
[解决办法]
哥们,我并没有挑战的意思.你01年就做OLAP了,可能我们年纪差不多,但在OLAP这方面,你可以说是我的前辈了.哈哈.
如果单纯的实现
SELECT { {SET} * {SET} * { SET } } ON 0
{ {SET} * {SET} } ON 1
FROM CUBE
这个是没有困难的,这个我曾写过.我楼上贴出的例子也是实现这个的.
在纯的存储过程下实现也可以.在我的下载里也有一个例了.但是MDX是变化万千的,MDX的函数那么多,真的要模拟出来,我看与实现了一个ROLAP的工作量差不多.所以,我才说不可能.
在 OLAP解决方案创建多维信息系统 这本书中提到一个LC模型,我看参考这个开源的模型更有意义.( 当然,我没有看过这个模型,我担心自己看不懂. )
[解决办法]