Esplora dati di Azure (Kusto)

Riepilogo

Articolo Descrizione
Stato di rilascio Disponibilità generale
Prodotti Excel
Power BI (modelli semantici)
Power BI (flussi di dati)
Infrastruttura (Dataflow Gen2)
Power Apps (flussi di dati)
Dynamics 365 per Customer Insights
Tipi di autenticazione supportati Account dell'organizzazione
Documentazione di riferimento sulle funzioni

Nota

Alcune funzionalità possono essere presenti in un prodotto, ma non altre a causa di pianificazioni di distribuzione e funzionalità specifiche dell'host.

Prerequisiti

Capacità supportate

  • Import
  • DirectQuery (modelli semantici di Power BI)
  • Opzioni avanzate
    • Limitare il numero di record dei risultati della query
    • Limitare le dimensioni dei dati dei risultati della query in byte
    • Disabilitare il troncamento del set di risultati
    • Istruzioni set aggiuntive

Connessione ad Azure Esplora dati da Power Query Desktop

Per connettersi ad Azure Esplora dati da Power Query Desktop:

  1. Selezionare Azure Esplora dati (Kusto) nell'esperienza di recupero dei dati. L'esperienza di recupero dei dati in Power Query Desktop varia a seconda delle app. Per altre informazioni sull'esperienza dati di Power Query Desktop per l'app, vedere Dove ottenere i dati.

  2. In Azure Esplora dati (Kusto) specificare il nome del cluster Esplora dati di Azure. Per questo esempio, usare https://help.kusto.windows.net per accedere al cluster della Guida di esempio. Per altri cluster, l'URL è nel formato https://< ClusterName.<>Region.kusto.windows.net>.

    È anche possibile selezionare un database ospitato nel cluster a cui ci si connette e una delle tabelle nel database oppure una query come StormEvents | take 1000.

  3. Se si vogliono usare opzioni avanzate, selezionare l'opzione e immettere i dati da usare con tale opzione. Altre informazioni: Connessione usando le opzioni avanzate

    Nota

    Potrebbe essere necessario scorrere verso il basso per visualizzare tutte le opzioni avanzate e la selezione della connettività dei dati.

  4. Selezionare la modalità di connettività dati Importa o DirectQuery (solo Power BI Desktop). Altre informazioni: Quando usare la modalità Importazione o Query diretta

  5. Seleziona OK per continuare.

    Screenshot della finestra di dialogo Azure Esplora dati (Kusto) con l'URL del cluster immesso.

  6. Se non si ha già una connessione al cluster, selezionare Accedi. Accedere con un account aziendale e quindi selezionare Connetti.

    Screenshot della finestra di dialogo di accesso per Azure Esplora dati, con l'account aziendale pronto per l'accesso.

  7. In Strumento di navigazione selezionare le informazioni sul database desiderate, quindi selezionare Carica per caricare i dati o Trasforma dati per continuare a trasformare i dati nell'editor di Power Query. In questo esempio StormEvents è stato selezionato nel database Samples.

    Screenshot dello strumento di navigazione aperto e contenente i dati di StormEvents nel database Samples.

Connessione ad Azure Esplora dati da Power Query Online

Per connettersi ad Azure Esplora dati da Power Query Online:

  1. Selezionare l'opzione Azure Esplora dati (Kusto) nell'esperienza di recupero dei dati. Diverse app hanno diversi modi per ottenere l'esperienza dei dati in Power Query Online. Per altre informazioni su come accedere a Power Query Online, vedere Dove ottenere i dati dall'app.

    Screenshot della finestra Recupera dati con Azure Esplora dati sottolineato.

  2. In Connessione all'origine dati specificare il nome del cluster Esplora dati di Azure. Per questo esempio, usare https://help.kusto.windows.net per accedere al cluster della Guida di esempio. Per altri cluster, l'URL è nel formato https://< ClusterName.<>Region.kusto.windows.net>.

    È anche possibile selezionare un database ospitato nel cluster a cui ci si connette e una delle tabelle nel database oppure una query come StormEvents | take 1000.

    Screenshot della pagina Scegli origine dati per Azure Esplora dati (Kusto), con l'URL per il cluster immesso.

  3. Se si vogliono usare opzioni avanzate, selezionare l'opzione e immettere i dati da usare con tale opzione. Altre informazioni: Connessione usando le opzioni avanzate

  4. Se necessario, selezionare il gateway dati locale in Gateway dati.

  5. Se non si ha già una connessione al cluster, selezionare Accedi. Accedere con un account aziendale.

  6. Dopo aver eseguito l'accesso, selezionare Avanti.

  7. Nella pagina Scegli dati selezionare le informazioni sul database desiderate, quindi selezionare Trasforma dati oppure Avanti per continuare a trasformare i dati nell'editor di Power Query. In questo esempio StormEvents è stato selezionato nel database Samples.

    Screenshot della pagina Scegli dati contenente i dati di StormEvents nel database Samples.

