Errori ed eccezioni di Kusto.Ingest
Qualsiasi errore durante la gestione dell'inserimento sul lato client è indicato da un'eccezione C#.
Errori
Eccezioni KustoDirectIngestClient
Durante il tentativo di inserimento da più origini, possono verificarsi errori durante il processo di inserimento.
Se un inserimento non riesce per una delle origini, viene registrato e il client continua a inserire le origini rimanenti.
Dopo aver eseguito tutte le origini per l'inserimento, viene generata un'eccezione IngestClientAggregateException
contenente il IList<IngestClientException> IngestionErrors
membro.
IngestClientException
e le relative classi derivate contengono un campo IngestionSource
e un Error
campo. I due campi creano un mapping, dall'origine che non è riuscita all'inserimento, all'errore che si è verificato durante il tentativo di inserimento. Le informazioni possono essere usate nell'elenco per analizzare quali origini non sono riuscite nell'inserimento IngestionErrors
e perché. L'eccezione IngestClientAggregateException
contiene anche una proprietà GlobalError
booleana , che indica se si è verificato un errore per tutte le origini.
Errori durante l'inserimento da file o BLOB
Se si verifica un errore di inserimento durante il tentativo di inserimento da un BLOB o da un file, le origini di inserimento non verranno eliminate, anche se il deleteSourceOnSuccess
flag è impostato su true
. Le origini vengono mantenute per un'ulteriore analisi. Dopo aver compreso l'origine dell'errore e se l'errore non ha avuto origine dall'origine di inserimento stessa, l'utente del client potrebbe tentare di ritentarlo.
Errori durante l'inserimento da IDataReader
Durante l'inserimento da DataReader, i dati da inserire vengono salvati in una cartella temporanea il cui percorso predefinito è <Temp Path>\Ingestions_<current date and time>
. Questa cartella predefinita viene sempre eliminata dopo un inserimento riuscito.
IngestFromDataReader
Nei metodi e IngestFromDataReaderAsync
il flag , il retainCsvOnFailure
cui valore predefinito è false
, determina se i file devono essere conservati dopo un inserimento non riuscito. Se questo flag è impostato su false
, i dati che non superano l'inserimento non verranno salvati in modo permanente, rendendo difficile comprendere cosa è andato storto.
Eccezioni KustoQueuedIngestClient
KustoQueuedIngestClient
inserisce i dati caricando messaggi in una coda di Azure. Se si verifica un errore prima o durante il processo di accodamento, viene generata un'eccezione IngestClientAggregateException
alla fine del processo. L'eccezione generata include una raccolta di IngestClientException
, che contiene l'origine di ogni errore e non è stata registrata nella coda. Viene generato anche l'errore che si è verificato durante il tentativo di pubblicare il messaggio.
Inserimento in errori di coda con un file o un BLOB come origine
Se si verifica un errore durante l'uso dei metodi di IngestFromFile/IngestFromBlob
, le origini non vengono eliminate, anche se il deleteSourceOnSuccess
flag è impostato su true
.KustoQueuedIngestClient
Le origini vengono invece mantenute per un'ulteriore analisi.
Dopo aver compreso l'origine dell'errore e se l'errore non ha avuto origine dall'origine di inserimento stessa, l'utente del client può tentare di accodare i dati usando i metodi pertinenti IngestFromFile/IngestFromBlob
con l'origine non riuscita.
Inserimento in errori di coda con IDataReader come origine
Quando si usa un'origine DataReader, i dati da pubblicare nella coda vengono salvati in una cartella temporanea il cui percorso predefinito è <Temp Path>\Ingestions_<current date and time>
. Questa cartella viene sempre eliminata dopo che i dati sono stati inseriti correttamente nella coda.
IngestFromDataReader
Nei metodi e IngestFromDataReaderAsync
il flag , il retainCsvOnFailure
cui valore predefinito è false
, determina se i file devono essere conservati dopo un inserimento non riuscito. Se questo flag è impostato su false
, i dati che non superano l'inserimento non verranno salvati in modo permanente, rendendo difficile comprendere cosa è andato storto.
Errori comuni
Errore | Motivo | Strategia di riduzione del rischio |
---|---|---|
Il <nome> del database di database non esiste | Il database non esiste | Controllare il nome del database in kustoIngestionProperties /Create the database |
L'entità 'nome tabella che non esiste' di tipo 'Table' non è stata trovata. | La tabella non esiste e non esiste alcun mapping CSV. | Aggiungere il mapping CSV/creare la tabella richiesta |
Percorso> BLOB <escluso per motivi: il modello JSON deve essere inserito con il parametro jsonMapping | Inserimento JSON quando non viene fornito alcun mapping JSON. | Specificare un mapping JSON |
Impossibile scaricare il BLOB: "Il server remoto ha restituito un errore: (404) Non trovato". | Il BLOB non esiste. | Verificare che il BLOB esista. In caso affermativo, riprovare e contattare il team Kusto |
Mapping di colonne JSON non valido: due o più elementi di mapping puntano alla stessa colonna. | Il mapping JSON ha 2 colonne con percorsi diversi | Correzione del mapping JSON |
EngineError - [UtilsException] IngestionDownloader.Download : non è stato possibile scaricare uno o più file (cercare ActivityID:<GUID1>, RootActivityId:<GUID2>) |
Impossibile scaricare uno o più file. | Riprova |
Impossibile analizzare: Stream con ID '<nome> flusso' ha un formato CSV in formato non valido, con esito negativo per i criteri ValidationOptions | File CSV in formato non valido( ad esempio, senza avere lo stesso numero di colonne in ogni riga). Ha esito negativo solo quando i criteri di convalida sono impostati su ValidationOptions.ValidateCsvInputConstantColumns . |
Controllare i file CSV. Questo messaggio si applica solo ai file CSV/TSV |
IngestClientAggregateException con il messaggio di errore "Parametri obbligatori mancanti per la firma di accesso condiviso valida" |
La firma di accesso condiviso usata è del servizio e non dell'account di archiviazione | Usare la firma di accesso condiviso dell'account di archiviazione |
Codici di errore dell'inserimento
Per gestire gli errori di inserimento a livello di codice, le informazioni sugli errori vengono arricchite con un codice di errore numerico (IngestionErrorCode enumeration
).
Per un elenco completo dei codici di errore di inserimento, vedere Codici di errore di inserimento.
Informazioni di riferimento dettagliate sulle eccezioni
CloudQueuesNotFoundException
Generato quando non vengono restituite code dal cluster Gestione dati
Classe base: Eccezione
Nome campo | Type | Significato |
---|---|---|
Errore | string |
Errore che si è verificato durante il tentativo di recuperare le code dal servizio Migrazione del database |
Rilevante solo quando si usa il client di inserimento in coda Kusto. Durante il processo di inserimento vengono eseguiti diversi tentativi per recuperare le code di Azure collegate al servizio Migrazione del database. Quando questi tentativi hanno esito negativo, l'eccezione contenente il motivo dell'errore viene generata nel campo "Errore". Viene generata anche un'eccezione interna nel campo 'InnerException'.
CloudBlobContainersNotFoundException
Generato quando non vengono restituiti contenitori BLOB dal cluster Gestione dati
Classe base: Eccezione
Nome campo | Type | Significato |
---|---|---|
KustoEndpoint | string |
Endpoint del dm dm pertinente |
Rilevante solo quando si usa il client di inserimento in coda Kusto.
Quando si inseriscono origini che non si trovano già in un contenitore di Azure, ad esempio file, DataReader o Stream, i dati vengono caricati in un BLOB temporaneo per l'inserimento.
L'eccezione viene generata quando non sono presenti contenitori in cui caricare i dati.
DuplicateIngestionPropertyException
Generato quando una proprietà di inserimento viene configurata più volte
Classe base: Eccezione
Nome campo | Type | Significato |
---|---|---|
PropertyName | string |
Nome della proprietà duplicata |
PostMessageToQueueFailedException
Generato quando si pubblica un messaggio nella coda ha esito negativo
Classe base: Eccezione
Nome campo | Type | Significato |
---|---|---|
QueueUri | string |
URI della coda |
Errore | string |
Messaggio di errore generato durante il tentativo di inserimento nella coda |
Rilevante solo quando si usa il client di inserimento in coda Kusto.
Il client di inserimento in coda inserisce i dati caricando un messaggio nella coda di Azure pertinente. Se si verifica un errore post, viene generata l'eccezione. Conterrà l'URI della coda, il motivo dell'errore nel campo 'Error' e possibilmente un'eccezione interna nel campo 'InnerException'.
DataFormatNotSpecifiedException
Generato quando è necessario un formato di dati ma non specificato in IngestionProperties
Classe base: IngestClientException
Quando si inserisce da un flusso, è necessario specificare un formato di dati in IngestionProperties per inserire correttamente i dati. Questa eccezione viene generata quando non viene specificato .IngestionProperties.Format
InvalidUriIngestClientException
Generato quando viene inviato un URI BLOB non valido come origine di inserimento
Classe base: IngestClientException
CompressFileIngestClientException
Generato quando il client di inserimento non riesce a comprimere il file fornito per l'inserimento
Classe base: IngestClientException
I file vengono compressi prima dell'inserimento. L'eccezione viene generata quando un tentativo di compressione del file ha esito negativo.
UploadFileToTempBlobIngestClientException
Generato quando il client di inserimento non riesce a caricare l'origine fornita per l'inserimento in un BLOB temporaneo
Classe base: IngestClientException
SizeLimitExceededIngestClientException
Generato quando un'origine di inserimento è troppo grande
Classe base: IngestClientException
Nome campo | Type | Significato |
---|---|---|
Dimensione | long |
Dimensioni dell'origine di inserimento |
MaxSize | long |
Dimensioni massime consentite per l'inserimento |
Se un'origine di inserimento supera le dimensioni massime di 4 GB, viene generata l'eccezione. La convalida delle dimensioni può essere sostituita dal IgnoreSizeLimit
flag nella classe IngestionProperties. Tuttavia, non è consigliabile inserire singole origini superiori a 1 GB. Per altre informazioni, vedere Procedure consigliate per l'inserimento di Kusto.
UploadFileToTempBlobIngestClientException
Generato quando il client di inserimento non riesce a caricare il file fornito per l'inserimento in un BLOB temporaneo
Classe base: IngestClientException
DirectIngestClientException
Generato quando si verifica un errore generale durante l'inserimento diretto
Classe base: IngestClientException
QueuedIngestClientException
Generato quando si verifica un errore durante l'inserimento in coda
Classe base: IngestClientException
IngestClientAggregateException
Generato quando si verificano uno o più errori durante un inserimento
Classe base: AggregateException
Nome campo | Type | Significato |
---|---|---|
IngestionErrors | IList<IngestClientException> | Errori che si verificano durante il tentativo di inserimento e le origini correlate |
IsGlobalError | bool |
Indica se l'eccezione si è verificata per tutte le origini |
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per