Datové chyby ve službě Azure Stream Analytics

Chyby v datech nastávají, když Azure Stream Analytics zpracovává vaše streamovaná data. Tyto chyby se nejčastěji vyskytují při deserializaci, serializaci a zápisu dat. Když dojde k chybám dat, Stream Analytics zapíše podrobné informace a ukázkové události do protokolů prostředků. Zapněte si diagnostické záznamy ve své práci, abyste získali tyto další informace. V některých případech portálová oznámení také poskytují shrnutí těchto informací.

Tento článek popisuje různé typy chyb, jejich příčiny a podrobnosti v protokolu prostředků pro chyby vstupních a výstupních dat.

Schéma protokolů prostředků

Pro zobrazení schématu resource logů viz Troubleshoot Azure Stream Analytics pomocí diagnostických logů. Následující JSON je ukázková hodnota pole Vlastnosti v protokolu prostředku pro datovou chybu.

{
    "Source": "InputTelemetryData",
    "Type": "DataError",
    "DataErrorType": "InputDeserializerError.InvalidData",
    "BriefMessage": "JSON input stream should either be an array of objects or line separated objects. Found token type: Integer",
    "Message": "Input Message Id: https:\\/\\/exampleBlob.blob.core.windows.net\\/inputfolder\\/csv.txt Error: JSON input stream should either be an array of objects or line separated objects. Found token type: Integer",
    "ExampleEvents": "[\"1,2\\\\u000d\\\\u000a3,4\\\\u000d\\\\u000a5,6\"]",
    "FromTimestamp": "2019-03-22T22:34:18.5664937Z",
    "ToTimestamp": "2019-03-22T22:34:18.5965248Z",
    "EventCount": 1
}

Chyby vstupních dat

InputDeserializerError.InvalidCompressionType

  • Příčina: Typ vstupní komprese, který jste vybral, neodpovídá datům.
  • Oznámení na portálu: Ano
  • Úroveň protokolování prostředků: Upozornění
  • Dopad: Stream Analytics opouští zprávy s jakýmikoli chybami deserializace, včetně neplatného typu komprese, ze vstupu.
  • Podrobnosti o záznamech:
    • Vstupní identifikátor zprávy. Pro Azure Event Hubs je identifikátor PartitionId, Offset a Sequence Number.

Chybová zpráva

"BriefMessage": "Unable to decompress events from resource 'https:\\/\\/exampleBlob.blob.core.windows.net\\/inputfolder\\/csv.txt'. Please ensure compression setting fits the data being processed."

Chyba vstupního deserializátoru: Neplatná hlavička

  • Příčina: Hlavička vstupních dat je neplatná. Například soubor CSV obsahuje sloupce s duplicitními názvy.
  • Oznámení na portálu poskytnuto: Ano
  • Úroveň protokolování prostředků: Upozornění
  • Dopad: Zprávy s jakýmikoli chybami deserializace, včetně neplatné hlavičky, jsou ze vstupu vyhozeny.
  • Podrobnosti o záznamech:
    • Vstupní identifikátor zprávy.
    • Skutečná datová část až do několika kilobajtů.

Chybová zpráva

"BriefMessage": "Invalid CSV Header for resource 'https:\\/\\/exampleBlob.blob.core.windows.net\\/inputfolder\\/csv.txt'. Please make sure there are no duplicate field names."

InputDeserializerError.ChybějícíSloupce

  • Příčina: Vstupní sloupce, které definujete pomocí CREATE TABLE nebo prostřednictvím TIMESTAMP BY, neexistují.
  • Bylo poskytnuto oznámení portálu: Ano
  • Úroveň protokolování prostředků: Upozornění
  • Dopad: Události s chybějícími sloupci se ze vstupu zahodí.
  • Podrobnosti o záznamech:
    • Vstupní identifikátor zprávy.
    • Názvy chybějících sloupců
    • Skutečná datová část až do několika kilobajtů.

Chybové zprávy

"BriefMessage": "Could not deserialize the input event(s) from resource 'https:\\/\\/exampleBlob.blob.core.windows.net\\/inputfolder\\/csv.txt' as Csv. Some possible reasons: 1) Malformed events 2) Input source configured with incorrect serialization format" 
"Message": "Missing fields specified in query or in create table. Fields expected:ColumnA Fields found:ColumnB"

InputDeserializerError.TypeConversionError

  • Příčina: Stream Analytics nemůže převést vstup na typ, který jste uvedli ve CREATE TABLE výroku.
  • Oznámení na portálu poskytnuto: Ano
  • Úroveň protokolování prostředků: Upozornění
  • Dopad: Stream Analytics zahodí události s chybou při převodu typu na vstupu.
  • Podrobnosti o záznamech:
    • Vstupní identifikátor zprávy.
    • Název sloupce a očekávaného typu

