Inserire dati dall'hub eventi in Azure Synapse Esplora dati

Azure Synapse Esplora dati è un servizio di esplorazione dei dati veloce e altamente scalabile per i dati di log e telemetria. Azure Synapse Esplora dati offre l'inserimento (caricamento dei dati) da Hub eventi, hub IoT e BLOB scritti nei contenitori BLOB.

Azure Synapse Esplora dati offre l'inserimento (caricamento dei dati) da Hub eventi, una piattaforma di streaming Di Big Data e un servizio di inserimento 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 Esplora dati.

    1. Nel riquadro a sinistra di Synapse Studio selezionare Dati.

    2. Selezionare + (Aggiungi nuova risorsa) >Esplora dati pool 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 di 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.
    3. Selezionare Crea per creare il database. Per la creazione è in genere necessario meno di un minuto.

  • Creare una tabella di destinazione a cui Hub eventi invierà i dati

    1. Nel riquadro sinistro di Synapse Studio selezionare Sviluppa.

    2. In Script KQL selezionare + (Aggiungi nuova risorsa) >script KQL. Nel riquadro a destra è possibile denominare lo script.

    3. Nel menu Connessione selezionare contosodataexplorer.

    4. Nel menu Usa database selezionare TestDatabase.

    5. Incollare il comando seguente e selezionare Esegui per creare la 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 menu contosodataexplorer altro e quindi selezionare Aggiorna. In contosodataexplorer espandere Tabelle e assicurarsi che la tabella TestTable venga visualizzata nell'elenco.

    6. 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"}}]'
      
  • È consigliabile 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 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.

  1. 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.

    Button to deploy the Resource Manager template to Azure.

    Il pulsante Distribuzione in Azure consente di passare al portale di Azure.

  2. Selezionare la sottoscrizione in cui si vuole creare l'hub eventi e creare un gruppo di risorse denominato test-hub-rg.

    Create a resource group

  3. 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 da usare per l'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 dell'hub eventi nella stessa posizione del cluster azure Synapse Esplora dati per ottenere prestazioni ottimali (più importante per gli spazi dei nomi dell'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 dell'hub eventi test-hub L'hub eventi si trova nello spazio dei nomi , che fornisce un contenitore di ambito univoco. Il nome dell'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.
  4. Selezionare Rivedi e crea.

  5. Esaminare il riepilogo delle risorse create. Selezionare Crea, che riconosce che si stanno creando risorse nella sottoscrizione.

    Screen shot of Azure portal for reviewing and creating Event Hub namespace, Event Hub, and consumer group.

  6. 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.

    Notifications icon

Considerazioni sull'autenticazione

A seconda del tipo di identità, si usa per eseguire l'autenticazione con l'hub eventi, potrebbero essere necessarie alcune configurazioni aggiuntive.

  • Se si esegue l'autenticazione con Hub eventi usando un'identità gestita assegnata dall'utente, passare alla rete dell'hub >eventi e quindi in Consenti l'accesso da selezionare Tutte le reti e salvare le modifiche.

    Screenshot of the Event Hub networking page, showing the selection of allowing access to all networks.

  • Se si esegue l'autenticazione con l'hub eventi usando un'identità gestita assegnata dal sistema, passare alla rete dell'hub >eventi e quindi consentire l'accesso da tutte le reti o in Consenti l'accesso da, selezionare Reti selezionate, selezionare Consenti alle servizi Microsoft attendibili di ignorare il firewall e salvare le modifiche.

    Screenshot of the Event Hub networking page, showing the selection of allowing access to trusted services.

Connessione all'hub eventi

Ora ci si connette all'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.

  1. Selezionare Notifiche sulla barra degli strumenti per verificare che la distribuzione dell'hub eventi abbia avuto esito positivo.

  2. Nel pool di Esplora dati creato selezionare Database>TestDatabase.

    Select test database.

  3. Selezionare Connessioni dati e Aggiungi connessione dati.

    Select data ingestion and Add data connection.

Creare una connessione dati (anteprima)

Compilare il modulo con le informazioni seguenti e quindi selezionare Crea.

Data connection pane Event Hub - Azure Synapse Data Explorer.

Impostazione Valore consigliato Descrizione campo
Nome connessione dati test-hub-connection Nome della connessione da creare in Azure Synapse Esplora dati.
Abbonamento L'ID sottoscrizione in cui si trova la risorsa hub eventi. Questo campo viene popolato automaticamente.
Spazio dei nomi dell'hub eventi Nome dello spazio dei nomi univoco Nome scelto in precedenza che identifica lo spazio dei nomi.
Hub eventi test-hub Hub eventi creato.
Gruppo di consumer test-group Il gruppo di consumer definito nell'hub eventi creato.
Proprietà del sistema per gli eventi Selezionare le proprietà appropriate Proprietà del sistema per gli eventi. Se sono presenti più record per messaggio di evento, le proprietà di 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 Il tipo di compressione del payload dei messaggi dell'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 dall'hub eventi.

Nota:
Quando viene creata la connessione dati:
- Le identità assegnate dal sistema vengono create automaticamente se non esistono
- L'identità gestita viene assegnata automaticamente al ruolo ricevitore di dati Hub eventi di Azure e viene aggiunta al cluster Esplora dati. È consigliabile 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 dell'hub eventi include informazioni sul routing dei dati, tali informazioni sostituiranno le impostazioni predefinite.

  1. Completare le impostazioni di routing seguenti:

    Default routing settings for ingesting data to Event Hub - Azure Synapse Data Explorer.

    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.
  2. Seleziona Crea.

Mapping delle proprietà del sistema per gli eventi

Nota

  • Le proprietà di sistema sono supportate per json i formati tabulari (csvtsve così via) e non sono supportate nei dati compressi. Quando 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 csv il mapping, le proprietà vengono aggiunte all'inizio del record nell'ordine elencato nella tabella Proprietà di sistema.
  • Per json il mapping, le proprietà vengono aggiunte in base ai nomi delle proprietà nella tabella Delle 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 dell'hub eventi.

  1. Nello spazio dei nomi dell'hub eventi creato selezionare Criteri di accesso condiviso e quindi RootManageSharedAccessKey.

    Shared access policies.

  2. Copiare Stringa di connessione - Chiave primaria. Verrà incollata nella sezione successiva.

    Connection string.

Generare dati di esempio

Usare l'app di esempio scaricata per generare dati.

  1. Aprire la soluzione dell'app di esempio in Visual Studio.

  2. Nel file program.cs aggiornare la costante eventHubName in base al nome dell'hub eventi e la costante connectionString in base alla stringa di connessione copiata dallo spazio dei nomi dell'hub eventi.

    const string eventHubName = "test-hub";
    // Copy the connection string ("Connection string-primary key") from your Event Hub namespace.
    const string connectionString = @"<YourConnectionString>";
    
  3. Compilare ed eseguire l'app. L'app invia messaggi all'hub eventi e ne stampa lo stato ogni 10 secondi.

  4. 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 dall'hub eventi alla tabella nel cluster.

  1. Nella portale di Azure, sotto l'hub eventi, viene visualizzato il picco di attività durante l'esecuzione dell'app.

    Event Hub graph.

  2. Per verificare il numero di messaggi arrivati al database fino a questo momento, eseguire la query seguente nel database di test.

    TestTable
    | count
    
  3. Per visualizzare il contenuto dei messaggi, eseguire la query seguente:

    TestTable
    

    Il set di risultati dovrebbe essere simile all'immagine seguente:

    Message result set.

    Nota

    • Azure Synapse Esplora dati ha criteri di aggregazione (batch) per l'inserimento dati, progettati per ottimizzare il processo di inserimento. I criteri di invio in batch predefiniti sono configurati per bloccare un batch una volta soddisfatta una delle condizioni seguenti per il batch: un tempo massimo di ritardo di 5 minuti, dimensioni totali di 1G o 1000 BLOB. Pertanto, è 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 di nuovo l'hub eventi, pulire test-hub-rg per evitare di incorrere in costi.

  1. 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 Expand button. per espanderlo.

    Select resource group to delete.

  2. In test-resource-group selezionare Elimina gruppo di risorse.

  3. Nella nuova finestra digitare il nome del gruppo di risorse da eliminare (test-hub-rg) e quindi selezionare Elimina.

Passaggi successivi