EVALUATEANDLOG
返回 first 参数的 valueand 记录在 DAX 评估 Log 探查器事件中。 此函数仅在 Power BI Desktop 中完全正常运行。 它在其他环境中充当简单的直通函数。
语法
EVALUATEANDLOG(<Value>, [Label], [MaxRows])
参数
术语 | 定义 |
---|---|
Value |
要 and 记录 or 表表达式的任何标量表达式。 |
Label |
(可选)json 文本中包含的常量字符串 andDAX 评估 Log 事件的 Label 列,可用于轻松标识函数调用的实例。 |
MaxRows |
(可选)当 first 参数为表表达式时,DAX Evaluation Log 事件的 json 文本中的最大行数。 默认值为 10。 |
返回 value
first 参数的 value。
在 DAX 评估 Log 探查器事件中记录的 JSON 结构包括:
-
expression
是 first 参数的文本版本。 -
label
是在表达式中指定的 Label 参数。 -
inputs
是评估上下文中影响 first 参数 values 的列的列表。 - 当 first 参数是表表达式时,
outputs
是单个列 [Value] 的列表,and 输出列的列表 first。 - 当 first 参数是标量表达式时,
data
是输入 valuesand 输出 values 的列表,当 first 参数是表表达式时,and 输入 valuesand 相应的输出行的列表。 - 当 first 参数是表表达式时,
rowCount
行数。 Even 尽管 json 输出中的行数被 MaxRows 参数截断,但 rowCount 是没有截断的实际行数。
言论
可以使用 SQL Server Profilerand 开源 DAX 调试输出 工具捕获跟踪事件。
此函数可与 DAX 表达式中的几乎所有子表达式一起使用,and 整个表达式仍将有效。
在单个查询中多次计算 first 参数时,该函数将生成单个 DAX 计算 Log 事件,该事件 contains 输入 valuesand 相应的输出 values。
指定标签参数后,value 在 json 输出中返回 andDAX 评估 Log 事件的 Label 列。
If first 参数是表表达式,DAX Evaluation Log 事件中仅显示顶部的 MaxRows 行。
在某些情况下,由于优化,此函数 not 执行。
If DAX 评估 Log 事件大于 100 万个字符,则会截断以保留正确的 json 结构。
示例 1
以下 DAX 查询:
evaluate
SUMMARIZE(
EVALUATEANDLOG(FILTER(Sales, [ProductKey] = 528)),
Sales[SalesTerritoryKey],
"sum",
sum(Sales[Sales Amount])
)
返回以下 DAX 评估 Log 事件:
{
"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 具有标量参数的查询 and 不同的属性:
evaluate
SELECTCOLUMNS(
TOPN(5, Customer),
[Customer],
"Customer",
EVALUATEANDLOG([Customer] & ", " & [Country-Region], "customerLog")
)
返回以下 DAX 评估 Log 事件:
{
"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"
}
]
}