Chybové zprávy

"BriefMessage": "Could not deserialize the input event(s) from resource '''https:\\/\\/exampleBlob.blob.core.windows.net\\/inputfolder\\/csv.txt ' as Csv. Some possible reasons: 1) Malformed events 2) Input source configured with incorrect serialization format" 
"Message": "Unable to convert column: dateColumn to expected type."

ChybaDeserializátoruVstupu.NeplatnáData

  • Příčina: Vstupní data nejsou ve správném formátu. Například vstup není platný JSON.
  • Oznámení na portálu poskytnuto: Ano
  • Úroveň protokolování prostředků: Upozornění
  • Dopad: Stream Analytics vyřadí všechny události ve zprávě poté, co narazí na chybu neplatných dat.
  • Podrobnosti o záznamech:
    • Vstupní identifikátor zprávy.
    • Skutečná datová část až do několika kilobajtů.

Chybové zprávy

"BriefMessage": "JSON input stream should either be an array of objects or line separated objects. Found token type: String"
"Message": "JSON input stream should either be an array of objects or line separated objects. Found token type: String"

Neplatné časové razítko vstupu

  • Příčina: Hodnotu výrazu TIMESTAMP BY nelze převést na datetime.
  • Oznámení na portálu poskytnuto: Ano
  • Úroveň protokolování prostředků: Upozornění
  • Dopad: Události s neplatným vstupním časovým razítkem jsou ze vstupu vyřazeny.
  • Podrobnosti o záznamech:
    • Vstupní identifikátor zprávy.
    • Chybová zpráva.
    • Skutečná datová část až do několika kilobajtů.

Chybová zpráva

"BriefMessage": "Unable to get timestamp for resource 'https:\\/\\/exampleBlob.blob.core.windows.net\\/inputfolder\\/csv.txt ' due to error 'Cannot convert string to datetime'"

NeplatnýKlíčČasovéhoRazítkaVstupu

  • Příčina: Hodnota sloupce timestampColumn v TIMESTAMP BY OVER je NULL.
  • Oznámení na portálu poskytnuto: Ano
  • Úroveň protokolování prostředků: Upozornění
  • Dopad: Události s neplatným vstupním klíčem časového razítka jsou ze vstupu vyřazeny.
  • Podrobnosti o záznamech:
    • Skutečný obsah může být až několik kilobajtů.

Chybová zpráva

"BriefMessage": "Unable to get value of TIMESTAMP BY OVER COLUMN"

LateInputEvent

  • Příčina: Rozdíl mezi časem aplikace a časem příjezdu je větší než okno tolerance pozdního příchodu.
  • Oznámení portálu poskytnuto: Ne
  • Úroveň protokolu prostředků: Informace
  • Dopad: Události pozdního vstupu se zpracovávají podle nastavení Zpracovat jiné události v části Pořadí událostí konfigurace úlohy. Pro více informací viz Zásady nakládání s časem.
  • Podrobnosti o záznamech:
    • Čas aplikace a čas příjezdu.
    • Skutečná datová část až do několika kilobajtů.

Chybová zpráva

"BriefMessage": "Input event with application timestamp '2019-01-01' and arrival time '2019-01-02' was sent later than configured tolerance."

Událost časného vstupu

  • Příčina: Rozdíl mezi časem podání a časem příjezdu je větší než pět minut.
  • Oznámení portálu bylo poskytnuto: Ne
  • Úroveň protokolu prostředků: Informace
  • Dopad: Události počátečního vstupu se zpracovávají v závislosti na nastavení Zpracovat jiné události v části Pořadí událostí konfigurace úlohy. Pro více informací viz Zásady nakládání s časem.
  • Podrobnosti o záznamech:
    • Čas aplikace a čas příjezdu.
    • Skutečná datová část až do několika kilobajtů.

Chybová zpráva

"BriefMessage": "Input event arrival time '2019-01-01' is earlier than input event application timestamp '2019-01-02' by more than 5 minutes."

OutOfOrderEvent

  • Příčina: Událost je mimo pořadí podle definovaného tolerančního okna pro události mimo pořadí.
  • Oznámení portálu poskytnuto: Ne
  • Úroveň protokolu prostředků: Informace
  • Dopad: Úloha zpracovává události mimo pořadí podle nastavení Zvládání ostatních událostí v sekci Event Ordering v konfiguraci úlohy. Pro více informací viz Zásady nakládání s časem.
  • Podrobnosti o záznamech:
    • Skutečná datová část až do několika kilobajtů.

