【问题标题】:How to find lineage between SSAS (Tabular Model) and SQL database如何查找 SSAS(表格模型)和 SQL 数据库之间的沿袭
【发布时间】:2019-03-08 03:20:10
【问题描述】:

我们有 20 多个具有 300 多个维度的表格多维数据集,并希望找到 - 如果有一些自动方法可以找到该维度的来源

是的,我可以手动进入表格模型>表格属性,然后可以找到用于填充维度的视图和表格。但是实际上不可能获得 300 多个维度。

是的,我知道一些第 3 方提供商,例如 SQL Sentry 有一些工具可以找到该血统。

但只是想知道,是否有任何 SSAS DMV 或任何其他脚本可以提供这些详细信息?

非常感谢您的帮助

注意:环境是 On-Prem Microsoft SQL 2016 套件(SQL DB、SSAS 和 SSIS)

【问题讨论】:

    标签: sql-server ssas


    【解决方案1】:

    对于兼容级别 1200 或更高的 Tabublar 模型,$SYSTEM.TMSCHEMA_PARTITIONS DMV 的 QueryDefinition 列将显示每个分区的源 SQL 语句,如果未分区,则显示整个维度/事实表。如果使用完整的表或视图名称(而不是查询),则将显示完整的 SELECT 语句和对象名称。这可以通过连接到 SSAS 服务器并打开新的 MDX/DAX 查询窗口或其他工具(例如 Dax Studio)从 SSMS 进行查询。此 DMV 特定于您连接到的任何模型,而不是整个 SSAS 实例。在下面的示例中,Name 列是模型中维度的名称。由于Name 是关键字,因此需要用括号括起来。

    SELECT QueryDefinition FROM $SYSTEM.TMSCHEMA_PARTITIONS WHERE [Name] = 'DimensionName'
    

    【讨论】:

    • 非常感谢。是的,它提供了我们在维度中使用的视图名称和查询。但是不提供表格维度名称。例如:它通过查询 TMSCHEMA_Partitions 将维度名称指定为 VW_Suppliers,而在表格中我们将其称为 DimSupplier。
    • 我注意到通过查询 $SYSTEM.TMSCHEMA_PARTITIONS,我们得到了 ID 和 TableID。而且我认为,TableID 将指示维度名称,那么是否有任何其他 DMV 可以提供表格中的维度名称和暗淡名称别名
    • $SYSTEM.TMSCHEMA_PARTITIONS 中的“名称”列是维度/事实表的名称。如果这是分区的,那么每个分区的名称将在此列中。如果有帮助,请尝试 SELECT * 查看所有列。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多