Condividi tramite


Connessione dati a Griglia di eventi

L'inserimento con Griglia di eventi è una 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. Azure Esplora dati offre l'inserimento continuo da Archiviazione di Azure (archiviazione BLOB e ADLSv2) con Griglia di eventi di Azure sottoscrizione per le notifiche blob create o rinominate in BLOB e trasmettere queste notifiche ad Azure Esplora dati tramite un Hub eventi di Azure.

La pipeline di inserimento di Griglia di eventi esegue diversi passaggi. Si crea una tabella di destinazione in Azure Esplora dati in cui verranno inseriti i dati in un formato specifico. Creare quindi una connessione dati di Griglia di eventi in Azure Esplora dati. La connessione dati di Griglia di eventi deve conoscere le informazioni di routing degli eventi, ad esempio la tabella a cui inviare i dati e il mapping della tabella. Specificare anche le proprietà di inserimento, che descrivono i dati da inserire, la tabella di destinazione e il mapping. È possibile generare dati di esempio e caricare BLOB o rinominare BLOB per testare la connessione. Eliminare i BLOB dopo l'inserimento.

L'inserimento di Griglia di eventi può essere gestito tramite la portale di Azure, usando l'inserimento guidato, a livello di codice con C# o Python o con il modello di Azure Resource Manager.

Per informazioni generali sull'inserimento dati in Azure Esplora dati, vedere Panoramica dell'inserimento di dati in Azure Esplora dati.

Meccanismi di autenticazione della connessione dati di Griglia di eventi

  • Connessione dati basata su identità gestita (scelta consigliata): l'uso di una connessione dati basata sull'identità gestita è il modo più sicuro per connettersi alle origini dati. Offre il controllo completo sulla possibilità di recuperare i dati da un'origine dati. L'installazione di una connessione dati di Griglia di eventi tramite l'identità gestita richiede la procedura seguente:

    1. Aggiungere un'identità gestita al cluster.
    2. Concedere le autorizzazioni all'identità gestita nell'origine dati. Per recuperare i dati da Archiviazione di Azure, l'identità gestita deve disporre almeno delle autorizzazioni di lettura dei dati dei BLOB di archiviazione per l'account Archiviazione di Azure.
    3. Concedere le autorizzazioni all'identità gestita nell'hub eventi. Per recuperare le notifiche BLOB dall'hub eventi, l'identità gestita deve disporre delle autorizzazioni Hub eventi di Azure Ricevitore dati per il Hub eventi di Azure.
    4. Impostare criteri di identità gestiti nei database di destinazione.
    5. Creare una connessione dati usando l'autenticazione dell'identità gestita per recuperare i dati.

    Attenzione

    • Se le autorizzazioni dell'identità gestita vengono rimosse dall'origine dati, la connessione dati non funzionerà più e non sarà più in grado di recuperare i dati dall'origine dati.
    • Se l'autenticazione locale è disabilitata in uno spazio dei nomi di Hub eventi esistente in cui vengono trasmessi le notifiche BLOB, è necessario usare l'autenticazione dell'identità gestita per la connessione dati e configurare correttamente le risorse. Per altre informazioni, vedere Problemi noti di Griglia di eventi.
  • Connessione dati basata su chiave: se non viene specificata un'autenticazione basata su identità gestita per la connessione dati, per impostazione predefinita la connessione viene automaticamente eseguita con l'autenticazione basata su chiave. Le connessioni basate su chiave recuperano i dati usando una risorsa stringa di connessione, ad esempio il Hub eventi di Azure stringa di connessione. Azure Esplora dati ottiene il stringa di connessione della risorsa per la risorsa specificata e lo salva in modo sicuro. Il stringa di connessione viene quindi usato per recuperare i dati dall'origine dati.

    Attenzione

    Se la chiave viene ruotata, la connessione dati non funzionerà più e non sarà in grado di recuperare i dati dall'origine dati. Per risolvere il problema, aggiornare o ricreare la connessione dati.

Formato dati

  • Vedere i formati supportati.
  • Vedere le compressioni supportate.
    • Le dimensioni dei dati non compressi originali devono far parte dei metadati del BLOB oppure Azure Esplora dati lo stima. Il limite di dimensioni di inserimento non compresso per ogni file è di 6 GB.

      Nota

      La sottoscrizione di notifica di Griglia di eventi può essere impostata sugli account di archiviazione di Azure per BlobStorage, StorageV2 o Data Lake Storage Gen2.

Proprietà di inserimento

È possibile specificare le proprietà di inserimento dell'inserimento BLOB tramite i metadati dei BLOB. È possibile impostare le proprietà seguenti:

