Panoramica dell'inserimento dati in Esplora dati di Azure
L'inserimento dati è il processo usato per caricare i record di dati da una o più origini in una tabella in Esplora dati di Azure. Una volta inseriti, i dati diventano disponibili per le query.
Il diagramma seguente illustra il flusso end-to-end per l'uso di Esplora dati di Azure, mostrando diversi metodi di inserimento.
Il servizio di gestione dei dati Esplora dati di Azure, responsabile dell'inserimento dati, implementa il processo seguente:
Esplora dati di Azure estrae i dati da un'origine esterna e legge le richieste da una coda di Azure in sospeso. I dati vengono inviati in batch o trasmessi a Data Manager. Il flusso di dati in batch trasmesso allo stesso database e alla stessa tabella viene ottimizzato per la velocità effettiva di inserimento. Esplora dati di Azure convalida i dati iniziali e ne converte i formati se necessario. Un'ulteriore manipolazione dei dati include corrispondenza dello schema, organizzazione, indicizzazione, codifica e compressione dei dati. I dati vengono salvati in modo permanente nell'archiviazione in base ai criteri di conservazione impostati. Data Manager esegue quindi il commit dei dati inseriti nel motore, in cui è disponibile per la query.
Formati di dati, proprietà e autorizzazioni supportati
Proprietà di inserimento : proprietà che determinano la modalità di inserimento dei dati (ad esempio assegnazione di tag, mapping, ora di creazione).
Autorizzazioni: per inserire i dati, il processo richiede autorizzazioni di inseritore nel database. Altre azioni, come l'esecuzione di query, possono richiedere autorizzazioni di amministratore del database, utente del database o amministratore di tabelle.
Differenza tra inserimento in batch e inserimento in streaming
L'inserimento in batch esegue l'invio in batch dei dati ed è ottimizzato per una velocità effettiva di inserimento elevata. Questo metodo è il tipo di inserimento preferito e quello più efficiente. I dati vengono suddivisi in batch in base alle proprietà di inserimento. I batch di dati di piccole dimensioni vengono quindi uniti e ottimizzati per ottenere rapidamente i risultati delle query. I criteri IngestionBatching possono essere impostati su database o tabelle. Per impostazione predefinita, il valore massimo per l'inserimento in batch è 5 minuti, 1000 elementi o 1 GB di dimensioni totali. Il limite delle dimensioni dei dati per un comando di inserimento batch è di 4 GB.
L'inserimento in streaming è un inserimento dati continuo da un'origine del flusso. Consente una latenza quasi in tempo reale per set di dati di piccole dimensioni per tabella. I dati vengono inizialmente inseriti in rowstore e quindi spostati in extent columnstore. L'inserimento in streaming può essere eseguito usando una libreria client di Esplora dati di Azure o una delle pipeline di dati supportate.
Metodi e strumenti di inserimento
Esplora dati di Azure supporta diversi metodi di inserimento, ognuno dei quali ha i propri scenari di destinazione. Questi metodi includono strumenti di inserimento, connettori e plug-in per servizi diversi, pipeline gestite, inserimento a livello di codice tramite SDK e accesso diretto all'inserimento.
Inserimento tramite pipeline gestite
Per le organizzazioni che vogliono affidare la gestione (limitazione, ripetizione dei tentativi, monitoraggi, avvisi e altro) a un servizio esterno, l'uso di un connettore è probabilmente la soluzione più appropriata. L'inserimento in coda è adatto per grandi volumi di dati. Azure Data Explorer supporta le pipeline di Azure seguenti:
Griglia di eventi : pipeline che rimane in ascolto nell'archiviazione di Azure e aggiorna Esplora dati di Azure per eseguire il pull delle informazioni quando si verificano eventi sottoscritti. Per altre informazioni, vedere Inserire BLOB di Azure in Esplora dati di Azure.
Hub eventi: pipeline che trasferisce eventi dai servizi ad Azure Esplora dati. Per altre informazioni, vedere Inserire dati dall'hub eventi in Azure Esplora dati.
Hub IoT : pipeline usata per il trasferimento dei dati da dispositivi IoT supportati a Esplora dati di Azure. Per altre informazioni, vedere Inserire dati dall'hub IoT in Esplora dati di Azure.
Azure Data Factory: servizio di integrazione dei dati completamente gestito per i carichi di lavoro analitici in Azure. Azure Data Factory si connette con oltre 90 origini supportate per offrire un trasferimento dei dati efficiente e resiliente. Prepara, trasforma e arricchisce i dati per fornire informazioni dettagliate che possono essere monitorate in diversi modi. Questo servizio può essere usato come soluzione monouso, in una sequenza temporale periodica o essere attivato da eventi specifici.
- Integrare Esplora dati di Azure con Azure Data Factory.
- Usare Azure Data Factory per copiare dati da origini supportate a Esplora dati di Azure.
- Copiare dati in blocco da un database in Esplora dati di Azure usando il modello di Azure Data Factory.
- Usare l'attività comandi di Azure Data Factory per eseguire i comandi di controllo di Esplora dati di Azure.
Inserimento tramite connettori e plug-in
Plug-in Logstash: vedere Inserire dati da Logstash in Esplora dati di Azure.
Connettore Kafka: vedere Inserire dati da Kafka in Esplora dati di Azure.
Power Automate: pipeline del flusso di lavoro automatizzata in Azure Esplora dati. Power Automate può essere usato per eseguire una query ed eseguire azioni predefinite usando i risultati della query come trigger. Vedere Azure Data Explorer connector to Power Automate (Preview).
Connettore Apache Spark: progetto open source che può essere eseguito in qualsiasi cluster Spark. Implementa l'origine dati e il sink di dati per lo spostamento di dati tra cluster di Esplora dati di Azure e Spark. È possibile creare applicazioni veloci e scalabili destinate a scenari basati sui dati. Vedere Connettore di Esplora dati di Azure per Apache Spark.
Inserimento a livello di codice tramite SDK
Esplora dati Azure fornisce SDK che possono essere usati per l'inserimento dati e le query. L'inserimento a livello di codice è ottimizzato per diminuire i costi di inserimento, riducendo al minimo le transazioni di archiviazione durante e dopo il processo di inserimento.
SDK e progetti open source disponibili
Strumenti
Inserimento con un clic : consente di inserire rapidamente i dati creando e modificando tabelle da un'ampia varietà di tipi di origine. L'inserimento con un clic consente di ricevere automaticamente suggerimenti su tabelle e strutture di mapping in base all'origine dati in Esplora dati di Azure. L'inserimento con un clic può essere usato per un'operazione di inserimento unica o per definire un inserimento continuo tramite Griglia di eventi nel contenitore in cui sono stati inseriti i dati.
LightIngest : utilità da riga di comando per l'inserimento di dati ad hoc in Esplora dati di Azure. Può eseguire il pull dei dati di origine da una cartella locale o da un contenitore di archiviazione BLOB di Azure.
Inserire i comandi di controllo
Usare i comandi per inserire i dati direttamente nel motore. Questo metodo ignora i servizi di Gestione dati e quindi deve essere usato solo per l'esplorazione e la prototipazione. Non usare questo metodo in scenari di produzione o con volumi elevati.
Inserimento inline: viene inviato un comando di controllo inline al motore, con i dati da inserire come parte del testo del comando stesso. Questo metodo è destinato agli scenari di test improvvisati.
Inserimento da query: viene inviato al motore il comando di controllo .set, .append, .set-or-append o .set-or-replace, in cui i dati sono specificati in modo indiretto come i risultati di una query o di un comando.
Inserimento da risorsa di archiviazione (pull) : viene inviato al motore il comando di controllo .ingest into, con i dati archiviati in una risorsa di archiviazione esterna (ad esempio Archiviazione BLOB di Azure) accessibile dal motore e indicata dal comando.
Confronto tra i metodi e gli strumenti di inserimento
Nome dell'inserimento | Tipo di dati | Dimensione massima dei file | In streaming, in batch, diretto | Scenari più comuni | Considerazioni |
---|---|---|---|---|---|
Inserimento con un clic | *sv, JSON | 1 GB decompresso (vedere la nota) | Invio in batch a contenitore, file locale e BLOB nell'inserimento diretto | Uno-off, creare uno schema di tabella, definizione dell'inserimento continuo con griglia di eventi, inserimento bulk con contenitore (fino a 5.000 BLOB; nessun limite quando si usa inserimento cronologico) | |
LightIngest | Tutti i formati supportati | 1 GB decompresso (vedere la nota) | Invio in batch tramite DM o inserimento diretto nel motore | Migrazione dei dati, dati cronologici con timestamp di inserimento modificati, inserimento in blocco (nessuna restrizione sulle dimensioni) | Con distinzione tra maiuscole e minuscole, con limitazioni di spazio |
ADX Kafka | Avro, ApacheAvro, JSON, CSV, Parquet e ORC | Senza limiti. Eredita restrizioni Java. | Invio in batch, streaming | Pipeline esistente, consumo elevato di volumi dall'origine. | La preferenza può essere determinata dal servizio "più produttori/consumer" già usato o dal modo in cui è desiderato gestire un servizio. |
ADX in Apache Spark | Ogni formato supportato dall'ambiente Spark | Un numero illimitato | Creazione di batch | Pipeline esistente, pre-elaborazione in Spark prima dell'inserimento, modo rapido per creare una pipeline di streaming sicura (Spark) dalle varie origini supportate dall'ambiente Spark. | Valutare il costo del cluster Spark. Per la scrittura batch, confrontare con La connessione dati di Azure Esplora dati per Griglia di eventi. Per lo streaming spark, confrontare con la connessione dati per l'hub eventi. |
LogStash | JSON | Senza limiti. Eredita restrizioni Java. | Gli input al connettore sono eventi Logstash e gli output del connettore per Kusto usando l'inserimento in batch. | Pipeline esistente, sfruttare la natura matura, open source di Logstash per un consumo elevato di volumi dagli input. | La preferenza può essere determinata dal servizio "più produttori/consumer" già usato o dal modo in cui è desiderato gestire un servizio. |
Azure Data Factory | Formati di dati supportati | Limiti *(per restrizioni ADF) | Invio in batch o per trigger ADF | Supporta formati che in genere non sono supportati, i file di grandi dimensioni, la copia di dati da più di 90 origini, dall'ambiente locale al cloud | Questo metodo richiede relativamente più tempo fino a quando i dati non vengono inseriti. ADF carica tutti i dati in memoria e quindi inizia l'inserimento. |
Power Automate | Tutti i formati supportati | 1 GB decompresso (vedere la nota) | Creazione di batch | Comandi di inserimento come parte del flusso. Usato per automatizzare le pipeline. | |
App per la logica | Tutti i formati supportati | 1 GB decompresso (vedere la nota) | Creazione di batch | Usato per automatizzare le pipeline | |
Hub IoT | Formati di dati supportati | N/D | Invio in batch, streaming | Messaggi, eventi e proprietà IoT | |
Hub eventi | Formati di dati supportati | N/D | Invio in batch, streaming | Messaggi, eventi | |
Griglia di eventi | Formati di dati supportati | 1 GB decompresso | Batch | Inserimento continuo dall'archiviazione di Azure, dati esterni nell'archiviazione di Azure | L'inserimento può essere attivato tramite la ridenominazione o le azioni di creazione BLOB |
.NET SDK | Tutti i formati supportati | 1 GB decompresso (vedere la nota) | Invio in batch, in streaming, diretto | Scrivere il codice secondo le esigenze dell'organizzazione | |
Python | Tutti i formati supportati | 1 GB decompresso (vedere la nota) | Invio in batch, in streaming, diretto | Scrivere il codice secondo le esigenze dell'organizzazione | |
Node.js | Tutti i formati supportati | 1 GB decompresso (vedere la nota) | Invio in batch, in streaming, diretto | Scrivere il codice secondo le esigenze dell'organizzazione | |
Java | Tutti i formati supportati | 1 GB decompresso (vedere la nota) | Invio in batch, in streaming, diretto | Scrivere il codice secondo le esigenze dell'organizzazione | |
REST | Tutti i formati supportati | 1 GB decompresso (vedere la nota) | Invio in batch, in streaming, diretto | Scrivere il codice secondo le esigenze dell'organizzazione | |
Go | Tutti i formati supportati | 1 GB decompresso (vedere la nota) | Invio in batch, in streaming, diretto | Scrivere il codice secondo le esigenze dell'organizzazione |
Nota
In riferimento alla tabella riportata sopra, l'inserimento supporta dimensioni dei file fino a 4 GB. È consigliabile inserire file di dimensione compresa tra 100 MB e 1 GB.
Processo di inserimento
Dopo aver scelto il metodo di inserimento più adatto alle proprie esigenze, eseguire queste operazioni:
Impostare criteri di batch (facoltativo)
Gestione batch esegue il batch di dati di inserimento in base ai criteri di inserimento in batch. Definire un criterio di batch prima dell'inserimento. Vedere procedure consigliate per l'inserimento: ottimizzazione per la velocità effettiva. Le modifiche dei criteri in batch possono richiedere fino a 5 minuti di effetto. I criteri impostano i limiti batch in base a tre fattori: il tempo trascorso dalla creazione batch, il numero accumulato di elementi (BLOB) o le dimensioni totali del batch. Per impostazione predefinita, le impostazioni sono 5 minuti/1000 BLOB/1 GB, con il limite raggiunto per primo prendendo effetto. Di conseguenza, in genere si verifica un ritardo di 5 minuti durante la coda dei dati di esempio per l'inserimento.
Impostare i criteri di conservazione
I dati inseriti in una tabella in Esplora dati di Azure sono soggetti ai criteri di conservazione effettivi della tabella. A meno che non siano impostati su una tabella in modo esplicito, i criteri di conservazione effettivi sono derivati dai criteri di conservazione del database. La conservazione dei dati attivi è una funzione delle dimensioni del cluster e dei criteri di conservazione. L'inserimento di una quantità di dati superiore allo spazio disponibile forza i primi dati in ingresso nella risorsa di conservazione di dati inattivi.
Assicurarsi che i criteri di conservazione del database siano appropriati per le specifiche esigenze. In caso contrario, eseguirne l'override in modo esplicito a livello di tabella Per altre informazioni, vedere Criteri di conservazione.
Creare una tabella
Prima di inserire i dati è necessario creare una tabella. Usare una delle seguenti opzioni:
- Creare una tabella con un comando.
- Creare una tabella usando l'inserimento con un clic.
Nota
Se un record è incompleto o un campo non può essere analizzato come tipo di dati necessario, le colonne della tabella corrispondenti verranno popolate con valori Null.
Creare il mapping dello schema
Il mapping dello schema consente di associare i campi dati di origine alle colonne della tabella di destinazione. Il mapping consente di inserire i dati di origini diverse nella stessa tabella, in base agli attributi definiti. Sono supportati diversi tipi di mapping, sia orientati alle righe (CSV, JSON e AVRO) che orientati alle colonne (Parquet). Nella maggior parte dei metodi i mapping possono essere creati anticipatamente nella tabella ed è possibile farvi riferimento nel parametro del comando di inserimento.
Impostare i criteri di aggiornamento (facoltativo)
Alcuni mapping del formato dati (Parquet, JSON e Avro) supportano semplici e utili trasformazioni in fase di inserimento. Se lo scenario richiede un'elaborazione più complessa durante l'inserimento, modificare i criteri di aggiornamento, che supportano l'elaborazione semplificata usando i comandi di query. I criteri di aggiornamento eseguono automaticamente le operazioni di estrazione e trasformazione sui dati inseriti nella tabella originale e inseriscono i dati risultanti in una o più tabelle di destinazione.
Inserire dati
È possibile inserire dati di esempio nella tabella creata nel database usando i comandi o la procedura guidata con un clic. Per inserire dati personalizzati, è possibile selezionare una gamma di opzioni, tra cui strumenti di inserimento, connettori e plug-in per diversi servizi, pipeline gestite, inserimento a livello di codice tramite SDK e accesso diretto all'inserimento.