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 operacji usuwania serializacji danych, serializacji i 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 informacje. 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ą usuwane 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 ze zduplikowanymi nazwami.
  • 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ą usuwane 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ą usuwane 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ą usuwane 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 są w odpowiednim formacie. 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ą usunięte 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 datę/godzinę.
  • Podane powiadomienie w portalu: Tak
  • Poziom dziennika zasobów: ostrzeżenie
  • Wpływ: zdarzenia z nieprawidłowym znacznikiem czasu wejściowego są usuwane 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ść TIMESTAMP BY OVER timestampColumn ma wartość NULL.
  • Podane powiadomienie w portalu: Tak
  • Poziom dziennika zasobów: ostrzeżenie
  • Wpływ: zdarzenia z nieprawidłowym kluczem sygnatury czasowej wejściowej są usuwane 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ż przedział tolerancji opóźnienia przylotu.
  • Podane powiadomienie w portalu: Nie
  • Poziom dziennika zasobów: informacje
  • Wpływ: Zdarzenia późnych danych wejściowych są obsługiwane zgodnie z ustawieniem "Obsługa innych zdarzeń" w sekcji Kolejność zdarzeń konfiguracji zadania. Aby uzyskać więcej informacji, zobacz Zasady obsługi czasu.
  • Szczegóły dziennika
    • Czas i godzina przybycia aplikacji.
    • 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 przyjazdu 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 Kolejność zdarzeń konfiguracji zadania. Aby uzyskać więcej informacji, zobacz Zasady obsługi czasu.
  • Szczegóły dziennika
    • Czas i godzina przybycia aplikacji.
    • 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 traktowane jako poza kolejnością zgodnie z 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 Kolejność 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 do ujścia danych wyjściowych w zależności od konfiguracji. Na przykład brakuje wymaganej kolumny, takiej jak PartitionKey, podczas 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, które powoduje 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 brak wymaganej 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 zasad 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 limit przekroczenia 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 to inna kolumna.
  • 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 zasad danych wyjściowych .
  • Szczegóły dziennika
    • Nazwa kolumny.
    • Identyfikator rekordu lub część rekordu.
"BriefMessage": "Column 'devicePartitionKey' is being mapped to multiple columns."

Następne kroki