Udostępnij za pośrednictwem


EVALUATEANDLOG

Dotyczy:kolumna obliczeniowatabela obliczeniowaMeasureobliczenia wizualne

Zwraca value argumentu first, and rejestruje go w zdarzeniu profilera oceny DAXLog. Ta funkcja jest w pełni funkcjonalna tylko w programie Power BI Desktop. Działa jako prosta funkcja przekazywania w innych środowiskach.

Składnia

EVALUATEANDLOG(<Value>, [Label], [MaxRows])

Parametry

Termin Definicja
Value Każde wyrażenie skalarne or wyrażenie tabeli do obliczenia and zarejestrowane.
Label (Opcjonalnie) Ciąg stały zawarty w tekście json and kolumnę Label zdarzenia DAX Evaluation Log, które może służyć do łatwego identyfikowania wystąpienia wywołania funkcji.
MaxRows (Opcjonalnie) Maksymalna liczba wierszy w tekście json zdarzenia DAX Evaluation Log, gdy argument first jest wyrażeniem tabeli. Wartość domyślna to 10.

Zwracanie value

value argumentu first.

Struktura JSON zarejestrowana w zdarzeniu profilera oceny DAXLog obejmuje:

  • expression to wersja tekstowa argumentu first.
  • label jest parametrem Label po określeniu w wyrażeniu.
  • inputs to lista kolumn w kontekście oceny, która ma wpływ na values argumentu first.
  • outputs jest listą jednej kolumny [Value], gdy argument first jest wyrażeniem skalarnym and listy kolumn wyjściowych, gdy argument first jest wyrażeniem tabeli.
  • data jest listą danych wyjściowych valuesand wejściowych values, gdy argument first jest wyrażeniem skalarnym, and listę wierszy wejściowych valuesand odpowiadających im wierszy wyjściowych, gdy argument first jest wyrażeniem tabeli.
  • rowCount to liczba wierszy, gdy argument first jest wyrażeniem tabeli. Even choć liczba wierszy w danych wyjściowych json jest obcięta przez parametr MaxRows, rowCount jest rzeczywistą liczbą wierszy bez obcinania.

Uwagi

  • Zdarzenia śledzenia można przechwycić przy użyciu narzędzia SQL Server ProfilerandDAX debugowania danych wyjściowych typu open source.

  • Ta funkcja może być używana z niemal dowolnym wyrażeniem podrzędnym w wyrażeniu DAX, and całe wyrażenie będzie nadal prawidłowe.

  • Gdy argument first jest obliczany wiele razy w jednym zapytaniu, funkcja generuje pojedyncze zdarzenie Log oceny DAX, które contains zarówno dane wejściowe valuesand odpowiednie dane wyjściowe values.

  • Po określeniu parametru etykiety jego value jest zwracany zarówno w danych wyjściowych json, and kolumnie Label zdarzenia DAX Evaluation Log.

  • If argumentem first jest wyrażeniem tabeli, tylko pierwsze wiersze MaxRows są wyświetlane w zdarzeniu DAX Evaluation Log.

  • W niektórych przypadkach ta funkcja jest not wykonywana z powodu optymalizacji.

  • If zdarzenie Log oceny DAX jest większe niż milion znaków, jest obcinane, aby zachować poprawną strukturę json.

Przykład 1

Następujące zapytanie DAX:

evaluate
SUMMARIZE(
    EVALUATEANDLOG(FILTER(Sales, [ProductKey] = 528)),
    Sales[SalesTerritoryKey],
    "sum",
    sum(Sales[Sales Amount])
)

Zwraca następujące zdarzenie Log oceny 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]
            ]
        }
    ]
}

Przykład 2

Następujące zapytanie DAX z argumentem skalarnym and różnych atrybutów:

evaluate
SELECTCOLUMNS(
    TOPN(5, Customer),
    [Customer],
    "Customer",
    EVALUATEANDLOG([Customer] & ", " & [Country-Region], "customerLog")
)

Zwraca następujące zdarzenie Log oceny 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"
        }
    ]
}

TOCSV TOJSON