Dela via


Kusto.Ingest-fel och undantag

Eventuella fel under inmatningshanteringen på klientsidan indikeras av ett C#-undantag.

Fel

KustoDirectIngestClient-undantag

När du försöker mata in från flera källor kan fel uppstå under inmatningsprocessen. Om en inmatning misslyckas för en av källorna loggas den och klienten fortsätter att mata in de återstående källorna. När du har gått över alla källor för inmatning genereras en IngestClientAggregateException som innehåller IList<IngestClientException> IngestionErrors medlemmen.

IngestClientException och dess härledda klasser innehåller ett fält IngestionSource och ett Error fält. De två fälten skapar tillsammans en mappning, från källan som misslyckades med inmatningen, till felet som inträffade när inmatningen gjordes. Informationen kan användas i listan IngestionErrors för att undersöka vilka källor som misslyckades med inmatningen och varför. Undantaget IngestClientAggregateException innehåller också en boolesk egenskap GlobalError, som anger om ett fel har inträffat för alla källor.

Fel vid inmatning från filer eller blobar

Om ett inmatningsfel inträffar vid försök att mata in från en blob eller fil tas inte inmatningskällorna bort, även om deleteSourceOnSuccess flaggan är inställd på true. Källorna bevaras för ytterligare analys. När felets ursprung har förståtts, och om felet inte kom från själva inmatningskällan, kan klientens användare försöka att ändra den.

Fel vid inmatning från IDataReader

Vid inmatning från DataReader sparas data som ska matas in i en tillfällig mapp vars standardplats är <Temp Path>\Ingestions_<current date and time>. Den här standardmappen tas alltid bort efter en lyckad inmatning.

IngestFromDataReader I metoderna retainCsvOnFailure och IngestFromDataReaderAsync avgör flaggan, vars standardvärde är false, om filerna ska behållas efter en misslyckad inmatning. Om den här flaggan är inställd på falsesparas inte data som misslyckas med inmatningen, vilket gör det svårt att förstå vad som gick fel.

KustoQueuedIngestClient-undantag

KustoQueuedIngestClient matar in data genom att ladda upp meddelanden till en Azure-kö. Om ett fel inträffar före eller under köprocessen utlöses ett IngestClientAggregateException i slutet av processen. Undantaget som genereras innehåller en samling IngestClientExceptionmed , som innehåller källan för varje fel och som inte hade publicerats i kön. Felet som uppstod när meddelandet skulle publiceras utlöses också.

Publicera till köfel med en fil eller blob som källa

Om ett fel inträffar när KustoQueuedIngestClientmetoderna används IngestFromFile/IngestFromBlob tas inte källorna bort, även om deleteSourceOnSuccess flaggan är inställd på true. I stället bevaras källorna för ytterligare analys.

När felets ursprung har förståtts, och om felet inte kom från själva inmatningskällan, kan klientens användare försöka skicka data igen med hjälp av relevanta IngestFromFile/IngestFromBlob metoder med den misslyckade källan.

Publicera till köfel med IDataReader som källa

När du använder en DataReader-källa sparas de data som ska skickas till kön till en tillfällig mapp vars standardplats är <Temp Path>\Ingestions_<current date and time>. Den här mappen tas alltid bort när data har publicerats i kön. IngestFromDataReader I metoderna retainCsvOnFailure och IngestFromDataReaderAsync avgör flaggan, vars standardvärde är false, om filerna ska behållas efter en misslyckad inmatning. Om den här flaggan är inställd på falsesparas inte data som misslyckas med inmatningen, vilket gör det svårt att förstå vad som gick fel.

Vanliga fel

Fel Anledning Åtgärd
Databasdatabasens <namn> finns inte Databasen finns inte Kontrollera databasnamnet på kustoIngestionProperties/Create the database (Skapa databasen)
Entiteten "tabellnamn som inte finns" av typen "Tabell" hittades inte. Tabellen finns inte och det finns ingen CSV-mappning. Lägg till CSV-mappning/skapa den obligatoriska tabellen
Blobblobsökväg <> exkluderas av anledning: JSON-mönstret måste matas in med jsonMapping-parametern JSON-inmatning när ingen JSON-mappning tillhandahålls. Ange en JSON-mappning
Det gick inte att ladda ned blob: Fjärrservern returnerade ett fel: (404) Hittades inte." Bloben finns inte. Kontrollera att bloben finns. Om den finns försöker du igen och kontaktar Kusto-teamet
JSON-kolumnmappning är inte giltig: Två eller flera mappningselement pekar på samma kolumn. JSON-mappning har 2 kolumner med olika sökvägar Åtgärda JSON-mappning
EngineError – [UtilsException] IngestionDownloader.Download: En eller flera filer kunde inte laddas ned (sök i KustoLogs efter ActivityID:<GUID1>, RootActivityId:<GUID2>) Det gick inte att ladda ned en eller flera filer. Försök igen
Det gick inte att parsa: Stream med ID :t "<stream name>" har ett felaktigt CSV-format, vilket misslyckas per ValidationOptions-princip Felaktig CSV-fil (till exempel att inte ha samma antal kolumner på varje rad). Misslyckas bara när valideringsprincipen är inställd på ValidationOptions.ValidateCsvInputConstantColumns. Kontrollera csv-filerna. Det här meddelandet gäller endast CSV/TSV-filer
IngestClientAggregateException med felmeddelandet "Obligatoriska parametrar saknas för giltig signatur för delad åtkomst" DEN SAS som används är av tjänsten och inte för lagringskontot Använda SAS för lagringskontot

