EVALUATEANDLOG
첫 번째 인수의 값을 반환하고 DAX 평가 로그 프로파일러 이벤트에 기록합니다. 이 함수는 Power BI Desktop에서만 완벽하게 작동합니다. 다른 환경에서는 간단한 통과 함수 역할을 합니다.
통사론
EVALUATEANDLOG(<Value>, [Label], [MaxRows])
매개 변수
학기 | 정의 |
---|---|
Value |
계산 및 기록할 스칼라 식 또는 테이블 식입니다. |
Label |
(선택 사항) 함수 호출의 인스턴스를 쉽게 식별하는 데 사용할 수 있는 DAX Evaluation Log 이벤트의 json 텍스트와 Label 열 모두에 포함된 상수 문자열입니다. |
MaxRows |
(선택 사항) 첫 번째 인수가 테이블 식인 경우 DAX Evaluation Log 이벤트의 json 텍스트에 있는 최대 행 수입니다. 기본값은 10입니다. |
반환 값
첫 번째 인수의 값입니다.
DAX 평가 로그 프로파일러 이벤트에 기록된 JSON 구조에는 다음이 포함됩니다.
-
expression
첫 번째 인수의 텍스트 버전입니다. -
label
식에 지정된 경우 Label 매개 변수입니다. -
inputs
첫 번째 인수의 값에 영향을 주는 평가 컨텍스트의 열 목록입니다. -
outputs
첫 번째 인수가 스칼라 식이고 첫 번째 인수가 테이블 식인 경우 출력 열 목록인 경우 단일 열 [Value]의 목록입니다. -
data
첫 번째 인수가 스칼라 식인 경우의 입력 값 및 출력 값 목록이며, 첫 번째 인수가 테이블 식인 경우 입력 값 및 해당 출력 행의 목록입니다. -
rowCount
첫 번째 인수가 테이블 식인 경우의 행 수입니다. json 출력의 행 수가 MaxRows 매개 변수에 의해 잘리더라도 rowCount는 잘리지 않은 행의 실제 수입니다.
발언
추적 이벤트는 SQL Server Profiler 및 오픈 소스 DAX 디버그 출력 도구를 사용하여 캡처할 수 있습니다.
이 함수는 DAX 식의 거의 모든 하위 식과 함께 사용할 수 있으며 전체 식은 여전히 유효합니다.
첫 번째 인수가 단일 쿼리에서 여러 번 평가되면 함수는 입력 값과 해당 출력 값을 모두 포함하는 단일 DAX 평가 로그 이벤트를 생성합니다.
레이블 매개 변수를 지정하면 해당 값은 json 출력과 DAX Evaluation Log 이벤트의 Label 열 모두에서 반환됩니다.
첫 번째 인수가 테이블 식인 경우 상위 MaxRows 행만 DAX 평가 로그 이벤트에 표시됩니다.
경우에 따라 이 함수는 최적화로 인해 실행되지 않습니다.
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"
}
]
}