Kesalahan data Azure Stream Analytics

Kesalahan data adalah kesalahan yang terjadi saat memproses data. Kesalahan ini paling sering terjadi selama operasi deserialisasi, serialisasi, dan penulisan data. Saat terjadi kesalahan data, Azure Stream Analytics menulis informasi mendetail dan peristiwa contoh ke log sumber daya. Aktifkan log diagnostik di pekerjaan Anda untuk mendapatkan detail tambahan ini. Dalam beberapa kasus, ringkasan informasi ini juga diberikan melalui pemberitahuan portal.

Artikel ini menguraikan berbagai jenis kesalahan, penyebab, dan detail log sumber daya untuk kesalahan input dan output data.

Skema Log Sumber Daya

Lihat Memecahkan masalah Azure Stream Analytics dengan menggunakan log diagnostik untuk melihat skema log sumber daya. JSON berikut adalah contoh nilai untuk bidang Properti dari log sumber daya untuk kesalahan data.

{
    "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
}

Kesalahan input data

InputDeserializerError.InvalidCompressionType

  • Penyebab: Jenis kompresi input yang dipilih tidak cocok dengan data.
  • Pemberitahuan portal disediakan: Ya
  • Tingkat log sumber daya: Peringatan
  • Dampak: Pesan dengan kesalahan deserialisasi, termasuk jenis kompresi yang tidak valid, dikeluarkan dari input.
  • Detail log
    • Input pengidentifikasi pesan. Untuk Event Hub, pengidentifikasinya adalah PartitionId, Offset, dan Sequence Number.

Pesan kesalahan

"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

  • Penyebab: Header data input tidak valid. Misalnya, CSV memiliki kolom dengan nama duplikat.
  • Pemberitahuan portal disediakan: Ya
  • Tingkat log sumber daya: Peringatan
  • Dampak: Pesan dengan kesalahan deserialisasi, termasuk header yang tidak valid, dikeluarkan dari input.
  • Detail log
    • Input pengidentifikasi pesan.
    • Payload aktual hingga beberapa kilobyte.

Pesan kesalahan

"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

  • Penyebab: Kolom input yang ditentukan dengan CREATE TABLE atau melalui TIMESTAMP BY tidak ada.
  • Pemberitahuan portal disediakan: Ya
  • Tingkat log sumber daya: Peringatan
  • Dampak: Peristiwa dengan kolom yang hilang dikeluarkan dari input.
  • Detail log
    • Input pengidentifikasi pesan.
    • Nama kolom yang tidak ada.
    • Payload aktual hingga beberapa kilobyte.

Pesan kesalahan

"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

  • Penyebab: Tidak dapat mengonversi input ke jenis yang ditentukan dalam pernyataan CREATE TABLE.
  • Pemberitahuan portal disediakan: Ya
  • Tingkat log sumber daya: Peringatan
  • Dampak: Peristiwa dengan kesalahan konversi jenis dihapus dari input.
  • Detail log
    • Input pengidentifikasi pesan.
    • Nama kolom dan jenis yang diharapkan.

Pesan kesalahan

"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

  • Penyebab: Data input tidak dalam format yang benar. Misalnya, inputnya bukan JSON yang valid.
  • Pemberitahuan portal disediakan: Ya
  • Tingkat log sumber daya: Peringatan
  • Dampak: Semua peristiwa dalam pesan, setelah ditemukan kesalahan data yang tidak valid, akan dihapus dari input.
  • Detail log
    • Input pengidentifikasi pesan.
    • Payload aktual hingga beberapa kilobyte.

Pesan kesalahan

"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

  • Penyebab: Nilai ekspresi TIMESTAMP BY tidak dapat dikonversi ke tanggal waktu.
  • Pemberitahuan portal disediakan: Ya
  • Tingkat log sumber daya: Peringatan
  • Dampak: Peristiwa dengan timestamp input yang tidak valid dikeluarkan dari input.
  • Detail log
    • Input pengidentifikasi pesan.
    • Pesan kesalahan.
    • Payload aktual hingga beberapa kilobyte.

Pesan kesalahan

"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

  • Penyebab: Nilai TIMESTAMP BY OVER timestampColumn adalah NULL.
  • Pemberitahuan portal disediakan: Ya
  • Tingkat log sumber daya: Peringatan
  • Dampak: Peristiwa dengan kunci timestamp input yang tidak valid akan dihapus dari input.
  • Detail log
    • Payload aktual hingga beberapa kilobyte.

Pesan kesalahan

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

LateInputEvent

  • Penyebab: Perbedaan antara waktu aplikasi dan waktu kedatangan lebih besar dari jendela toleransi keterlambatan.
  • Pemberitahuan portal disediakan: Tidak
  • Tingkat log sumber daya: Informasi
  • Dampak: Peristiwa input yang terlambat ditangani sesuai dengan pengaturan "Tangani peristiwa lain" di bagian Pengurutan Peristiwa pada konfigurasi pekerjaan. Untuk informasi selengkapnya, lihat Kebijakan Penanganan Waktu.
  • Detail log
    • Waktu aplikasi dan waktu kedatangan.
    • Payload aktual hingga beberapa kilobyte.

Pesan kesalahan

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