Connessione con opzioni avanzate

Power Query Desktop e Power Query Online offrono un set di opzioni avanzate che è possibile aggiungere alla query, se necessario.

La tabella seguente elenca tutte le opzioni avanzate che è possibile impostare in Power Query Desktop e Power Query Online.

Opzione Avanzate Descrizione
Limitare il numero di record dei risultati della query Numero massimo di record da restituire nel risultato.
Limitare le dimensioni dei dati dei risultati della query in byte Dimensione massima dei dati in byte da restituire nel risultato.
Disabilitare il troncamento del set di risultati Abilitare o disabilitare il troncamento dei risultati usando l'opzione notruncation di richiesta.
Istruzioni Set aggiuntive Imposta le opzioni di query per la durata della query. Le opzioni della query controllano come una query viene eseguita e restituisce i risultati. È possibile separare più istruzioni Set da punto e virgola.

Per informazioni sulle opzioni avanzate aggiuntive non disponibili nell'interfaccia utente di Power Query, vedere Configuring Azure Esplora dati connector options in an M Query (Configurazione delle opzioni del connettore di Azure Esplora dati in una query M).

Quando usare la modalità Importazione o Query diretta

In modalità importazione i dati vengono spostati in Power BI. In modalità DirectQuery, i dati vengono sottoposti a query direttamente dal cluster.

Usare la modalità importazione quando:

  • Il set di dati è di piccole dimensioni.
  • Non sono necessari dati quasi in tempo reale.
  • I dati sono già aggregati o si eseguono aggregazioni in Kusto.

Usare la modalità DirectQuery quando:

  • Il set di dati è molto grande.
  • Sono necessari dati quasi in tempo reale.

Per altre informazioni sull'uso di DirectQuery, vedere Informazioni sull'uso di DirectQuery in Power BI.

Suggerimenti per l'uso del connettore Esplora dati di Azure per eseguire query sui dati

Le sezioni seguenti includono suggerimenti e consigli per l'uso del linguaggio di query Kusto con Power Query.

Query complesse in Power BI

Le query complesse sono più facilmente espresse in Kusto rispetto a Power Query. Devono essere implementati come funzioni Kusto e richiamati in Power BI. Questo metodo è obbligatorio quando si usa DirectQuery con let istruzioni nella query Kusto. Poiché Power BI unisce due query e let le istruzioni non possono essere usate con l'operatore join , potrebbero verificarsi errori di sintassi. Di conseguenza, salvare ogni parte del join come funzione Kusto e consentire a Power BI di unire queste due funzioni.

Come simulare un operatore di data e ora relativa

Power Query non contiene un operatore di data e ora relativa , ago()ad esempio . Per simulare ago(), usare una combinazione di funzioni DateTime.FixedLocalNow e #duration di Power Query M.

Anziché questa query usando l'operatore ago() :

    StormEvents | where StartTime > (now()-5d)
    StormEvents | where StartTime > ago(5d)

Usare la query equivalente seguente:

let
    Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", []),
    #"Filtered Rows" = Table.SelectRows(Source, each [StartTime] > (DateTime.FixedLocalNow()-#duration(5,0,0,0)))
in
    #"Filtered Rows"

Configurazione delle opzioni del connettore Esplora dati di Azure in una query M

È possibile configurare le opzioni del connettore azure Esplora dati dall'editor avanzato di Power Query nel linguaggio di query M. Usando queste opzioni, è possibile controllare la query generata inviata al cluster di azure Esplora dati.

let
    Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", [<options>])
in
    Source

È possibile usare una delle opzioni seguenti nella query M:

