EVALUATEANDLOG
返回第一个参数的值,并将其记录在 DAX 评估日志探查器事件中。 此函数仅在 Power BI Desktop 中完全正常运行。 它在其他环境中充当简单的直通函数。
语法
EVALUATEANDLOG(<Value>, [Label], [MaxRows])
参数
术语 | 定义 |
---|---|
Value |
要计算和记录的任何标量表达式或表表达式。 |
Label |
(可选)json 文本中包含的常量字符串和 DAX 评估日志事件的 Label 列,可用于轻松标识函数调用的实例。 |
MaxRows |
(可选)当第一个参数是表表达式时,DAX 计算日志事件的 json 文本中的最大行数。 默认值为 10。 |
返回值
第一个参数的值。
DAX 评估日志探查器事件中记录的 JSON 结构包括:
-
expression
是第一个参数的文本版本。 -
label
是在表达式中指定的 Label 参数。 -
inputs
是影响第一个参数值的计算上下文中的列的列表。 - 当第一个参数是标量表达式时,
outputs
是单个列 [Value] 的列表,第一个参数是表表达式时输出列的列表。 - 当第一个参数是标量表达式时,
data
是输入值和输出值的列表,第一个参数是表表达式时输入值和相应的输出行的列表。 - 当第一个参数是表表达式时,
rowCount
行数。 即使 json 输出中的行数被 MaxRows 参数截断,rowCount 也是没有截断的实际行数。
言论
可以使用 SQL Server Profiler 和开源 DAX 调试输出 工具捕获跟踪事件。
此函数可用于 DAX 表达式中几乎任何子表达式,整个表达式仍将有效。
在单个查询中多次计算第一个参数时,该函数将生成一个 DAX 评估日志事件,其中包含输入值和相应的输出值。
指定标签参数后,其值将同时在 json 输出和 DAX 评估日志事件的 Label 列中返回。
如果第一个参数是表表达式,则 DAX 评估日志事件中仅显示顶部的 MaxRows 行。
在某些情况下,由于优化,此函数不会执行。
如果 DAX 评估日志事件大于 100 万个字符,则会截断以保留正确的 json 结构。
示例 1
以下 DAX 查询:
evaluate
SUMMARIZE(
EVALUATEANDLOG(FILTER(Sales, [ProductKey] = 528)),
Sales[SalesTerritoryKey],
"sum",
sum(Sales[Sales Amount])
)
返回以下 DAX 评估日志事件:
{
"expression": "FILTER(Sales, [ProductKey] = 528)",
"inputs": [],
"outputs": ["'Sales'[SalesOrderLineKey]", "'Sales'[ResellerKey]", "'Sales'[CustomerKey]", "'Sales'[ProductKey]", "'Sales'[OrderDateKey]", "'Sales'[DueDateKey]", "'Sales'[ShipDateKey]", "'Sales'[SalesTerritoryKey]", "'Sales'[Order Quantity]", "'Sales'[Unit Price]", "'Sales'[Extended Amount]", "'Sales'[Product Standard Cost]", "'Sales'[Total Product Cost]", "'Sales'[Sales Amount]", "'Sales'[Unit Price Discount Pct]"],
"data": [
{
"input": [],
"rowCount": 3095,
"output": [
[52174001, -1, 23785, 528, 20190707, 20190717, 20190714, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[52173001, -1, 26278, 528, 20190707, 20190717, 20190714, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[52082001, -1, 23831, 528, 20190705, 20190715, 20190712, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[52054002, -1, 11207, 528, 20190704, 20190714, 20190711, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[52036001, -1, 25337, 528, 20190704, 20190714, 20190711, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[51939002, -1, 23670, 528, 20190702, 20190712, 20190709, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[51911002, -1, 11746, 528, 20190701, 20190711, 20190708, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[51379003, -1, 13745, 528, 20190612, 20190622, 20190619, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[51264002, -1, 11282, 528, 20190605, 20190615, 20190612, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[51184003, -1, 11263, 528, 20190531, 20190610, 20190607, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0]
]
}
]
}
示例 2
以下 DAX 具有标量参数和不同属性的查询:
evaluate
SELECTCOLUMNS(
TOPN(5, Customer),
[Customer],
"Customer",
EVALUATEANDLOG([Customer] & ", " & [Country-Region], "customerLog")
)
返回以下 DAX 评估日志事件:
{
"expression": "[Customer] & \", \" & [Country-Region]",
"label": "customerLog",
"inputs": ["'Customer'[Customer]", "'Customer'[Country-Region]"],
"data": [
{
"input": ["Russell Xie", "United States"],
"output": "Russell Xie, United States"
},
{
"input": ["Savannah Baker", "United States"],
"output": "Savannah Baker, United States"
},
{
"input": ["Maurice Tang", "United States"],
"output": "Maurice Tang, United States"
},
{
"input": ["Emily Wood", "United States"],
"output": "Emily Wood, United States"
},
{
"input": ["Meghan Hernandez", "United States"],
"output": "Meghan Hernandez, United States"
}
]
}