Condividi tramite


EVALUATEANDLOG

Si applica a:colonna calcolatatabella calcolataMeasurecalcolo visivo

Restituisce il value dell'argomento firstand lo registra in un evento profiler DAX Evaluation Log. Questa funzione è completamente funzionale solo in Power BI Desktop. Funge da semplice funzione pass-through in altri ambienti.

Sintassi

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

Parametri

Termine Definizione
Value Qualsiasi espressione scalare or espressione di tabella da valutare and registrato.
Label (Facoltativo) Stringa costante inclusa sia nel testo JSON and la colonna Label dell'evento DAX Evaluation Log che può essere usata per identificare facilmente un'istanza della chiamata di funzione.
MaxRows (Facoltativo) Numero massimo di righe nel testo json dell'evento Log evaluation DAX quando l'argomento first è un'espressione di tabella. Il valore predefinito è 10.

Restituisce value

value dell'argomento first.

La struttura JSON registrata in un evento DAX Evaluation Log profiler include:

  • expression è la versione di testo dell'argomento first.
  • label è il parametro Label se specificato nell'espressione.
  • inputs è un elenco di colonne nel contesto di valutazione che influisce sul values dell'argomento first.
  • outputs è un elenco di una singola colonna [Value] quando l'argomento first è un'espressione scalare and un elenco di colonne di output quando l'argomento first è un'espressione di tabella.
  • data è un elenco di values di output di input valuesand quando l'argomento first è un'espressione scalare, and un elenco di valuesand righe di output corrispondenti quando l'argomento first è un'espressione di tabella.
  • rowCount è il numero di righe quando l'argomento first è un'espressione di tabella. Even anche se il numero di righe nell'output JSON viene troncato dal parametro MaxRows, rowCount è il numero reale di righe senza troncamento.

Osservazioni

  • Gli eventi di traccia possono essere acquisiti usando SQL Server Profilerand lo strumento open source DAX Debug Output.

  • Questa funzione può essere usata con quasi qualsiasi sottoespressione in un'espressione DAX, and l'intera espressione sarà ancora valida.

  • Quando l'argomento first viene valutato più volte in una singola query, la funzione genera un singolo evento di DAX Evaluation Log che contains sia l'input valuesand l'output corrispondente values.

  • Quando si specifica il parametro label, il relativo value viene restituito sia nell'output json and nella colonna Label dell'evento DAX Evaluation Log.

  • If'argomento first è un'espressione di tabella, nell'evento DAX Evaluation Log vengono visualizzate solo le prime righe MaxRows.

  • In alcuni casi, questa funzione viene not eseguita a causa di ottimizzazioni.

  • If l'evento Log Evaluation DAX è maggiore di un milione di caratteri, viene troncato per mantenere la struttura JSON corretta.

Esempio 1

La query di DAX seguente:

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

Restituisce l'evento Log Evaluation DAX seguente:

{
    "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]
            ]
        }
    ]
}

Esempio 2

La query di DAX seguente con un argomento scalare and attributi variabili:

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

Restituisce l'evento Log Evaluation DAX seguente:

{
    "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