Introduzione a una eventhouse
Per creare una eventhouse, è necessario lavorare su un'area di lavoro con una capacità Fabric che supporta la funzionalità Fabric Intelligence in tempo reale. È quindi possibile creare una o più eventhouse per i dati.
Una eventhouse contiene uno o più database KQL, in cui è possibile creare tabelle, stored procedure, viste materializzate e altri elementi per gestire i dati. Dopo aver creato una eventhouse, è possibile usare il database KQL predefinito o crearne uno nuovo.
Per ottenere i dati in un database KQL in una eventhouse, in genere è necessario importarli da un percorso statico (ad esempio un file locale, OneLake, Archiviazione di Azure o un set di dati di esempio) o da un'origine in tempo reale, ad esempio Hub eventi di Azure o un flusso di eventi di Fabric.
Nota
È possibile abilitare l'opzione OneLake per un database o per le singole tabelle in esso contenute, rendendo disponibili i dati di queste tabelle in OneLake.
Esecuzione di query su tabelle in un database KQL
Per eseguire query sui dati nelle tabelle in un database KQL, è possibile scrivere codice KQL (Kusto Query Language) o usare un subset limitato di istruzioni SQL (Structured Query Language).
Per semplificare lo sviluppo di query, gli eventhouse includono il supporto per uno o più queryset KQL, che semplificano lo sviluppo di query fornendo sintassi di esempio e utilità di codifica. Viene fornito un set di query predefinito ed è possibile crearne altri se necessario.
La sintassi KQL è intuitiva e concisa e include un'ampia gamma di funzioni ed espressioni che semplificano l'esecuzione efficiente di analisi dei dati complesse.
La query KQL più semplice è costituita semplicemente da un nome di tabella. Ad esempio, per recuperare tutti i dati da una tabella denominata Automotive, è possibile eseguire la query seguente:
Automotive
Questa query KQL è l'equivalente dell'espressione SQL SELECT * FROM Automotive
.
Data la dimensione potenzialmente enorme delle tabelle in base a flussi non associati di dati in tempo reale, l'uso di una semplice query del nome di tabella è insolito. Per recuperare un esempio di dati dalla tabella, è possibile usare la parola chiave take, come illustrato di seguito:
Automotive
| take 100
Questa query restituisce 100 righe dalla tabella Automotive (in modo analogo a SQL SELECT TOP 100 * FROM Automotive
). Si noti l'uso del carattere | in ogni nuova riga per separare le clausole della query.
Ecco alcune query comuni e i relativi equivalenti SQL
Recuperare colonne specifiche
Automotive
| project trip_id, pickup_datetime, fare_amount
SELECT trip_id, pickup_datetime, fare_amount
FROM Automotive
Filtra righe
Automotive
| where fare_amount > 20
| project trip_id, pickup_datetime, fare_amount
SELECT trip_id, pickup_datetime, fare_amount
FROM Automotive
WHERE fare_amount > 20
Ordinare i risultati
Automotive
| where fare_amount > 20
| project trip_id, pickup_datetime, fare_amount
| sort by pickup_datetime desc
SELECT trip_id, pickup_datetime, fare_amount
FROM Automotive
WHERE fare_amount > 20
ORDER BY pickup_datetime DESC
Raggruppa e aggrega
Automotive
| summarize trip_count = count() by vendor_id
| project vendor_id, trip_count
SELECT vendor_id, COUNT(*) AS trip_count
FROM Automotive
GROUP BY vendor_id
Nota
In tutti gli esempi precedenti è possibile usare la query KQL o la query SQL equivalente per recuperare dati da una tabella in un database KQL. Ognuno presenta dei vantaggi per ogni lingua e, nel caso di un database KQL, KQL è il linguaggio preferito motivi seguenti:
- Semplicità: KQL è un linguaggio più semplice di SQL e quindi più facile da imparare e da usare.
- Prestazioni: KQL è ottimizzato per le prestazioni e può gestire grandi quantità di dati in modo più efficiente rispetto a SQL.
- Flessibilità: KQL è più flessibile di SQL, consentendo agli utenti di eseguire query complesse con facilità.
- Integrazione: KQL è integrato con altri prodotti Microsoft, ad esempio Monitoraggio di Azure e Azure Sentinel.
Uno dei principali svantaggi dell'uso di SQL rispetto a KQL è che non è il linguaggio nativo del motore e deve passare attraverso un trasformatore. Questa differenza di linguaggio impedisce la pubblicazione in Power BI direttamente dal set di query.
Tuttavia, in alcuni casi, SQL può essere una scelta ottimale per i motivi seguenti:
- Compatibilità: SQL è un linguaggio ampiamente usato ed è compatibile con molti sistemi di database diversi.
- Funzionalità: SQL ha una gamma più ampia di funzioni e funzionalità rispetto a KQL.
- Programmazione procedurale: SQL supporta la programmazione procedurale, che consente agli sviluppatori di scrivere script e stored procedure complessi.
Visualizzazione dei risultati della query in un set di query
Anche se in definitiva è possibile creare dashboard in tempo reale o report di Power BI in base alle query, può essere utile durante l'esplorazione dei dati in un set di query per creare visualizzazioni rapide dei dati. In comune con molti ambienti di sviluppo di notebook comuni, i set di query KQL includono la possibilità di eseguire il rendering dei risultati di una query come grafico.
Uso di Copilot per facilitare le query
Per assistenza basata sull'intelligenza artificiale per l'esecuzione di query KQL, è possibile usare Copilot per lntelligence in tempo reale.
Quando l'amministratore ha abilitato Copilot, viene visualizzata l'opzione nella barra dei menu queryset. Copilot si apre come riquadro sul lato dell'interfaccia di query principale. Quando si pone una domanda sui dati, Copilot genera il codice KQL per rispondere alla domanda.