Felkoder för inmatning

För att hantera inmatningsfel programmatiskt utökas felinformationen med en numerisk felkod (IngestionErrorCode enumeration).

En fullständig lista över inmatningsfelkoder finns i Felkoder för inmatning.

Detaljerad undantagsreferens

CloudQueuesNotFoundException

Utlöses när inga köer returnerades från Datahantering-klustret

Basklass: Undantag

Fältnamn Typ Innebörd
Fel string Felet som uppstod vid försök att hämta köer från DM

Relevant endast när du använder Kusto Queued Ingest Client. Under inmatningsprocessen görs flera försök att hämta De Azure-köer som är länkade till DM. När dessa försök misslyckas utlöses undantaget som innehåller orsaken till felet i fältet Fel. Eventuellt utlöses även ett inre undantag i fältet "InnerException".

CloudBlobContainersNotFoundException

Utlöses när inga blobcontainrar returnerades från Datahantering-klustret

Basklass: Undantag

Fältnamn Typ Innebörd
KustoEndpoint string Slutpunkten för relevant DM

Relevant endast när du använder Kusto Queued Ingest Client.
När du matar in källor som inte redan finns i en Azure-container, till exempel filer, DataReader eller Stream, laddas data upp till en tillfällig blob för inmatning. Undantaget utlöses när det inte finns några containrar att ladda upp data till.

DuplicateIngestionPropertyException

Utlöses när en inmatningsegenskap har konfigurerats mer än en gång

Basklass: Undantag

Fältnamn Typ Innebörd
PropertyName string Namnet på dubblettegenskapen

PostMessageToQueueFailedException

Utlöses när ett meddelande skickas till kön misslyckas

Basklass: Undantag

Fältnamn Typ Innebörd
QueueUri string Köns URI
Fel string Felmeddelandet som genererades när du försökte publicera till kön

Relevant endast när du använder Kusto Queued Ingest Client.
Den köade inmatningsklienten matar in data genom att ladda upp ett meddelande till relevant Azure-kö. Om det uppstår ett efterfel utlöses undantaget. Den innehåller kö-URI:n, orsaken till felet i fältet Fel och eventuellt ett inre undantag i fältet InnerException.

DataFormatNotSpecifiedException

Utlöses när ett dataformat krävs men inte anges i IngestionProperties

Basklass: IngestClientException

När du matar in från en dataström måste ett dataformat anges i IngestionProperties för att data ska kunna matas in korrekt. Det här undantaget utlöses när IngestionProperties.Format det inte har angetts.

InvalidUriIngestClientException

Utlöses när en ogiltig blob-URI skickas som inmatningskälla

Basklass: IngestClientException

CompressFileIngestClientException

Upphöjt när inmatningsklienten inte kan komprimera filen som tillhandahålls för inmatning

Basklass: IngestClientException

Filer komprimeras innan de matas in. Undantaget utlöses när ett försök att komprimera filen misslyckas.

UploadFileToTempBlobIngestClientException

Utlöses när inmatningsklienten inte kan ladda upp den angivna källan för inmatning till en tillfällig blob

Basklass: IngestClientException

SizeLimitExceededIngestClientException

Upphöjt när en inmatningskälla är för stor

Basklass: IngestClientException

Fältnamn Typ Innebörd
Storlek long Inmatningskällans storlek
Maxsize long Maximal storlek som tillåts för inmatning

Om en inmatningskälla överskrider den maximala storleken på 4 GB genereras undantaget. Storleksvalidering kan åsidosättas av IgnoreSizeLimit flaggan i klassen IngestionProperties. Vi rekommenderar dock inte att du matar in enskilda källor som är större än 1 GB. Mer information finns i Metodtips för Kusto-inmatning.

UploadFileToTempBlobIngestClientException

Upphöjt när inmatningsklienten inte kan ladda upp filen som tillhandahålls för inmatning till en tillfällig blob

Basklass: IngestClientException

DirectIngestClientException

Utlöses när ett allmänt fel inträffar vid direkt inmatning

Basklass: IngestClientException

QueuedIngestClientException

Utlöses när ett fel inträffar vid inmatning i kö

Basklass: IngestClientException

IngestClientAggregateException

Utlöses när ett eller flera fel inträffar under en inmatning

Basklass: AggregateException

Fältnamn Typ Innebörd
IngestionErrors IList<IngestClientException> De fel som uppstår vid försök att mata in och de källor som är relaterade till dem
IsGlobalError bool Anger om undantaget inträffade för alla källor