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

从here偷来的照片
使用DAX似乎非常诱人。对于DAX,代码是简短而清晰的:
IDList = DISTINCT(
UNION(
DISTINCT(Table1[ID])
,DISTINCT(Table2[ID])
))此外,DAX表不需要作为M表加载。然而,我想知道DAX比M的优势是否是虚幻的?M似乎加载了一次,DAX似乎是动态计算的,也许在任何时候,一遍又一遍?
发布于 2019-07-17 11:42:26
如果从DAX中提取数据的任何表以任何方式刷新或更新,则重新计算DAX计算表。(来自https://learn.microsoft.com/en-us/power-bi/desktop-calculated-tables )
他们不是重新计算“在飞行”,也不是“一遍又一遍”。Power数据模型的刷新周期在使用DAX计算表或M查询表时没有区别。但是,您可能会发现DAX计算的表刷新速度比M快,这取决于表的复杂性。
发布于 2019-07-17 14:19:08
考虑M个表、M个条件列、M个自定义列、DAX表、DAX计算列和DAX度量。只有DAX度量的是动态创建的,而不是数据模型的一部分。
因此,对于一个简单的桥表,DAX表和M表之间没有真正的优势。
这两个表都允许创建关系。现在,当我说简单桥表时,它是从2或3个表创建的,并使用相同的列与两个或多个表建立关系。
但是,当需求变得复杂和敏捷时(随着时间的推移),如果由DAX创建的话,维护和开发工作也会增加。(我个人的观点,我认为大多数人的个人观点也是如此。)
如果它是由M创建的,那么根据逻辑添加一个新的列或过滤器或者替换一个现有的值就更容易了。
回到拇指规则:- ,如果它是由DAX创建的,那么M就不能在其之上进行更改。因此,如果桥表是由DAX创建的,那么它将不会出现在查询编辑器中,并限制GUI的优点,以便在数据中进行任何所需的简单转换。
对于一个简单的桥表:- DAX。
但对于一个复杂且不断变化的需求:- M。
https://stackoverflow.com/questions/57074718
复制相似问题