桥接表 - DAX 还是 M 语言?

3

我们应该使用DAX还是M来构建桥接表?

enter image description here

图片来源于这里

使用DAX似乎非常诱人。使用DAX可以使代码简短而清晰:

IDList = DISTINCT(
    UNION(
         DISTINCT(Table1[ID]) 
        ,DISTINCT(Table2[ID])
        ))

此外,DAX表不需要作为M表进行加载。但是,我想知道DAX相比M的优势是否是虚幻的?M似乎只需加载一次而DAX似乎需要实时计算,可能随时反复计算?
2个回答

2
DAX计算表会在其所提取数据的任何表格被刷新或更新时重新计算。(来源于https://learn.microsoft.com/en-us/power-bi/desktop-calculated-tables
它们不是“即时”或“反复”重新计算的。在使用DAX计算表或M查询表时,对于Power BI数据模型的刷新周期没有区别。但是,您可能会发现,根据表格的复杂性,DAX计算表比M表格刷新更快...

1
考虑到M表、M条件列、M自定义列、DAX表、DAX计算列和DAX度量值。只有DAX度量值是即时创建的,不属于数据模型的一部分。
因此,对于简单的桥接表,DAX表和M表之间没有真正的优势。
两个表都允许创建关系。现在,当我说简单的桥接表时,它是由2或3个表创建的,并使用相同的列与两个或多个表建立关系。
但是,当需求变得复杂和敏捷(随着时间的推移而增长),如果是由DAX创建,则维护和开发工作量也会增加。(这是我的个人意见,我认为大多数人的个人意见也是如此。)
如果是由M创建的,则更容易添加新列或基于逻辑进行过滤或替换现有值。
回到拇指规则:如果是由DAX创建的,则无法在其上使用M进行更改。因此,如果桥接表是由DAX创建的,则它不会出现在查询编辑器中,并限制了GUI在数据中进行任何所需的简单转换的优势。

对于一个简单的桥接表:DAX。

但对于复杂且变化频繁的需求:M。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接