Opzione Esempio Descrizione
MaxRows [MaxRows=300000] Aggiunge l'istruzione truncationmaxrecords set alla query. Esegue l'override del numero massimo predefinito di record che una query può restituire al chiamante (troncamento).
MaxSize [MaxSize=4194304] Aggiunge l'istruzione truncationmaxsize set alla query. Esegue l'override delle dimensioni massime predefinite dei dati consentite a una query per tornare al chiamante (troncamento).
NoTruncate [NoTruncate=true] Aggiunge l'istruzione notruncation set alla query. Consente di eliminare il troncamento dei risultati della query restituiti al chiamante.
AdditionalSetStatements [AdditionalSetStatements="set query_datascope=hotcache"] Aggiunge le istruzioni set fornite alla query. Queste istruzioni vengono usate per impostare le opzioni di query per la durata della query. Le opzioni della query controllano come una query viene eseguita e restituisce i risultati.
CaseInsensitive [CaseInsensitive=true] Rende il connettore genera query senza distinzione tra maiuscole e minuscole. Le query usano l'operatore =~ anziché l'operatore durante il == confronto dei valori.
ForceUseContains [ForceUseContains=true] Rende il connettore genera query che usano anziché l'impostazione predefinita has quando si usano contains campi di testo. Sebbene has sia molto più efficiente, non gestisce le sottostringhe. Per altre informazioni sulla differenza tra i due operatori, vedere Operatori stringa.
Timeout [Timeout=#duration(0,10,0,0)] Configura sia il timeout client che il server della query per la durata specificata.
ClientRequestIdPrefix [ClientRequestIdPrefix="MyReport"] Configura un prefisso ClientRequestId per tutte le query inviate dal connettore. In questo modo le query possono essere identificabili nel cluster come provenienti da un report specifico e/o da un'origine dati.

Nota

È possibile combinare più opzioni per raggiungere il comportamento richiesto: [NoTruncate=true, CaseInsensitive=true]

Raggiungimento dei limiti delle query Kusto

Per impostazione predefinita, le query Kusto restituiscono fino a 500.000 righe o 64 MB, come descritto in Limiti delle query. È possibile eseguire l'override di queste impostazioni predefinite usando le opzioni avanzate nella finestra di connessione di Azure Esplora dati (Kusto):

opzioni avanzate.

Queste opzioni rilasciano istruzioni set con la query per modificare i limiti di query predefiniti:

  • Limitare il numero di record dei risultati della query genera un set truncationmaxrecords
  • Limitare le dimensioni dei dati dei risultati della query in byte genera un set truncationmaxsize
  • Disabilitare il troncamento del set di risultati genera un set notruncation

Distinzione tra maiuscole e minuscole

Per impostazione predefinita, il connettore genera query che usano l'operatore con distinzione tra maiuscole e minuscole == durante il confronto dei valori stringa. Se i dati non fanno distinzione tra maiuscole e minuscole, questo non è il comportamento desiderato. Per modificare la query generata, usare l'opzione CaseInsensitive connettore:

let
    Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", [CaseInsensitive=true]),
    #"Filtered Rows" = Table.SelectRows(Source, each [State] == "aLaBama")
in
    #"Filtered Rows"

Uso dei parametri di query

È possibile usare i parametri di query per modificare la query in modo dinamico.

Usare un parametro di query nei passaggi della query

È possibile usare un parametro di query in qualsiasi passaggio di query che lo supporti. Ad esempio, filtrare i risultati in base al valore di un parametro. In questo esempio selezionare il menu a discesa sul lato destro della State colonna nell'editor di Power Query, selezionare Filtri>di testo uguale a , quindi selezionare ALABAMA in Mantieni righe in 'Stato'.

Filtrare i risultati usando un parametro .

Fornire parametri a una funzione di Esplora dati di Azure

Le funzioni Kusto sono un ottimo modo per gestire query di Linguaggio di query Kusto complesse (KQL). È consigliabile usare funzioni invece di incorporare KQL in Power Query. Il vantaggio principale dell'uso della funzione è che la logica viene mantenuta una sola volta in un ambiente facile da creare e testare.

Le funzioni possono anche ricevere parametri e quindi aggiungere molta flessibilità all'utente di Power BI. Power BI offre molti modi per sezionare i dati. Tuttavia, tutti i filtri e i filtri dei dati vengono aggiunti dopo il KQL originale e in molti casi si vuole usare il filtro in una fase iniziale della query. L'uso di funzioni e parametri dinamici è un modo molto efficace per personalizzare la query finale.

Creazione di una funzione

È possibile creare la funzione seguente in qualsiasi cluster di Azure Esplora dati a cui si ha accesso, incluso un cluster gratuito. La funzione restituisce la tabella SalesTable dal cluster della Guida, filtrata per le transazioni di vendita maggiore o minore di un numero fornito dall'utente del report.

.create-or-alter  function LargeOrSmallSales(Cutoff:long,Op:string=">")
{
    cluster("help").database("ContosoSales").SalesTable
    | where  (Op==">" and SalesAmount >= Cutoff) or (Op=="<"  and SalesAmount <= Cutoff)
}

Dopo aver creato la funzione, è possibile testarla usando:

LargeOrSmallSales(2000,">")
| summarize Sales=tolong(sum(SalesAmount)) by Country

È anche possibile testarlo usando:

LargeOrSmallSales(20,"<")
| summarize Sales=tolong(sum(SalesAmount)) by Country
Uso della funzione in Power BI
  1. Connessione al cluster in cui è stata creata la funzione.

  2. Nello strumento di spostamento di Power Query selezionare la funzione dall'elenco di oggetti. Il connettore analizza i parametri e li presenta sopra i dati sul lato destro dello strumento di navigazione.

    Screenshot con i parametri Cutoff e Op visualizzati sopra i dati nello strumento di navigazione.

  3. Aggiungere valori ai parametri e quindi selezionare Applica.

  4. Dopo aver visualizzato l'anteprima, selezionare Trasforma dati.

  5. Una volta nell'editor di Power Query, creare due parametri, uno per il valore cutoff e uno per l'operatore.

  6. Tornare alla LargeOrSmallSales query e sostituire i valori con i parametri di query nella barra della formula.

    Screenshot con la funzione LargeOrSmallSales, con particolare attenzione ai parametri Cutoff_Param e Op_Param nella barra della formula.

  7. Nell'editor creare due tabelle statiche (Immettere dati) per fornire opzioni per i due parametri. Per il cutoff, è possibile creare una tabella con valori come 10, 50, 100, 200, 500, 1000, 2000. OpPer , una tabella con due valori < text e >.

  8. Le due colonne nelle tabelle devono essere associate ai parametri di query usando la selezione associa a parametro .

    Screenshot con op associato al parametro Op_Param.

Il report finale includerà i filtri dei dati per le due tabelle statiche ed eventuali oggetti visivi delle vendite di riepilogo.

Screenshot in Power BI con le selezioni dei valori Cutoff e Op visualizzate accanto alla tabella.

La tabella di base viene filtrata prima e quindi aggregata.

Uso di un parametro di query nei dettagli della connessione

Usare un parametro di query per filtrare le informazioni nella query e ottimizzare le prestazioni delle query.

In Editor avanzato:

  1. Trovare la sezione seguente della query:

    Source = AzureDataExplorer.Contents("<Cluster>", "<Database>", "<Query>", [])

    Ad esempio:

    Source = AzureDataExplorer.Contents("Help", "Samples", "StormEvents | where State == 'ALABAMA' | take 100", [])
    
  2. Inserire un parametro di query nella query Linguaggio di query Kusto (KQL).

    Se si incolla una query KQL direttamente nella finestra di dialogo di connessione, la query farà parte del passaggio di origine in Power Query. È possibile incorporare parametri come parte della query usando l'editor avanzato o quando si modifica l'istruzione di origine nella barra della formula. Una query di esempio può essere StormEvents | where State == ' " & State & " ' | take 100. State è un parametro e in fase di esecuzione la query sarà:

    StormEvents | where State == 'ALABAMA' | take 100

  3. Se la query contiene virgolette, codificarle correttamente. Ad esempio, la query seguente in KQL:

    "StormEvents | where State == "ALABAMA" | take 100"
    

    verrà visualizzato nel Editor avanzato come indicato di seguito con due virgolette:

     "StormEvents | where State == ""ALABAMA"" | take 100"
    

    Se si usa un parametro, ad esempio State, deve essere sostituito con la query seguente, che contiene tre virgolette:

    "StormEvents | where State == """ & State & """ | take 100"
    

Usare Value.NativeQuery per le funzionalità di Azure Esplora dati

Per usare una funzionalità di Azure Esplora dati non supportata in Power Query, usare il metodo Value.NativeQuery in Power Query M. Questo metodo inserisce un frammento di Linguaggio di query Kusto all'interno della query generata e può essere usato anche per fornire maggiore controllo sulla query eseguita.

L'esempio seguente illustra come usare la percentiles funzione in Azure Esplora dati:

let
    StormEvents = AzureDataExplorer.Contents(DefaultCluster, DefaultDatabase){[Name = DefaultTable]}[Data],
    Percentiles = Value.NativeQuery(StormEvents, "| summarize percentiles(DamageProperty, 50, 90, 95) by State")
in
    Percentiles

Non usare l'utilità di pianificazione dell'aggiornamento dati di Power BI per rilasciare comandi di controllo a Kusto

Power BI include un'utilità di pianificazione dell'aggiornamento dati che può eseguire periodicamente query su un'origine dati. Questo meccanismo non deve essere usato per pianificare i comandi di controllo in Kusto perché Power BI presuppone che tutte le query siano di sola lettura.