AMO olap Test C# generate tsql and mdx
通过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; } ,

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Huawei déploie la version logicielle 5.0.0.100 (C00M01) pour les montres intelligentes Watch GT 5 et Watch GT 5 Pro dans le monde entier. Ces deux montres intelligentes ont récemment été lancées en Europe, le modèle standard étant le modèle le moins cher de l’entreprise. Cette harmonie

Katsuhiro Harada, le réalisateur de la série Tekken, a un jour sérieusement tenté d'impliquer le colonel Sanders dans le jeu de combat emblématique. Dans une interview avec TheGamer, Harada a révélé qu'il avait présenté l'idée à KFC Japon, dans l'espoir d'ajouter la légende de la restauration rapide comme g

Plus tôt en septembre 2024, le chargeur Zolo 140 W d'Anker a fait l'objet d'une fuite, et c'était un gros problème puisqu'il s'agissait du tout premier chargeur mural doté d'un écran de l'entreprise. Maintenant, une nouvelle vidéo de déballage de Xiao Li TV sur YouTube nous donne un aperçu direct du salut.

Tesla déploie la dernière version 12.5.5 de conduite entièrement autonome (supervisée) et avec elle vient enfin l'option Cybertruck FSD promise, dix mois après la mise en vente du pick-up avec la fonctionnalité incluse dans le prix de finition de la série Foundation. F

Xiaomi lancera prochainement le chauffe-huile Mijia Graphene en Chine. La société a récemment mené avec succès une campagne de financement participatif pour le produit de maison intelligente, hébergé sur sa plateforme Youpin. Selon la page, l'appareil a déjà commencé à être expédié vers

Garmin termine le mois avec une nouvelle série de mises à jour stables pour ses dernières montres intelligentes haut de gamme. Pour récapituler, la société a publié le logiciel système 11.64 pour lutter contre l'épuisement élevé de la batterie des Enduro 3, Fenix E et Fenix 8 (prix actuel : 1 099,99 $ sur Amazon).

Le lancement du très attendu pliable « Special Edition » de Samsung a pris une autre tournure. Ces dernières semaines, les rumeurs concernant le soi-disant Galaxy Z Fold Special Edition sont devenues plutôt silencieuses. Au lieu de cela, l’accent s’est déplacé vers la série Galaxy S25, y compris

Avec une histoire de plus d'une décennie, Manjaro est considérée comme l'une des distributions Linux les plus conviviales, adaptée aussi bien aux débutants qu'aux utilisateurs expérimentés, étant facile à installer et à utiliser. Principalement développée en Autriche, en Allemagne et en France, cette distribution basée sur Arch