EarlyInputEvent

  • Penyebab: Perbedaan antara waktu Aplikasi dan waktu Kedatangan lebih besar dari 5 menit.
  • Pemberitahuan portal disediakan: Tidak
  • Tingkat log sumber daya: Informasi
  • Dampak: Peristiwa input awal ditangani sesuai dengan pengaturan "Tangani peristiwa lain" di bagian Pengurutan Peristiwa pada konfigurasi pekerjaan. Untuk informasi selengkapnya, lihat Kebijakan Penanganan Waktu.
  • Detail log
    • Waktu aplikasi dan waktu kedatangan.
    • Payload aktual hingga beberapa kilobyte.

Pesan kesalahan

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

OutOfOrderEvent

  • Penyebab: Peristiwa dianggap rusak sesuai dengan jendela toleransi kerusakan yang ditentukan.
  • Pemberitahuan portal disediakan: Tidak
  • Tingkat log sumber daya: Informasi
  • Dampak: Peristiwa yang rusak ditangani sesuai dengan pengaturan "Tangani peristiwa lain" di bagian Pengurutan Peristiwa pada konfigurasi pekerjaan. Untuk informasi selengkapnya, lihat Kebijakan Penanganan Waktu.
  • Detail log
    • Payload aktual hingga beberapa kilobyte.

Pesan kesalahan

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

Kesalahan output data

Azure Stream Analytics dapat mengidentifikasi kesalahan output data dengan atau tanpa permintaan I/O ke sink output tergantung pada konfigurasi. Misalnya, kolom yang diperlukan tidak ada, seperti PartitionKey, saat menggunakan output Tabel Azure dapat diidentifikasi tanpa permintaan I/O. Namun, pelanggaran batasan dalam output SQL memang memerlukan permintaan I/O.

Ada beberapa kesalahan data yang hanya dapat dideteksi setelah melakukan panggilan ke sink output, yang dapat memperlambat pemrosesan. Untuk mengatasi ini, ubah konfigurasi pekerjaan Anda atau kueri yang menyebabkan kesalahan data.

OutputDataConversionError.RequiredColumnMissing

  • Penyebab: Kolom yang diperlukan untuk output tidak ada. Misalnya, kolom yang didefinisikan sebagai Azure Table PartitionKey tidak ada.
  • Pemberitahuan portal disediakan: Ya
  • Tingkat log sumber daya: Peringatan
  • Dampak: Semua kesalahan konversi output data, termasuk kolom wajib yang tidak ada, ditangani sesuai dengan pengaturan Azure Policy Data Output.
  • Detail log
    • Nama kolom dan pengidentifikasi catatan atau bagian dari catatan.

Pesan kesalahan

"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

  • Penyebab: Nilai kolom tidak sesuai dengan output. Misalnya, nama kolom bukan kolom tabel Azure yang valid.
  • Pemberitahuan portal disediakan: Ya
  • Tingkat log sumber daya: Peringatan
  • Dampak: Semua kesalahan konversi output data, termasuk nama kolom yang tidak valid, ditangani sesuai dengan pengaturan Azure Policy Data Output .
  • Detail log
    • Nama kolom dan pengidentifikasi catatan atau bagian dari catatan.

Pesan kesalahan

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

OutputDataConversionError.TypeConversionError

  • Penyebab: Kolom tidak dapat dikonversi ke tipe yang valid dalam output. Misalnya, nilai kolom tidak sesuai dengan batasan atau jenis yang ditentukan dalam tabel SQL.
  • Pemberitahuan portal disediakan: Ya
  • Tingkat log sumber daya: Peringatan
  • Dampak: Semua kesalahan konversi output data, termasuk kesalahan konversi jenis, ditangani sesuai dengan pengaturan Azure Policy Data Output.
  • Detail log
    • Nama kolom.
    • Baik pengidentifikasi catatan maupun bagian dari catatan.

Pesan kesalahan

"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

  • Penyebab: Nilai pesan lebih besar dari ukuran output yang didukung. Misalnya, catatan lebih dari 1 MB untuk output Event Hub.
  • Pemberitahuan portal disediakan: Ya
  • Tingkat log sumber daya: Peringatan
  • Dampak: Semua kesalahan konversi output data, termasuk catatan melebihi batas ukuran, ditangani sesuai dengan pengaturan Azure Policy Data Output.
  • Detail log
    • Baik pengidentifikasi catatan maupun bagian dari catatan.

Pesan kesalahan

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

OutputDataConversionError.DuplicateKey

  • Penyebab: Catatan sudah berisi kolom dengan nama yang sama dengan kolom Sistem. Misalnya, output CosmosDB dengan kolom ID bernama saat kolom ID berada di kolom yang berbeda.
  • Pemberitahuan portal disediakan: Ya
  • Tingkat log sumber daya: Peringatan
  • Dampak: Semua kesalahan konversi output data, termasuk kunci duplikat, ditangani sesuai dengan pengaturan Azure Policy Data Output.
  • Detail log
    • Nama kolom.
    • Baik pengidentifikasi catatan maupun bagian dari catatan.
"BriefMessage": "Column 'devicePartitionKey' is being mapped to multiple columns."

Langkah berikutnya