You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取SSAS多维数据集的所有维度与度量值(Extended Events场景)

提取SSAS多维数据集所有维度和度量值的方法

嘿,刚好我对SSAS的这类需求很熟悉!要提取目标多维数据集的所有维度和度量值,用SSAS自带的**动态管理视图(DMVs)**是最便捷的方式,完全不需要复杂的XMLA脚本,直接用类似SQL的查询就能搞定。下面是几个实用的查询语句,你可以根据自己的需求调整:

获取所有度量值信息

这个查询会返回指定立方体下所有度量值的详细信息,包括所属度量值组、显示名称等:

SELECT
  CUBE_NAME AS CubeName,
  MEASURE_GROUP_NAME AS MeasureGroupName,
  MEASURE_NAME AS MeasureName,
  MEASURE_CAPTION AS MeasureCaption,
  MEASURE_UNIT_NAME AS MeasureUnit
FROM $SYSTEM.MDSCHEMA_MEASURES
WHERE CUBE_NAME = 'YourTargetCube' -- 替换为你的多维数据集名称
ORDER BY MeasureGroupName, MeasureName;

获取所有维度及属性信息

如果你需要维度本身的基本信息,用这个查询:

SELECT
  CUBE_NAME AS CubeName,
  DIMENSION_NAME AS DimensionName,
  DIMENSION_CAPTION AS DimensionCaption,
  DIMENSION_TYPE AS DimensionType
FROM $SYSTEM.MDSCHEMA_DIMENSIONS
WHERE CUBE_NAME = 'YourTargetCube' -- 替换为你的多维数据集名称
ORDER BY DimensionName;

如果要获取维度下的具体属性(也就是用户查询时会用到的维度字段),可以用这个查询:

SELECT
  CUBE_NAME AS CubeName,
  DIMENSION_NAME AS DimensionName,
  LEVEL_NAME AS AttributeName,
  LEVEL_CAPTION AS AttributeCaption
FROM $SYSTEM.MDSCHEMA_LEVELS
WHERE CUBE_NAME = 'YourTargetCube' -- 替换为你的多维数据集名称
  AND LEVEL_NUMBER > 0 -- 排除维度本身的顶级层级,只返回具体属性
ORDER BY DimensionName, LEVEL_NAME;

结合你的Extended Events数据做匹配

拿到维度和度量值列表后,你就可以和临时表#List里的TextData做关联分析了。比如下面的示例可以找出所有调用了目标度量值的事件:

SELECT
  l.TraceFileName,
  l.TraceEvent,
  l.TextData,
  m.MeasureName
FROM #List l
JOIN (
  SELECT MEASURE_NAME FROM $SYSTEM.MDSCHEMA_MEASURES WHERE CUBE_NAME = 'YourTargetCube'
) m ON CHARINDEX(m.MeasureName, l.TextData) > 0;

如果要匹配维度属性,只需要把JOIN子查询换成维度属性的查询结果即可。

内容的提问来源于stack exchange,提问作者Shoaib Maroof

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:57:16