Inserire dati da Hub eventi in Azure Synapse Esplora dati
Esplora dati di Azure Synapse è un servizio di esplorazione dati rapido e a scalabilità elevata per dati di log e di telemetria. Esplora dati di Azure Synapse offre consente l’inserimento dati (caricamento dei dati) da hub eventi, hub IoT e BLOB scritti nei contenitori BLOB.
Esplora dati di Azure Synapse consente l'inserimento dati (caricamento dei dati) da hub eventi, da piattaforma di streaming di Big Data e da servizio di inserimento di eventi. Hub eventi può elaborare milioni di eventi al secondo quasi in tempo reale. In questo articolo si crea un hub eventi, ci si connette da Azure Synapse Esplora dati e viene visualizzato il flusso di dati attraverso il sistema.
Prerequisiti
Una sottoscrizione di Azure. Creare un account Azure gratuito.
Creare un pool di Esplora dati usando Synapse Studio o il portale di Azure
Creare un database di Esplora dati.
Nel riquadro sinistro di Synapse Studio selezionare Dati.
Selezionare + (Aggiungi nuova risorsa) >Pool di Esplora dati e usare le informazioni seguenti:
Impostazione Valore suggerito Descrizione Nome pool contosodataexplorer Nome del pool di Esplora dati da usare Nome TestDatabase Il nome del database deve essere univoco all'interno del cluster. Periodo di conservazione predefinito 365 Intervallo di tempo (in giorni) per cui è garantito che i dati rimangano disponibili per le query. L'intervallo di tempo viene misurato dal momento in cui i dati vengono inseriti. Periodo cache predefinito 31 L'intervallo di tempo (in giorni) per cui mantenere i dati sottoposti frequentemente a query disponibili nell'archiviazione su unità SSD o nella RAM, invece che nell'archiviazione a lungo termine. Selezionare Crea per creare il database. Per la creazione è in genere necessario meno di un minuto.
Creare una tabella di destinazione a cui gli hub eventi invieranno i dati
Nel riquadro sinistro di Synapse Studio selezionare Sviluppo.
In Script KQL selezionare + (Aggiungi nuova risorsa) >Script KQL. Nel riquadro a destra è possibile assegnare un nome allo script.
Nel menu Connetti a selezionare contosodataexplorer.
Nel menu Usa database selezionare TestDatabase.
Incollare il comando seguente e selezionare Esegui per creare una tabella.
.create table TestTable (TimeStamp: datetime, Name: string, Metric: int, Source:string)
Suggerimento
Verificare che la tabella è stata creata correttamente. Nel riquadro a sinistra selezionare Dati, selezionare il contosodataexplorer nel menu Altro e quindi selezionare Aggiorna. In contosodataexplorer espandere Tabelle e assicurarsi che la tabella StormEvents venga visualizzata nell'elenco.
Copiare il comando seguente nella finestra e selezionare Esegui per eseguire il mapping dei dati JSON in ingresso ai nomi di colonna e ai tipi di dati della tabella (TestTable).
.create table TestTable ingestion json mapping 'TestMapping' '[{"column":"TimeStamp", "Properties": {"Path": "$.timeStamp"}},{"column":"Name", "Properties": {"Path":"$.name"}} ,{"column":"Metric", "Properties": {"Path":"$.metric"}}, {"column":"Source", "Properties": {"Path":"$.source"}}]'
Si consiglia di usare un’ identità gestita assegnata dall'utente o un’ identità gestita assegnata dal sistema per la connessione dati (facoltativo).
Un'app di esempio che genera i dati e li invia a un hub eventi. Scaricare l'app di esempio nel sistema.
Visual Studio 2019 per eseguire l'app di esempio.
Accedere al portale di Azure
Accedere al portale di Azure.
Creare un hub eventi
Creare un hub eventi usando un modello di Azure Resource Manager nel portale di Azure.
Per creare un hub eventi, usare il pulsante seguente per avviare la distribuzione. Fare clic con il pulsante destro del mouse e selezionare Apri in una nuova finestra per poter seguire il resto dei passaggi di questo articolo.
Il pulsante Distribuzione in Azure consente di passare al portale di Azure.
Selezionare la sottoscrizione in cui si vuole creare l'hub eventi e creare un gruppo di risorse denominato test-hub-rg.
Compilare il modulo con le informazioni seguenti.
Usare i valori predefiniti per tutte le impostazioni non elencate nella tabella seguente.
Impostazione Valore consigliato Descrizione campo Subscription Sottoscrizione in uso Selezionare la sottoscrizione di Azure che si vuole usare per Hub eventi. Gruppo di risorse test-hub-rg Creare un nuovo gruppo di risorse. Ufficio Stati Uniti occidentali Selezionare Stati Uniti occidentali per questo articolo. Per un sistema di produzione, selezionare l'area più appropriata in base alle esigenze. Creare lo spazio dei nomi di Hub eventi nella stessa posizione del cluster Esplora dati di Azure Synapse per ottenere prestazioni ottimali (più importante per gli spazi dei nomi di Hub eventi con velocità effettiva elevata). Nome spazio dei nomi Nome dello spazio dei nomi univoco Scegliere un nome univoco per identificare lo spazio dei nomi. Ad esempio, spazionomitest. Il nome di dominio servicebus.windows.net viene accodato al nome specificato. Il nome può contenere solo lettere, numeri e trattini. Il nome deve iniziare con una lettera e deve terminare con una lettera o un numero. La lunghezza del valore deve essere compresa tra 6 e 50 caratteri. Nome hub eventi test-hub Hub eventi si trova nello spazio dei nomi , che fornisce un contenitore di ambito univoco. Il nome di Hub eventi deve essere univoco all'interno dello spazio dei nomi. Nome gruppo di consumer test-group I gruppi di consumer consentono a più applicazioni di avere ognuna una visualizzazione distinta del flusso di eventi. Selezionare Rivedi e crea.
Esaminare il Riepilogo delle risorse create. Selezionare Crea per indicare che si stanno creando risorse nella sottoscrizione.
Selezionare Notifiche nella barra degli strumenti per monitorare il processo di provisioning. Il completamento della distribuzione potrebbe richiedere diversi minuti. Al termine, è possibile procedere con il passaggio successivo.
Considerazioni sull'autenticazione
A seconda del tipo di identità, si usa per eseguire l'autenticazione con Hub eventi, potrebbero essere necessarie altre configurazioni.
Se si esegue l'autenticazione con Hub eventi usando un'identità gestita assegnata dall'utente, passare alla rete di Hub eventi e quindi in Consenti> l'accesso da selezionare Tutte le reti e salvare le modifiche.
Se si esegue l'autenticazione con Hub eventi usando un'identità gestita assegnata dal sistema, passare alla rete di >Hub eventi e quindi consentire l'accesso da tutte le reti o in Consenti l'accesso da, selezionare Reti selezionate, selezionare Consenti servizi Microsoft attendibile per ignorare il firewall e salvare le modifiche.
Connettersi a Hub eventi
Ora ci si connette a Hub eventi dal pool di Esplora dati. Quando questa connessione è attiva, i dati trasmessi all'Hub eventi vengono trasmessi alla tabella di test creata in precedenza in questo articolo.
Selezionare Notifiche sulla barra degli strumenti per verificare che la distribuzione di Hub eventi abbia avuto esito positivo.
Nel pool di Esplora dati creato selezionare Database>TestDatabase.
Selezionare Connessioni dati e Aggiungi connessione dati.
Creare una connessione dati (anteprima)
Compilare il modulo con le informazioni seguenti e quindi selezionare Crea.
Impostazione | Valore consigliato | Descrizione campo |
---|---|---|
Nome connessione dati | test-hub-connection | Nome della connessione da creare in Esplora dati di Azure Synapse. |
Abbonamento | ID sottoscrizione in cui si trova la risorsa di Hub eventi. Questo campo viene compilato automaticamente. | |
Spazio dei nomi Hub eventi | Nome dello spazio dei nomi univoco | Nome scelto in precedenza che identifica lo spazio dei nomi. |
Hub eventi di | test-hub | Hub eventi creato. |
Gruppo di consumer | test-group | Gruppo di consumer definito negli Hub eventi creati. |
Proprietà del sistema per gli eventi | Selezionare le proprietà appropriate | Proprietà di sistema di Hub eventi. Se sono presenti più record per ogni messaggio di evento, le proprietà del sistema verranno aggiunte al primo record. Quando si aggiungono proprietà del sistema, creare o aggiornare lo schema e il mapping della tabella per includere le proprietà selezionate. |
Compressione | Nessuno | Tipo di compressione del payload dei messaggi di Hub eventi. Tipi di compressione supportati: Nessuno, Gzip. |
Identità gestita | Assegnata dal sistema | Identità gestita usata dal cluster Esplora dati per l'accesso in lettura da Hub eventi. Nota: Quando si crea la connessione dati: Le - Identità assegnate dal sistema vengono create automaticamente se non esistono - All'identità gestita viene assegnato automaticamente il ruolo di Ricevitore dei dati dell’hub eventi di Azure e viene aggiunto al cluster di Esplora dati. Si consiglia di verificare che il ruolo sia stato assegnato e che l'identità sia stata aggiunta al cluster. |
Tabella di destinazione
Sono disponibili due opzioni per il routing dei dati inseriti: statico e dinamico. Per questo articolo si usa il routing statico, in cui si specificano il nome della tabella, il formato dei dati e il mapping come valori predefiniti. Se il messaggio di Hub eventi include informazioni sul routing dei dati, queste informazioni di routing sostituiranno le impostazioni predefinite.
Completare le impostazioni di routing seguenti:
Impostazione Valore consigliato Descrizione campo Nome tabella TestTable Tabella creata in TestDatabase. Formato dati JSON I formati supportati sono Avro, CSV, JSON, MULTILINE JSON, ORC, PARQUET, PSV, SCSV, SOHSV, TSV, TXT, TSVE, APACHEAVRO e W3CLOG. Mapping TestMapping Il mapping creato in TestDatabase che mappa i dati in ingresso ai nomi di colonna e ai tipi di dati di TestTable. Obbligatorio per JSON, MULTILINE JSON e AVRO e facoltativo per gli altri formati. Nota
- Non è necessario specificare tutte le impostazioni di routing predefinite. È anche possibile specificare impostazioni parziali.
- Vengono inseriti solo gli eventi accodati dopo aver creato la connessione dati.
Seleziona Crea.
Mapping delle proprietà del sistema per gli eventi
Nota
- Le proprietà di sistema sono supportate per i formati
json
e i formati tabulari (csv
,tsv
e così via) e non sono supportate dai dati compressi. Se si usa un formato non supportato, i dati verranno comunque inseriti, ma le proprietà verranno ignorate. - Per i dati tabulari le proprietà di sistema sono supportate solo per i messaggi di evento a record singolo.
- Per i dati JSON le proprietà di sistema sono supportate anche per i messaggi di evento a più record. In questi casi, le proprietà di sistema vengono aggiunte solo al primo record del messaggio di evento.
- Per il mapping
csv
le proprietà vengono aggiunte all'inizio del record nell'ordine elencato nella tabella Proprietà di sistema. - Per il mapping
json
le proprietà vengono aggiunte in base ai nomi delle proprietà nella tabella Proprietà di sistema.
Se si seleziona Proprietà del sistema per gli eventi nella sezione Origine dati della tabella, è necessario includere proprietà del sistema nello schema e nel mapping della tabella.
Copiare la stringa di connessione
Quando si esegue l'app di esempio elencata in Prerequisiti, è necessario il stringa di connessione per lo spazio dei nomi di Hub eventi.
Nello spazio dei nomi di Hub eventi creato selezionare Criteri di accesso condiviso e quindi RootManageSharedAccessKey.
Copiare Stringa di connessione - Chiave primaria. Verrà incollata nella sezione successiva.
Generare dati di esempio
Usare l'app di esempio scaricata per generare dati.
Avviso
Questo esempio usa stringa di connessione'autenticazione per connettersi a Hub eventi per semplicità dell'esempio. Tuttavia, il hardcodeding di un stringa di connessione nello script richiede un livello di attendibilità molto elevato nell'applicazione e comporta rischi per la sicurezza.
Per soluzioni sicure a lungo termine, usare una di queste opzioni:
- Autenticazione senza password
- Archiviare il stringa di connessione in un insieme di credenziali delle chiavi di Azure e usare questo metodo per recuperarlo nel codice.
Aprire la soluzione dell'app di esempio in Visual Studio.
Nel file program.cs aggiornare la
eventHubName
costante con il nome degli Hub eventi e aggiornare laconnectionString
costante alla stringa di connessione copiata dallo spazio dei nomi di Hub eventi.const string eventHubName = "test-hub"; // Copy the connection string ("Connection string-primary key") from your Event Hub namespace. const string connectionString = @"<YourConnectionString>";
Compilare ed eseguire l'app. L'app invia messaggi agli Hub eventi e ne stampa lo stato ogni 10 secondi.
Dopo che l'app ha inviato alcuni messaggi, passare al passaggio successivo: esaminare il flusso di dati nell'hub eventi e nella tabella di test.
Esaminare il flusso di dati
Con l'app che genera dati, è ora possibile visualizzare il flusso di tali dati da Hub eventi alla tabella nel cluster.
Nella portale di Azure, sotto Hub eventi, viene visualizzato il picco di attività durante l'esecuzione dell'app.
Per verificare il numero di messaggi arrivati al database fino a questo momento, eseguire la query seguente nel database di test.
TestTable | count
Per visualizzare il contenuto dei messaggi, eseguire la query seguente:
TestTable
Il set di risultati sarà simile all’immagine seguente:
Nota
- Esplora dati di Azure Synapse prevede criteri di aggregazione (invio in batch) per l'inserimento di dati in modo da ottimizzare il processo di inserimento. I criteri di invio in batch predefiniti sono configurati per bloccare un batch una volta che ha soddisfatto le condizioni seguenti: ritardo massimo di 5 minuti, dimensioni totali di 1G o 1000 BLOB. Di conseguenza, è possibile che si verifichi una latenza. Per altre informazioni vedere Criteri di invio in batch.
- L'inserimento nell'hub eventi include il tempo di risposta dell'hub eventi di 10 secondi o 1 MB.
- Per ridurre il ritardo del tempo di risposta configurare la tabella per supportare lo streaming. Vedere Criteri di streaming.
Pulire le risorse
Se non si prevede di usare nuovamente Hub eventi, pulire test-hub-rg per evitare di incorrere in costi.
Nel portale di Azure selezionare Gruppi di risorse all'estrema sinistra e quindi selezionare il gruppo di risorse creato.
Se il menu a sinistra è compresso, selezionare per espanderlo.
In test-resource-group selezionare Elimina gruppo di risorse.
Nella nuova finestra digitare il nome del gruppo di risorse da eliminare (test-hub-rg) e quindi selezionare Elimina.