Proprietà Descrizione
rawSizeBytes Dimensioni dei dati non elaborati (non compressi). Per Avro/ORC/Parquet, ovvero la dimensione prima dell'applicazione della compressione specifica del formato. Specificare le dimensioni dei dati originali impostando questa proprietà sulle dimensioni dei dati non compressi in byte.
kustoDatabase Nome con distinzione tra maiuscole e minuscole del database di destinazione. Per impostazione predefinita, i dati vengono inseriti nel database di destinazione associato alla connessione dati. Utilizzare questa proprietà per eseguire l'override del database predefinito e inviare dati a un database diverso. A tale scopo, è prima necessario configurare la connessione come connessione multi-database.
kustoTable Nome con distinzione tra maiuscole e minuscole della tabella di destinazione esistente. Esegue l'override del set Table nel riquadro Data Connection.
kustoDataFormat Formato dati. Esegue l'override del set Data format nel riquadro Data Connection.
kustoIngestionMappingReference Nome del mapping di inserimento esistente da usare. Esegue l'override del set Column mapping nel riquadro Data Connection.
kustoIgnoreFirstRecord Se impostato su true, Kusto ignora la prima riga del BLOB. Usare nei dati in formato tabulare (CSV, TSV o simile) per ignorare le intestazioni.
kustoExtentTags Stringa che rappresenta i tag che verranno associati all'extent risultante.
kustoCreationTime Esegue l'override del tempo di creazione dell'extent per il BLOB, formattato come stringa ISO 8601. Utilizzare per il back-fill.

Routing degli eventi

Quando si crea una connessione dati al cluster, si specifica il routing per dove inviare i dati inseriti. Il routing predefinito è la tabella di destinazione specificata nella stringa di connessione associata al database di destinazione. Il routing predefinito per i dati viene definito anche routing statico. È possibile specificare un routing alternativo per i dati usando le proprietà dei dati dell'evento.

Instradare i dati degli eventi a un database alternativo

Il routing dei dati a un database alternativo è disattivato per impostazione predefinita. Per inviare i dati a un database diverso, è prima necessario impostare la connessione come connessione multi-database. A tale scopo, è possibile usare portale di Azure, C#, Python o un modello di Resource Manager. L'utente, il gruppo, l'entità servizio o l'identità gestita usata per consentire il routing del database deve avere almeno il ruolo collaboratore e le autorizzazioni di scrittura nel cluster. Per altre informazioni, vedere Creare una connessione dati di Griglia di eventi per Azure Esplora dati.

Per specificare un database alternativo, impostare la proprietà Inserimento database.

Avviso

Se si specifica un database alternativo senza impostare la connessione come connessione dati multi-database, l'inserimento avrà esito negativo.

Instradare i dati degli eventi a una tabella alternativa

Quando si configura una connessione di archiviazione BLOB al cluster Esplora dati di Azure, specificare le proprietà della tabella di destinazione:

  • Nome tabella
  • formato dei dati
  • mapping

È anche possibile specificare le proprietà della tabella di destinazione per ogni BLOB, usando i metadati del BLOB. I dati verranno indirizzati dinamicamente, come specificato dalle proprietà di inserimento.

L'esempio seguente illustra come impostare le proprietà di inserimento nei metadati del BLOB prima di caricarlo. I BLOB vengono indirizzati a tabelle diverse.

Inoltre, è possibile specificare il database di destinazione. Viene creata una connessione dati di Griglia di eventi all'interno del contesto di un database specifico. Di conseguenza, questo database è il routing predefinito del database della connessione dati. Per inviare i dati a un database diverso, impostare la proprietà di inserimento "KustoDatabase" e impostare la connessione dati come connessione dati multi database. Il routing dei dati a un altro database è disabilitato per impostazione predefinita (non consentito). Se si imposta una proprietà di inserimento del database diversa dal database della connessione dati, senza consentire il routing dei dati a più database (impostando la connessione come connessione dati multi database), l'inserimento avrà esito negativo.

Per altre informazioni, vedere Caricare i BLOB.

var container = new BlobContainerClient("<storageAccountConnectionString>", "<containerName>");
await container.CreateIfNotExistsAsync();
var blob = container.GetBlobClient("<blobName>");
// Blob is dynamically routed to table `Events`, ingested using `EventsMapping` data mapping
await blob.SetMetadataAsync(
    new Dictionary<string, string>
    {
        { "rawSizeBytes", "4096" }, // the uncompressed size is 4096 bytes
        { "kustoTable", "Events" },
        { "kustoDataFormat", "json" },
        { "kustoIngestionMappingReference", "EventsMapping" },
        { "kustoDatabase", "AnotherDB" }
    }
);
await blob.UploadAsync(BinaryData.FromString(File.ReadAllText("<filePath>")));

Caricare i BLOB

È possibile creare un BLOB da un file locale, impostare le proprietà di inserimento sui metadati del BLOB e caricarlo. Per esempi, vedere Usare la connessione dati di Griglia di eventi.

