Dav*_*ers 5 excel ssas mdx tabular ssas-tabular
我有这篇文章中描述的问题。我有两个具有相同数据支持的多维数据集,一个是多维多维数据集,第二个是表格多维数据集。如果我使用 Excel 连接到多维数据集,并将层次结构的顶层(在本例中为“公司”)拖动到多维多维数据集中的筛选器类别中,然后在 Excel 的搜索栏中输入一些文本:
(层次结构 - 在 Excel 中)
(层次结构 - 在 Visual Studio 中)
(多维 - 在 Excel 中作为过滤器)
下面的级别将通过文本进行过滤并返回结果。但是,如果我在表格多维数据集中过滤相同的层次结构,结果会有所不同:
(表格 - 在 Excel 中作为过滤器)
我没有收到任何结果,搜索似乎无法正常运行。如果我查看层次结构的叶级别,我可以让它工作,但看起来 excel 中表格多维数据集的层次结构搜索功能的节点级别不起作用。
以前是否有其他人遇到过这个问题,我很想发布多维数据集的模型,但它是相当专有的,我在多个服务器和客户端上的多种类型的专有多维数据集中遇到了相同的问题。这是我可以更改的模型中的某种配置吗?或者我可以改变Excel中的某些内容?
我做了更多的挖掘,我在执行搜索时设置了 SQL Profiler 以针对我的 SSAS 服务器运行,似乎它正在生成一个 MDX 查询(这次是在我的“item”层次结构上):
WITH MEMBER [Measures].cChildren As 'AddCalculatedMembers([Item].[I1 - Category].currentmember.children).count'
Set FilteredMembers As 'Head (Filter(AddCalculatedMembers([Item].[I1 - Category].[Category].Members), InStr(1, [Item].[I1 - Category].currentmember.member_caption, "Per")>0),10001)'
Select {[Measures].cChildren} on ROWS,
Hierarchize(Generate(FilteredMembers, Ascendants([Item].[I1 - Category].currentmember))) DIMENSION PROPERTIES PARENT_UNIQUE_NAME,
MEMBER_TYPE ON COLUMNS FROM [XXX_Test_TabularPro]
Run Code Online (Sandbox Code Playgroud)
但在针对我的多维数据集运行时,它似乎出错了(可以解释为什么我在 Excel 中没有得到任何结果):
您无权访问指定成员,或者指定成员不存在。
这是一个有趣的错误消息,实际上我以前从未见过它,而且互联网上也没有太多关于它的信息,只有一些 死胡同。我很确定我没有权限问题,我可以通过在该服务器上以管理员身份运行查询来重现错误。我认为这与查询或多维数据集格式中的某些内容有关,但我不太确定问题所在,而且我对 MDX 不太熟悉。有人见过这个吗?我可以对立方体进行一些更改以避免这种情况发生吗?是否是查询的语法问题,如果是,为什么 excel 会生成无效的查询?
另一个值得注意的有趣事项,我注意到叶级层次结构的搜索功能在 excel 中工作(如上所述),因此我将“I1 - 项目类别”替换为“IA - 项目名称”,并且查询运行没有问题(的当然,我们现在正在搜索叶级别),在这种情况下,在非叶级别上运行此查询“I1 - 项目类别”会导致此错误发生。
好吧,我已经取得了一些突破,我改变了我的查询,看看是否有任何输入组合可以让它工作,如果我将过滤器从“Per”更改为“GL”,我找到了一个我得到一个结果,事实证明上面概述的查询实际上不是从“I1 - 项目类别”返回结果,它实际上是从“[Item].[IA - Item Name].Members”返回结果,其中包含一个不同的列表项目名称的。
我实际上也可以在 Excel 中演示这一点:
这毫无意义,在上面显示的查询(从 Excel 搜索生成的查询)中,我没有提到项目名称,并且您清楚地看到什么“[Item].[I1 - Category].[Category].Members “应该在上面的屏幕截图中返回(以及多维立方体返回的内容),它只是不在表格中,最糟糕的是我捕获(使用 SQL 探查器)来自 excel 的查询,搜索我相同的项目层次结构我的多维数据集的表格版本和多维版本,它们生成完全相同的 MDX 查询,唯一的区别是多维数据集的名称。
我被迫得出这样的结论:如果生成两个相同的多维数据集(尽可能相同),一个是表格,另一个是多维的,并对它们运行上述查询(假设存在此层次结构),它们会返回不同的结果,并且表格一将返回不正确的结果。
以前有人见过这个问题吗?我觉得表格多维数据集为指定的 MDX 返回了错误的记录集,这种情况会如何发生,我可以做些什么来修改查询或多维数据集来解决此问题吗?
传奇还在继续,我想在这里回答的核心问题之一是:这是我生成的立方体特有的东西,还是它会影响所有立方体,我相信我已经找到了答案......
重现步骤:
打开 Visual Studio,新建项目,选择“Analysis Services 表格项目”,下一步,创建,(弹出窗口将显示“表格模型设计器”,我选择“工作空间服务器”,将其指向我的表格多维数据集服务器并设置兼容性模型 1200)
将以下数据添加到 CSV 文件或将其放入 SQL 表中:
Category_Description 子 Category_Description LeafName
专业10系列过滤器
性能 10 TTR GL
专业10系列系列1
未分配 未分配 汽车
性能 500 S 赛车
右键单击“数据源”选择“从数据源导入”,浏览菜单以导入上面定义的数据源。
作为第 3 项的一部分,您应该导入步骤 2 中列出的表,您应该在表中看到来自数据源的新表:
右键单击 VS 中的“TabularProject”,选择“在 Excel 中分析”,这应该会弹出一个 Excel 窗口
将“Hierarchy1”层次结构拉入“过滤器”,在 Excel 中下拉此层次结构并尝试搜索“Per”:您将看到没有显示任何结果。
重要提示:如果我将工作区更改为“集成”,重建并处理多维数据集,我将不再看到该错误,它必须与服务器处理此模型的方式有关,在某种程度上它必须与 VS 的处理方式不同本地。
| 归档时间: |
|
| 查看次数: |
789 次 |
| 最近记录: |