Condividi tramite


EVALUATEANDLOG

Si applica a:colonna calcolatatabella calcolata calcolo visivomisura

Restituisce il valore del primo argomento e lo registra in un evento del profiler del log di valutazione DAX. 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 o espressione di tabella da valutare e registrare.
Label (Facoltativo) Stringa costante inclusa sia nel testo json che nella 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 DAX Evaluation Log quando il primo argomento è un'espressione di tabella. Il valore predefinito è 10.

Valore restituito

Valore del primo argomento.

La struttura JSON registrata in un evento del profiler di valutazione DAX include:

  • expression è la versione di testo del primo argomento.
  • label è il parametro Label se specificato nell'espressione.
  • inputs è un elenco di colonne nel contesto di valutazione che influisce sui valori del primo argomento.
  • outputs è un elenco di una singola colonna [Valore] quando il primo argomento è un'espressione scalare e un elenco di colonne di output quando il primo argomento è un'espressione di tabella.
  • data è un elenco di valori di input e valori di output quando il primo argomento è un'espressione scalare e un elenco di valori di input e le righe di output corrispondenti quando il primo argomento è un'espressione di tabella.
  • rowCount è il numero di righe quando il primo argomento è un'espressione di tabella. 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 Profiler e lo strumento di output di debug open source.

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

  • Quando il primo argomento viene valutato più volte in una singola query, la funzione genera un singolo evento del log di valutazione DAX che contiene sia i valori di input che i valori di output corrispondenti.

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

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

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

  • Se l'evento del log di valutazione 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 seguente DAX Evaluation 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]
            ]
        }
    ]
}

Esempio 2

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

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

Restituisce l'evento seguente DAX Evaluation 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"
        }
    ]
}

TOCSV TOJSON