Nota

  • È consigliabile usare BlockBlob per generare dati, perché l'uso AppendBlob potrebbe comportare un comportamento imprevisto.
  • L'uso di Azure Data Lake Gen2 storage SDK richiede l'uso CreateFile per caricare i file e Flush alla fine con il parametro close impostato su true. Per un esempio dettagliato dell'utilizzo corretto di Data Lake Gen2 SDK, vedere Usare la connessione dati di Griglia di eventi.
  • L'attivazione dell'inserimento dopo un'operazione CopyBlob non è supportata per gli account di archiviazione in cui è abilitata la funzionalità dello spazio dei nomi gerarchico.
  • Quando l'endpoint dell'hub eventi non conferma la ricezione di un evento, Griglia di eventi di Azure attiva un meccanismo di ripetizione dei tentativi. Se la consegna del retry ha esito negativo, Griglia di eventi può consegnare gli eventi non consegnati a un account di archiviazione usando un processo di inserimento nella coda di messaggi non recapitabili. Per altre informazioni, vedere Recapito di messaggi di Griglia di eventi e nuovi tentativi.

Rinominare i BLOB

Quando si usa ADLSv2, è possibile rinominare un BLOB per attivare l'inserimento BLOB in Azure Esplora dati. Ad esempio, vedere Rinominare i BLOB.

Nota

  • La ridenominazione della directory è possibile in ADLSv2, ma non attiva eventi di ridenominazione di BLOB e l'inserimento di BLOB all'interno della directory. Per inserire i BLOB dopo la ridenominazione, rinominare direttamente i BLOB desiderati.
  • Se sono stati definiti filtri per tenere traccia di soggetti specifici durante la creazione della connessione dati o durante la creazione manuale delle risorse di Griglia di eventi, questi filtri vengono applicati al percorso del file di destinazione.

Eliminare i BLOB usando il ciclo di vita dell'archiviazione

Azure Esplora dati non eliminerà i BLOB dopo l'inserimento. Usare il ciclo di vita di Azure Blob storage per gestire l'eliminazione del BLOB. È consigliabile conservare i BLOB per tre o cinque giorni.

Problemi noti di Griglia di eventi

Funzionamento senza autenticazione locale

Se l'autenticazione locale è disabilitata nello spazio dei nomi di Hub eventi che contiene l'hub eventi usato per le notifiche di streaming, seguire questa procedura per garantire che i dati vengano trasmessi correttamente dall'archiviazione all'hub eventi usando identità gestite:

  1. Assegnare un'identità gestita assegnata dal sistema a livello di sistema di Griglia di eventi dell'account di archiviazione. Per altre informazioni, vedere Abilitare l'identità gestita per gli argomenti di sistema.
  2. Concedere al mittente dell'identità gestita le autorizzazioni assegnandole il ruolo Hub eventi di Azure mittente dati nell'hub eventi. Per altre informazioni, vedere Aggiungere identità ai ruoli di Azure nelle destinazioni.
  3. Assicurarsi che la sottoscrizione di Griglia di eventi usi l'identità gestita per il recapito di eventi. Per altre informazioni, vedere Creare sottoscrizioni di eventi che usano un'identità.

Configurare inoltre la connessione dati di Griglia di eventi per l'uso dell'autenticazione dell'identità gestita in modo che Azure Esplora dati possa ricevere notifiche dall'hub eventi.

Configurare l'inserimento di Griglia di eventi nei file esportati da Azure Esplora dati

Quando si usa Azure Esplora dati per esportare i file usati per l'inserimento in Griglia di eventi, prendere nota:

  • Le notifiche di Griglia di eventi non vengono attivate se la stringa di connessione specificata per il comando di esportazione o la stringa di connessione fornita a una tabella esterna è una stringa di connessione in formato ADLS Gen2, ad esempio abfss://filesystem@accountname.dfs.core.windows.net, ma l'account di archiviazione non è abilitato per lo spazio dei nomi gerarchico.
  • Se l'account non è abilitato per lo spazio dei nomi gerarchico, la stringa di connessione deve usare il formato di archiviazione BLOB, ad esempio https://accountname.blob.core.windows.net. L'esportazione funziona come previsto anche quando si usa la stringa di connessione in formato ADLS Gen2, ma le notifiche non verranno attivate e l'inserimento di Griglia di eventi non funzionerà.

Emulazione di eventi di archiviazione da componenti personalizzati

Quando si usano componenti personalizzati per emulare Archiviazione di Azure eventi, gli eventi emulati devono essere strettamente conformi allo schema di eventi Archiviazione BLOB di Azure, perché Azure Esplora dati eliminerà gli eventi che non possono essere analizzati dall'SDK di Griglia di eventi.