首页 数据库 mysql教程 AMO olap Test C# generate tsql and mdx

AMO olap Test C# generate tsql and mdx

Jun 07, 2016 pm 05:37 PM
test

通过AMO访问online的cube,生成等值的TSql和mdx 自动生成等值的TSQL和MDX进行Cube测试.其中难度比较大的部分是拼接TSQL. 暂时不处理calculations,只除理metrics和Regular Type的dimension Usage. metric的聚合方法只处理(max,min,sum,count,distinct count)

通过AMO访问online的cube,生成等值的TSql和mdx

自动生成等值的TSQL和MDX进行Cube测试.其中难度比较大的部分是拼接TSQL.

暂时不处理calculations,只除理metrics和Regular Type的dimension Usage.

metric的聚合方法只处理(max,min,sum,count,distinct count)

以下是问题的记录与处理情况.

1.adventureworks示例cube中,会把Date dimension的attributes的表名取成dimtime. 未解决 已经解决此问题

2.如果dimension 表中的attributes引用了其他表的字段,则暂时没有解决这个问题. 解决

使用TableJoin和TableLinks方法来解决这个问题.

Tablelinks方法获取dimensionattributes中使用到的字段所在的表与主表的关系链.

Tablejoin:生成连接的语句.

或许不完善.

3.新问题 如果hierarchy的level的source attribute用的是calculation,那么现在仍然会报错,我应该判断

这个字段是不是计算成员,如果是计算成员,则要去取计算成员的定义.

4.没有考虑dimension attribute的orderby 属性与name column. 未解决(尽快解决 已经解决此问题)

5.问题 自连接的情况 如果dimension usage 当中事实表和维度表是一个表的话,需要给表加别名.

现在只考虑事实表与维度表相同的情况,其他的暂时不考虑.

6.在某些情况下,sum出来的结果会发生溢出,所以需要提前把它转化为bigint.

可以在判断其列的类型为int时自动将其转化成bigint. 未解决

7.遇到父子dimension会形成死循环,或者类似存在回链关系的DSV维度,忽略掉. 解决:第二次出现的时候直接断开.

以下是生成等值TSQL与MDX的运行情况,使用Adventurework示例数据仓库SSAS进行测试,除了提到的第一个问题外,

生成的TSQL均可以运行.

   

界面介绍:填入OLAP CUBE的连接字符串,选择DB,CUBE与dimensions.直接点击生成mdxtsql.

以下贴一些主要的方法(代码)

由于dimension可能引用多个表,所以要把这几个表关联起来,有了以下代码:   

