Udostępnij za pośrednictwem


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."

Następne kroki