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 sottoscrizione Griglia di eventi di Azure per le notifiche create o rinominate blob e lo streaming di queste notifiche in 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. È anche possibile specificare 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 i BLOB per testare la connessione. Eliminare i BLOB dopo l'inserimento.

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

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

Meccanismi di autenticazione della connessione dati di Azure Esplora dati

Attenzione

Se le autorizzazioni dell'identità gestita vengono rimosse dall'origine dati, la connessione dati è disabilitata e non può recuperare i dati dall'origine dati.

  • Connessione dati basata su chiave: se non viene specificata un'identità gestita nella 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 genera il stringa di connessione di risorse per la risorsa specificata e lo salva in modo sicuro nella connessione dati. Il stringa di connessione viene quindi usato per recuperare i dati dall'origine dati.

Attenzione

Se la chiave viene ruotata, la connessione dati è disabilitata e non può 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, altrimenti Azure Esplora dati lo stima. Il limite di dimensioni di inserimento non compresso per ogni file è 6 GB.

Nota

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

Proprietà di inserimento

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

Proprietà Descrizione
rawSizeBytes Dimensioni dei dati non elaborati (non compressi). Per Avro/ORC/Parquet, ovvero le dimensioni prima dell'applicazione della compressione specifica del formato. Specificare le dimensioni dei dati originali impostando questa proprietà sulle dimensioni dei dati non compresse 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, è innanzitutto 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 Table set nel Data Connection riquadro.
kustoDataFormat Formato dati. Esegue l'override del Data format set nel Data Connection riquadro.
kustoIngestionMappingReference Nome del mapping di inserimento esistente da usare. Esegue l'override del Column mapping set nel Data Connection riquadro.
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 alla misura risultante.
kustoCreationTime Esegue l'override del tempo di creazione dell'extent per il BLOB, formattato come stringa ISO 8601. Utilizzare per il riempimento.

Routing degli eventi

Quando si crea una connessione dati al cluster, si specifica il routing per il percorso in cui inviare i dati inseriti. Il routing predefinito è la tabella di destinazione specificata nel stringa di connessione associato 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, è necessario innanzitutto impostare la connessione come connessione multi-database. A tale scopo, è possibile eseguire questa operazione in portale di Azure, C#, Python o in 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à Inserimentodatabase.

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 dati
  • mapping

È anche possibile specificare le proprietà della tabella di destinazione per ogni BLOB, usando i metadati del BLOB. I dati verranno indirizzati in modo dinamico, 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.

È anche possibile specificare il database di destinazione. Viene creata una connessione dati di Griglia di eventi nel 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 a più database. Il routing dei dati a un altro database è disabilitato per impostazione predefinita (non consentito). L'impostazione di 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 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 può causare un comportamento imprevisto.
  • L'uso di Azure Data Lake Gen2 storage SDK richiede l'uso CreateFile di 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 griglia di eventi.
  • L'attivazione dell'inserimento dopo un'operazione CopyBlob non è supportata per gli account di archiviazione che dispongono della funzionalità dello spazio dei nomi gerarchico abilitata.
  • 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 il recapito dei tentativi ha esito negativo, Griglia di eventi può recapitare gli eventi non recapitati a un account di archiviazione usando un processo di invio 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 rinominati BLOB e inserimento di BLOB all'interno della directory. Per inserire i BLOB che seguono 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 creazionemanuale delle risorse griglia di eventi, questi filtri vengono applicati sul 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 dell'archiviazione BLOB di Azure per gestire l'eliminazione del BLOB. È consigliabile mantenere i BLOB per tre-cinque giorni.

Problemi noti di Griglia di eventi

  • Quando si usa Azure Esplora dati per esportare i file usati per l'inserimento di Griglia di eventi, prendere nota:
    • Le notifiche griglia di eventi non vengono attivate se la stringa di connessione fornita al comando di esportazione o la stringa di connessione fornita a una tabella esterna è una stringa di connessione nel formato ADLS Gen2, ad esempio , abfss://filesystem@accountname.dfs.core.windows.netma l'account di archiviazione non è abilitato per lo spazio dei nomi gerarchico.
    • Se l'account non è abilitato per lo spazio dei nomi gerarchico, 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 l'stringa di connessione ADLS Gen2, ma le notifiche non verranno attivate e l'inserimento di Griglia di eventi non funzionerà.