private string TableJoin(DimensionAttribute da) { //根据l找到sourcetable morejoin = ""; string tablelinks = GetTableLinks(da.Parent); ).Length3) return ""; )[; if (tablelinks.IndexOf(TableName).Equals(0)) return ""; string strUsedTables = tablelinks.Substring(0, tablelinks.IndexOf(TableName)-1); Liststring>(); usedTables.Remove(""); DataSet ds = da.Parent.DataSourceView.Schema; for (int i = 0; i 0; i++) { string childTable = usedTables[0]; DataRelation dr = ds.Relations[i]; if (dr.ChildTable.TableName.Equals(childTable)) { morejoin = morejoin.Append(+ GetSourceQueryDefinition(da.Parent,dr.ParentTable.TableName.ReplaceFirstUnderLineWithDot()) ).AppendNewLine().Append(); for (int j = 0; j ) { morejoin = morejoin.Append( dr.ParentTable.TableName.ReplaceFirstUnderLineWithDot()++ dr.ParentColumns[j].ColumnName + + dr.ChildTable.TableName.ReplaceFirstUnderLineWithDot() ++ dr.ChildColumns[j].ColumnName ).AppendNewLine(); } usedTables.RemoveAt(0); i = 0; } } return morejoin; } private string GetTableLinks(Dimension dim) { HashSetstring> tables = new HashSetstring>(); string MainTable = ""; string tablelinks = string.Empty; DataSet ds = dim.DataSourceView.Schema; MainTable= dim.KeyAttribute.KeyColumns[)[0]; tablelinks = tablelinks.Append(MainTable+); for (int i = 0; i ) { DataRelation dr = ds.Relations[i]; if (dr.ChildTable.TableName.Equals(MainTable)) { tablelinks = tablelinks.Append(dr.ParentTable.TableName + ); MainTable = dr.ParentTable.TableName; if (tables.Contains(MainTable)) break; else tables.Add(MainTable); i = 0; } } return tablelinks; }

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

华为Watch GT 5智能手表获得新功能更新 华为Watch GT 5智能手表获得新功能更新 Oct 03, 2024 am 06:25 AM

华为正在全球推出Watch GT 5和Watch GT 5 Pro智能手表的软件版本5.0.0.100(C00M01)。这两款智能手表最近在欧洲推出,标准型号是该公司最便宜的型号。这和谐

铁拳桑德斯上校的梦想被肯德基炸了 铁拳桑德斯上校的梦想被肯德基炸了 Oct 02, 2024 am 06:07 AM

《铁拳》系列总监原田胜宏曾认真尝试过将桑​​德斯上校带入这款标志性格斗游戏中。在接受 TheGamer 采访时,原田透露,他向日本肯德基提出了这个想法,希望将这位快餐传奇人物纳入其中。

第一眼:即将推出的 Anker Zolo 4 端口 140W 带显示屏壁式充电器的拆箱视频泄露 第一眼:即将推出的 Anker Zolo 4 端口 140W 带显示屏壁式充电器的拆箱视频泄露 Oct 01, 2024 am 06:32 AM

2024 年 9 月早些时候,Anker 的 Zolo 140W 充电器被泄露,这是该公司首款带显示屏的壁式充电器,这引起了轰动。现在,小李TV在YouTube上发布的新开箱视频让我们亲眼目睹了这款hi

Cyber​​truck FSD 评论称赞快速车道切换和全屏可视化 Cyber​​truck FSD 评论称赞快速车道切换和全屏可视化 Oct 01, 2024 am 06:16 AM

特斯拉正在推出最新的全自动驾驶(监督)版本 12.5.5,并最终带来了承诺的 Cyber​​truck FSD 选项,距离皮卡上市十个月后,该功能包含在基础系列的装饰价格中。 F

搭载 HyperOS 的新款小米米家石墨烯油汀到货 搭载 HyperOS 的新款小米米家石墨烯油汀到货 Oct 02, 2024 pm 09:02 PM

小米即将在中国推出米家石墨烯油汀取暖器。该公司最近在其优品平台上成功举办了一次智能家居产品众筹活动。根据页面显示,该设备已经开始发货至

Garmin 通过新的更新发布了针对多款智能手表的冒险赛车活动改进 Garmin 通过新的更新发布了针对多款智能手表的冒险赛车活动改进 Oct 01, 2024 am 06:40 AM

Garmin 将于本月底为其最新的高端智能手表提供一组新的稳定更新。回顾一下,该公司发布了系统软件 11.64,以解决 Enduro 3、Fenix E 和 Fenix 8 的高电池消耗问题(亚马逊售价 1,099.99 美元)。

三星 Galaxy Z Fold 特别版透露将于 10 月底登陆,但名称出现冲突 三星 Galaxy Z Fold 特别版透露将于 10 月底登陆,但名称出现冲突 Oct 01, 2024 am 06:21 AM

三星期待已久的“特别版”可折叠手机的推出又迎来了另一个转折。最近几周,有关所谓 Galaxy Z Fold 特别版的传言相当安静。相反,焦点已转移到 Galaxy S25 系列,包括

Manjaro 24.1'Xahea”与 KDE Plasma 6.1.5、VirtualBox 7.1 等一起发布 Manjaro 24.1'Xahea”与 KDE Plasma 6.1.5、VirtualBox 7.1 等一起发布 Oct 02, 2024 am 06:06 AM

Manjaro 已有十多年的历史,被认为是最用户友好的 Linux 发行版之一,适合初学者和高级用户,易于安装和使用。这个基于 Arch 的发行版主要在奥地利、德国和法国开发

See all articles