DAX 和 Power Query(或 M)有啥区别?
Posted
技术标签:
【中文标题】DAX 和 Power Query(或 M)有啥区别?【英文标题】:What's the difference between DAX and Power Query (or M)?DAX 和 Power Query(或 M)有什么区别? 【发布时间】:2017-01-30 16:02:47 【问题描述】:我已经在 Power BI 上工作了一段时间,当我浏览它的帮助主题时,我经常感到困惑。他们经常提到用作 DAX 函数或 Power Query 的函数和公式,但我无法区分这两者之间的区别。请指导我。
【问题讨论】:
对不起@teylyn。我离开 *** 有一段时间了。谢谢你的回答。 这也很有帮助 Main differences between DAX Vs M Language 【参考方案1】:M 和 DAX 是两种完全不同的语言。
M 用于 Power Query(在 Excel 2016 中也称为 Get & Transform)和 Power BI Desktop 的查询工具。它的功能和语法与 Excel 工作表函数有很大不同。 M 是一种混搭查询语言,用于查询大量数据源。它包含转换数据的命令,并且可以将查询和转换的结果返回到 Excel 表或 Excel 或 Power BI 数据模型。
更多关于 M 的信息可以通过here 和您最喜欢的搜索引擎找到。
DAX 代表数据分析表达式。 DAX 是 Power Pivot 和 Power BI Desktop 中使用的公式语言。 DAX 使用函数处理存储在表中的数据。一些 DAX 函数与 Excel 工作表函数相同,但 DAX 具有更多函数来汇总、切片和切块复杂的数据场景。
如果您知道如何使用搜索引擎,有很多 DAX 教程和学习资源。或者启动here。
本质上:首先你使用 Power Query (M) 来查询数据源,清理和加载数据。然后使用 DAX 分析 Power Pivot 中的数据。最后,使用 Power BI 构建数据透视表 (Excel) 或数据可视化。
【讨论】:
【参考方案2】: M 是该过程的第一步,将数据输入模型。(在 PowerBI 中)当您右键单击数据集并选择 Edit Query
时,您正在使用 M(也称为 Power Query)。在编辑窗口的标题栏中有一个提示,上面写着Power Query Editor
。 (但您必须知道 M 和 PowerQuery 本质上是一回事)。此外(显然?)当您单击获取数据按钮时,这会为您生成 M 代码。
两种语言之间有很多交叉点(例如,您可以在两种语言中添加列和合并表) - 关于何时选择 here 和 here 的一些讨论
【讨论】:
我不知道我会将 M 和 Power Query 称为同一件事。在我看来,Power Query 之于 M 就像 Excel 公式/数据透视表/Vlookups 之于 VBA。您可以使用 Power Query,而无需每次都编写 M 'code',但您也可以只编写 M 'code' 以在 Power Query 中实现您想要的任何内容。 @TylerH 您的比较并不正确。使用 Power Query 时,会生成 M 代码。每次。没有 M 就没有 Power Query。PQ 编辑器本身就是一个 M 代码记录器,您不必实际键入 M 代码来生成它。在 Excel 中,你可以在没有 VBA 的情况下做很多事情。 @teylyn 当我说“你甚至可以不用写 M 就可以使用 Power Query”时,我的意思是——你不必手动写 M。 @TylerH 你说 PQ 对 M 就像 Excel 公式/数据透视对 VBA 一样。那是错的。您无需编写或生成 VBA 即可拥有 Excel 公式/数据透视表。没有 M 就不能有 PQ。【参考方案3】:将 Power Query / M 视为 ETL 语言,用于在 Power BI 和/或 Excel 中格式化和存储物理表。然后将 DAX 视为您将在从源中查询数据后使用的语言,然后您将使用它来计算总数、执行分析和执行其他功能。
M(Power Query):查询时间转换在您提取数据时调整数据 DAX:内存中转换在您提取数据后分析数据【讨论】:
【参考方案4】:另一件值得一提的关于性能优化的事情是,您应该尽可能地“修剪”数据集(删除行/删除列)——数据处理序列的“上游”;这意味着此类操作在 Power Query 中比 DAX 做得更好;来自 MS 的一些进一步建议:https://docs.microsoft.com/en-us/power-bi/power-bi-reports-performance
【讨论】:
虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review以上是关于DAX 和 Power Query(或 M)有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
使用 T-SQL、DAX 或 M Query 在值更改后创建 StartDate 和 EndDate 列