Chybová zpráva

"Message": "Out of order event(s) received."

Chyby výstupních dat

Azure Stream Analytics dokáže v závislosti na konfiguraci identifikovat chyby výstupních dat s vstupně-výstupním požadavkem nebo bez požadavků na výstupní jímku. Například Stream Analytics dokáže identifikovat chybějící požadovaný sloupec, například PartitionKey, když používáte výstup Azure Table, bez požadavku na I/O. Porušení omezení ve výstupu SQL ale vyžadují vstupně-výstupní požadavek.

Analýza proudů dokáže detekovat několik chyb dat až po vyvolání výstupního spotřebiče, což může zpomalit zpracování. Pro vyřešení tohoto problému změňte konfiguraci své práce nebo dotaz, který způsobuje chybu dat.

ChybaKonverzeVýstupníchDat.PotřebnýSloupecChybí

  • Příčina: Sloupec požadovaný pro výstup neexistuje. Například sloupec definovaný jako Azure Table PartitionKey neexistuje.
  • Oznámení portálu k dispozici: Ano
  • Úroveň protokolování prostředků: Varování
  • Dopad: Nastavení Output Data Policy zpracovává všechny chyby konverze výstupních dat, včetně chybějících požadovaných sloupců.
  • Podrobnosti o záznamech:
    • Název sloupce a identifikátor záznamu nebo jeho část.

Chybová zpráva

"Message": "The output record does not contain primary key property: [deviceId] Ensure the query output contains the column [deviceId] with a unique non-empty string less than '255' characters."

ChybaKonverzeVýstupníchDat.ChybnéJménoSloupce

  • Příčina: Hodnota sloupce neodpovídá výstupu. Například název sloupce není platným sloupcem tabulky Azure.
  • Oznámení portálu poskytnuto: Ano
  • Úroveň protokolování prostředků: Varování
  • Dopad: Všechny chyby převodu výstupních dat, včetně neplatného názvu sloupce, jsou zpracovávány podle nastavení Zásady výstupních dat.
  • Podrobnosti o záznamech:
    • Název sloupce a identifikátor záznamu nebo část záznamu.

Chybová zpráva

"Message": "Invalid property name #deviceIdValue. Please refer MSDN for Azure table property naming convention."

OutputDataConversionError.TypeConversionError

  • Příčina: Sloupec nelze ve výstupu převést na platný typ. Například hodnota sloupce není kompatibilní s omezeními nebo typem definovaným v tabulce SQL.
  • Oznámení portálu k dispozici: Ano
  • Úroveň protokolování prostředků: Upozornění
  • Dopad: Všechny chyby převodu výstupních dat, včetně chyby převodu typu, se zpracovávají v závislosti na nastavení výstupních dat.
  • Podrobnosti o záznamech:
    • Název sloupce
    • Buď identifikátor záznamu, nebo část záznamu.

Chybová zpráva

"Message": "The column [id] value null or its type is invalid. Ensure to provide a unique non-empty string less than '255' characters."

ChybaKonverzeDat.VýstupníZáznamPřekročilLimitVelikosti

  • Příčina: Hodnota zprávy je větší než podporovaná velikost výstupu. Například záznam je větší než 1 MB pro výstup z event hubu.
  • Oznámení portálu poskytnuto: Ano
  • Úroveň protokolování prostředků: Upozornění
  • Dopad: Všechny chyby převodu výstupních dat, včetně překročení limitu velikosti záznamu , se zpracovávají podle nastavení výstupních dat .
  • Podrobnosti o záznamech:
    • Buď identifikátor záznamu, nebo část záznamu.

Chybová zpráva

"BriefMessage": "Single output event exceeds the maximum message size limit allowed (262144 bytes) by Event Hub."

OutputDataConversionError.DuplicateKey

  • Příčina: Záznam už obsahuje sloupec se stejným názvem jako systémový sloupec. Například výstup Azure Cosmos DB obsahuje sloupec s názvem ID, když je sloupec ID mapován na jiný sloupec.
  • Oznámení portálu k dispozici: Ano
  • Úroveň protokolování prostředků: Upozornění
  • Dopad: Všechny chyby převodu výstupních dat, včetně duplicitního klíče, se zpracovávají podle nastavení výstupních dat.
  • Podrobnosti o záznamech:
    • Název sloupce
    • Buď identifikátor záznamu, nebo část záznamu.

Chybová zpráva

"BriefMessage": "Column 'devicePartitionKey' is being mapped to multiple columns."

Další kroky