Błędy danych usługi Azure Stream Analytics
Błędy danych to błędy występujące podczas przetwarzania danych. Te błędy najczęściej występują podczas deseralizacji danych, serializacji i operacji zapisu. Gdy wystąpią błędy danych, usługa Stream Analytics zapisuje szczegółowe informacje i przykładowe zdarzenia w dziennikach zasobów. Włącz dzienniki diagnostyczne w zadaniu, aby uzyskać te dodatkowe szczegóły. W niektórych przypadkach podsumowanie tych informacji jest również udostępniane za pośrednictwem powiadomień portalu.
W tym artykule opisano różne typy błędów, przyczyny i szczegóły dziennika zasobów dotyczące błędów danych wejściowych i wyjściowych.
Schemat dzienników zasobów
Zobacz Rozwiązywanie problemów z usługą Azure Stream Analytics przy użyciu dzienników diagnostycznych , aby wyświetlić schemat dzienników zasobów. Poniższy kod JSON to przykładowa wartość pola Właściwości dziennika zasobów dla błędu danych.
{
"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
}
Błędy danych wejściowych
InputDeserializerError.InvalidCompressionType
- Przyczyna: Wybrany typ kompresji wejściowej nie jest zgodny z danymi.
- Podane powiadomienie w portalu: Tak
- Poziom dziennika zasobów: ostrzeżenie
- Wpływ: Komunikaty z wszelkimi błędami deserializacji, w tym nieprawidłowym typem kompresji, są porzucane z danych wejściowych.
- Szczegóły dziennika
- Identyfikator komunikatu wejściowego. W przypadku centrum zdarzeń identyfikator to PartitionId, Offset i Sequence Number.
Komunikat o błędzie
"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."
InputDeserializerError.InvalidHeader
- Przyczyna: nagłówek danych wejściowych jest nieprawidłowy. Na przykład plik CSV zawiera kolumny o zduplikowanych nazwach.
- Podane powiadomienie w portalu: Tak
- Poziom dziennika zasobów: ostrzeżenie
- Wpływ: Komunikaty z wszelkimi błędami deserializacji, w tym nieprawidłowym nagłówkiem, są porzucane z danych wejściowych.
- Szczegóły dziennika
- Identyfikator komunikatu wejściowego.
- Rzeczywisty ładunek do kilku kilobajtów.
Komunikat o błędzie
"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.MissingColumns
- Przyczyna: Kolumny wejściowe zdefiniowane za pomocą polecenia CREATE TABLE lub TIMESTAMP BY nie istnieją.
- Podane powiadomienie w portalu: Tak
- Poziom dziennika zasobów: ostrzeżenie
- Wpływ: zdarzenia z brakującymi kolumnami są porzucane z danych wejściowych.
- Szczegóły dziennika
- Identyfikator komunikatu wejściowego.
- Nazwy brakujących kolumn.
- Rzeczywisty ładunek do kilku kilobajtów.
Komunikaty o błędach
"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
- Przyczyna: Nie można przekonwertować danych wejściowych na typ określony w instrukcji CREATE TABLE.
- Podane powiadomienie w portalu: Tak
- Poziom dziennika zasobów: ostrzeżenie
- Wpływ: zdarzenia z błędem konwersji typu są porzucane z danych wejściowych.
- Szczegóły dziennika
- Identyfikator komunikatu wejściowego.
- Nazwa kolumny i oczekiwany typ.
Komunikaty o błędach
"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."
InputDeserializerError.InvalidData
- Przyczyna: Dane wejściowe nie mają odpowiedniego formatu. Na przykład dane wejściowe nie są prawidłowe w formacie JSON.
- Podane powiadomienie w portalu: Tak
- Poziom dziennika zasobów: ostrzeżenie
- Wpływ: wszystkie zdarzenia w komunikacie po napotkaniu nieprawidłowego błędu danych zostaną porzucone z danych wejściowych.
- Szczegóły dziennika
- Identyfikator komunikatu wejściowego.
- Rzeczywisty ładunek do kilku kilobajtów.
Komunikaty o błędach
"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"
InvalidInputTimeStamp
- Przyczyna: Nie można przekonwertować wartości wyrażenia TIMESTAMP BY na wartość datetime.
- Podane powiadomienie w portalu: Tak
- Poziom dziennika zasobów: ostrzeżenie
- Wpływ: zdarzenia z nieprawidłowym znacznikiem czasu wejściowego są porzucane z danych wejściowych.
- Szczegóły dziennika
- Identyfikator komunikatu wejściowego.
- Komunikat o błędzie.
- Rzeczywisty ładunek do kilku kilobajtów.
Komunikat o błędzie
"BriefMessage": "Unable to get timestamp for resource 'https:\\/\\/exampleBlob.blob.core.windows.net\\/inputfolder\\/csv.txt ' due to error 'Cannot convert string to datetime'"
InvalidInputTimeStampKey
- Przyczyna: wartość ZNACZNIKA CZASU BY OVER timestampColumn ma wartość NULL.
- Podane powiadomienie w portalu: Tak
- Poziom dziennika zasobów: ostrzeżenie
- Wpływ: Zdarzenia z nieprawidłowym kluczem znacznika czasu wejściowego są porzucane z danych wejściowych.
- Szczegóły dziennika
- Rzeczywisty ładunek do kilku kilobajtów.
Komunikat o błędzie
"BriefMessage": "Unable to get value of TIMESTAMP BY OVER COLUMN"
LateInputEvent
- Przyczyna: Różnica między czasem aplikacji a czasem przybycia jest większa niż okno tolerancji opóźnionego przybycia.
- Podane powiadomienie w portalu: Nie
- Poziom dziennika zasobów: informacje
- Wpływ: Późne zdarzenia wejściowe są obsługiwane zgodnie z ustawieniem "Obsługa innych zdarzeń" w sekcji Porządkowanie zdarzeń konfiguracji zadania. Aby uzyskać więcej informacji, zobacz Zasady obsługi czasu.
- Szczegóły dziennika
- Czas aplikacji i czas przybycia.
- Rzeczywisty ładunek do kilku kilobajtów.
Komunikat o błędzie
"BriefMessage": "Input event with application timestamp '2019-01-01' and arrival time '2019-01-02' was sent later than configured tolerance."
EarlyInputEvent
- Przyczyna: Różnica między czasem aplikacji a czasem przybycia jest większa niż 5 minut.
- Podane powiadomienie w portalu: Nie
- Poziom dziennika zasobów: informacje
- Wpływ: Wczesne zdarzenia wejściowe są obsługiwane zgodnie z ustawieniem "Obsługa innych zdarzeń" w sekcji Porządkowanie zdarzeń konfiguracji zadania. Aby uzyskać więcej informacji, zobacz Zasady obsługi czasu.
- Szczegóły dziennika
- Czas aplikacji i czas przybycia.
- Rzeczywisty ładunek do kilku kilobajtów.
Komunikat o błędzie
"BriefMessage": "Input event arrival time '2019-01-01' is earlier than input event application timestamp '2019-01-02' by more than 5 minutes."
OutOfOrderEvent
- Przyczyna: Zdarzenie jest uznawane za poza kolejnością zgodnie ze zdefiniowanym oknem tolerancji poza kolejnością.
- Podane powiadomienie w portalu: Nie
- Poziom dziennika zasobów: informacje
- Wpływ: Zdarzenia poza kolejnością są obsługiwane zgodnie z ustawieniem "Obsługa innych zdarzeń" w sekcji Porządkowanie zdarzeń konfiguracji zadania. Aby uzyskać więcej informacji, zobacz Zasady obsługi czasu.
- Szczegóły dziennika
- Rzeczywisty ładunek do kilku kilobajtów.
Komunikat o błędzie
"Message": "Out of order event(s) received."
Błędy danych wyjściowych
Usługa Azure Stream Analytics może identyfikować błędy danych wyjściowych z żądaniem we/wy lub bez żądania do ujścia danych wyjściowych w zależności od konfiguracji. Na przykład brak wymaganej kolumny, takiej jak PartitionKey
, w przypadku korzystania z danych wyjściowych tabeli platformy Azure można zidentyfikować bez żądania we/wy. Jednak naruszenia ograniczeń w danych wyjściowych SQL wymagają żądania we/wy.
Istnieje kilka błędów danych, które można wykryć tylko po wywołaniu ujścia danych wyjściowych, co może spowolnić przetwarzanie. Aby rozwiązać ten problem, zmień konfigurację zadania lub zapytanie powodujące błąd danych.
OutputDataConversionError.RequiredColumnMissing
- Przyczyna: kolumna wymagana dla danych wyjściowych nie istnieje. Na przykład kolumna zdefiniowana jako klucz partycji tabeli platformy Azure nie istnieje.
- Podane powiadomienie w portalu: Tak
- Poziom dziennika zasobów: ostrzeżenie
- Wpływ: wszystkie błędy konwersji danych wyjściowych, w tym brakujące wymagane kolumny, są obsługiwane zgodnie z ustawieniem zasad danych wyjściowych.
- Szczegóły dziennika
- Nazwa kolumny i identyfikator rekordu lub część rekordu.
Komunikat o błędzie
"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."
OutputDataConversionError.ColumnNameInvalid
- Przyczyna: Wartość kolumny nie jest zgodna z danymi wyjściowymi. Na przykład nazwa kolumny nie jest prawidłową kolumną tabeli platformy Azure.
- Podane powiadomienie w portalu: Tak
- Poziom dziennika zasobów: ostrzeżenie
- Wpływ: wszystkie błędy konwersji danych wyjściowych, w tym nieprawidłowa nazwa kolumny, są obsługiwane zgodnie z ustawieniem zasad danych wyjściowych.
- Szczegóły dziennika
- Nazwa kolumny i identyfikator rekordu lub część rekordu.
Komunikat o błędzie
"Message": "Invalid property name #deviceIdValue. Please refer MSDN for Azure table property naming convention."
OutputDataConversionError.TypeConversionError
- Przyczyna: Nie można przekonwertować kolumny na prawidłowy typ w danych wyjściowych. Na przykład wartość kolumny jest niezgodna z ograniczeniami lub typem zdefiniowanym w tabeli SQL.
- Podane powiadomienie w portalu: Tak
- Poziom dziennika zasobów: ostrzeżenie
- Wpływ: wszystkie błędy konwersji danych wyjściowych, w tym błąd konwersji typu, są obsługiwane zgodnie z ustawieniem zasady danych wyjściowych.
- Szczegóły dziennika
- Nazwa kolumny.
- Identyfikator rekordu lub część rekordu.
Komunikat o błędzie
"Message": "The column [id] value null or its type is invalid. Ensure to provide a unique non-empty string less than '255' characters."
OutputDataConversionError.RecordExceededSizeLimit
- Przyczyna: Wartość komunikatu jest większa niż obsługiwany rozmiar danych wyjściowych. Na przykład rekord jest większy niż 1 MB dla danych wyjściowych centrum zdarzeń.
- Podane powiadomienie w portalu: Tak
- Poziom dziennika zasobów: ostrzeżenie
- Wpływ: wszystkie błędy konwersji danych wyjściowych, w tym przekroczony limit rozmiaru rekordu, są obsługiwane zgodnie z ustawieniem zasad danych wyjściowych.
- Szczegóły dziennika
- Identyfikator rekordu lub część rekordu.
Komunikat o błędzie
"BriefMessage": "Single output event exceeds the maximum message size limit allowed (262144 bytes) by Event Hub."
OutputDataConversionError.DuplicateKey
- Przyczyna: Rekord zawiera już kolumnę o takiej samej nazwie jak kolumna System. Na przykład dane wyjściowe usługi CosmosDB z kolumną o nazwie ID, gdy kolumna ID jest do innej kolumny.
- Podane powiadomienie w portalu: Tak
- Poziom dziennika zasobów: ostrzeżenie
- Wpływ: wszystkie błędy konwersji danych wyjściowych, w tym zduplikowany klucz, są obsługiwane zgodnie z ustawieniem zasady danych wyjściowych.
- Szczegóły dziennika
- Nazwa kolumny.
- Identyfikator rekordu lub część rekordu.
"BriefMessage": "Column 'devicePartitionKey' is being mapped to multiple columns."