Błędy danych usługi Azure Stream Analytics

Błędy danych pojawiają się, gdy Azure Stream Analytics przetwarza Twoje dane streamingowe. Błędy te najczęściej występują podczas operacji deserializacji, serializacji i zapisu danych. Gdy wystąpią błędy danych, usługa Stream Analytics zapisuje szczegółowe informacje i przykładowe zdarzenia w dziennikach zasobów. Włącz logi diagnostyczne w swojej pracy, aby uzyskać te dodatkowe informacje. W niektórych przypadkach powiadomienia portalowe zawierają również podsumowanie tych informacji.

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

Aby zobaczyć schemat dzienników zasobów, zobacz Rozwiązywanie problemów z usługą Azure Stream Analytics przy użyciu dzienników diagnostycznych. 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.NiepoprawnyTypKompresji

  • Przyczyna: Wybrany przez Ciebie typ kompresji wejściowej nie zgadza się z danymi.
  • Podane powiadomienie w portalu: Tak
  • Poziom dziennika zasobów: Ostrzeżenie
  • Wpływ: Stream Analytics odrzuca komunikaty z błędami deserializacji, w tym nieprawidłowym typem kompresji, z wejścia.
  • Szczegóły dziennika:
    • Identyfikator komunikatu wejściowego. Dla Azure Event Hubs identyfikatorem jest PartitionId, Offset oraz 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."

BłądDeserializatoraDanych.NagłówekNiepoprawny

  • 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: Wiadomości zawierające błędy deserializacji, w tym nieprawidłowy nagłówek, są usuwane z wejścia.
  • Szczegóły dziennika:
    • Identyfikator komunikatu wejściowego.
    • Rzeczywista wielkość danych: 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.BrakująceKolumny

  • Przyczyna: Kolumny wejściowe zdefiniowane za pomocą CREATE TABLE lub TIMESTAMP BY nie istnieją.
  • Podane powiadomienie w portalu: Tak
  • Poziom rejestrowania 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.
    • Rzeczywista wielkość danych użytecznych: 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"

Błąd deserializacji danych wejściowych: błąd konwersji typu

  • Przyczyna: Stream Analytics nie może przekonwertować danych wejściowych na typ, który określiłeś w CREATE TABLE instrukcji.
  • Podane powiadomienie w portalu: Tak
  • Poziom dziennika zasobów: ostrzeżenie
  • Wpływ: Stream Analytics usuwa zdarzenia z błędem konwersji typu z wejścia.
  • 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."

BłądDeserializacjiWejścia.NieprawidłoweDane

  • 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: Po napotkaniu błędu związanego z nieprawidłowymi danymi usługa Stream Analytics odrzuca wszystkie zdarzenia w wiadomości.
  • 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"

NieprawidłowyZnacznikCzasuWejścia

  • 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 danych 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 znacznika czasu wejściowego są porzucane z danych wejściowych.
  • Szczegóły dziennika:
    • Rzeczywisty ładunek o wielkości 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 na późne przybycie.
  • 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. Więcej informacji można znaleźć w Zasadach zarządzania czasem.
  • 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ż pięć 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. Więcej informacji można znaleźć w Zasadach zarządzania czasem.
  • Szczegóły dziennika:
    • Czas aplikacji i czas przybycia.
    • Rzeczywisty ładunek użyteczny wynosi 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 poza kolejnością zgodnie z zdefiniowanym oknem tolerancji zdarzeń poza kolejnością.
  • Podane powiadomienie w portalu: Nie
  • Poziom dziennika zasobów: informacje
  • Wpływ: Zadanie obsługuje zdarzenia poza kolejnością zgodnie z ustawieniami Obsługa innych zdarzeń w sekcji Event Ordering w konfiguracji zadania. Więcej informacji można znaleźć w Zasadach zarządzania czasem.
  • Szczegóły dziennika:
    • Rzeczywisty ładunek użyteczny wynosi 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 operacji wejścia/wyjścia do miejsca docelowego danych wyjściowych lub bez niego, w zależności od konfiguracji. Na przykład Stream Analytics może zidentyfikować brakującą wymaganą kolumnę, na przykład PartitionKey, gdy używasz wyjścia Azure Table, bez żądania I/O. Jednak naruszenia ograniczeń w wyjściu SQL wymagają operacji wejścia/wyjścia.

Usługa Stream Analytics może wykryć niektóre błędy danych dopiero po wywołaniu ujścia danych wyjściowych, co może spowolnić przetwarzanie. Aby rozwiązać ten problem, zmień konfigurację swojego zadania lub zapytanie, które powoduje błąd danych.

Błąd konwersji danych wyjściowych: brak wymaganej kolumny

  • 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: Ustawienie Output Data Policy obsługuje wszystkie błędy konwersji danych wyjściowych, w tym brakujące wymagane kolumny.
  • 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."

BłądKonwersjiDanychWyjściowych.NazwaKolumnyNieprawidłowa

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

BłądKonwersjiDanychWyjściowych.BłądKonwersjiTypu

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

BłądKonwersjiDanychWyjściowych.RekordPrzekroczyłLimitRozmiaru

  • Przyczyna: Wartość komunikatu jest większa niż obsługiwany rozmiar danych wyjściowych. Na przykład rekord ma rozmiar większy niż 1 MB w przypadku 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."

BłądKonwersjiDanychWyjściowych.DuplikatKlucza

  • Przyczyna: Rekord już zawiera kolumnę o tej samej nazwie co kolumna systemowa. Na przykład Azure Cosmos DB generuje kolumnę o nazwie ID, gdy kolumna ID jest w innej kolumnie.
  • 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.

Komunikat o błędzie

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

Następne kroki