Kesalahan data Azure Stream Analytics

Kesalahan data terjadi saat Azure Stream Analytics memproses data streaming Anda. Kesalahan ini paling sering terjadi selama proses deserialisasi data, serialisasi, dan penulisan. 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, notifikasi portal juga memberikan ringkasan informasi ini.

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

Skema log sumber daya

Untuk melihat skema log sumber daya, lihat Memecahkan masalah Azure Stream Analytics menggunakan log diagnostik. 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.TipeKompresiTidakValid

  • Penyebab: Jenis kompresi input yang Anda pilih tidak sesuai dengan data.
  • Pemberitahuan portal disediakan: Ya
  • Tingkat log sumber daya: Peringatan
  • Dampak: Stream Analytics menghapus pesan dengan kesalahan deserialisasi, termasuk tipe kompresi yang tidak valid, dari input.
  • Detail log:
    • Pengidentifikasi pesan masukan. Untuk Azure Event Hubs, pengenalnya adalah PartitionId, Offset, dan Nomor Urutan.

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

Kesalahan InputDeserializer: Header Tidak Valid

  • Penyebab: Header data masukan 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, akan dihapus dari input.
  • Detail log:
    • Masukkan pengidentifikasi pesan.
    • Muatan data sebenarnya 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."

KesalahanDeserialisasiInput.KolomHilang

  • Penyebab: Kolom input yang Anda definisikan 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:
    • Pengidentifikasi pesan masukan.
    • Nama kolom yang tidak ada.
    • Payload sebenarnya 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: Stream Analytics tidak dapat mengonversi input ke tipe yang Anda tentukan dalam CREATE TABLE pernyataan.
  • Pemberitahuan portal disediakan: Ya
  • Tingkat log sumber daya: Peringatan
  • Dampak: Stream Analytics menghapus event dengan kesalahan konversi tipe dari input.
  • Detail log:
    • Pengidentifikasi pesan masukan.
    • 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."

KesalahanInputDeserializer.DataTidakValid

  • Penyebab: Data input tidak dalam format yang benar. Misalnya, inputnya bukan JSON yang valid.
  • Pemberitahuan portal disediakan: Ya
  • Tingkat log sumber daya: Peringatan
  • Dampak: Stream Analytics menghapus semua event dalam pesan setelah mengalami error data tidak valid.
  • Detail log:
    • Pengidentifikasi pesan masukan.
    • Ukuran payload sebenarnya 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"

Stempel Waktu Input Tidak Valid

  • Penyebab: Nilai ekspresi TIMESTAMP BY tidak dapat dikonversi ke tanggal waktu.
  • Pemberitahuan portal disediakan: Ya
  • Tingkat log sumber daya: Peringatan
  • Dampak: Kejadian dengan stempel waktu masukan yang tidak valid dibuang dari masukan.
  • Detail log:
    • Pengidentifikasi pesan masukan.
    • Pesan kesalahan.
    • Payload sebenarnya 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'"

Kunci Cap Waktu Masukan Tidak Valid

  • 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 sebenarnya 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 daripada jendela toleransi kedatangan terlambat.
  • Notifikasi portal tersedia: 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 lebih lanjut, lihat Kebijakan Penanganan Waktu.
  • Detail log:
    • Waktu aplikasi dan waktu kedatangan.
    • Muatan aktual hingga beberapa kilobita.

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 dari lima menit.
  • Notifikasi portal tersedia: 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 lebih lanjut, lihat Kebijakan Penanganan Waktu.
  • Detail log:
    • Waktu aplikasi dan waktu kedatangan.
    • Ukuran payload sebenarnya 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 tidak berurutan sesuai dengan jendela toleransi di luar urutan yang telah ditentukan.
  • Notifikasi portal tersedia: Tidak
  • Tingkat log sumber daya: Informasi
  • Dampak: Tugas menangani kejadian yang tidak berurutan sesuai dengan pengaturan Tangani kejadian lain di bagian Urutan Kejadian pada konfigurasi tugas. Untuk informasi lebih lanjut, lihat Kebijakan Penanganan Waktu.
  • Detail log:
    • Payload sebenarnya hingga beberapa kilobyte.

Pesan kesalahan

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

Kesalahan data keluaran

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

Stream Analytics hanya dapat mendeteksi beberapa kesalahan data setelah memanggil output sink, yang dapat memperlambat pemrosesan. Untuk mengatasi masalah ini, ubah konfigurasi pekerjaan Anda atau kueri yang menyebabkan kesalahan data.

KesalahanKonversiDataKeluaran.KolomWajibHilang

  • 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: Pengaturan Kebijakan Data Keluaran menangani semua kesalahan konversi data keluaran, termasuk kolom wajib yang hilang.
  • Detail log:
    • Nama kolom dan pengenal 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."

KesalahanKonversiDataOutput.NamaKolomTidakValid

  • 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 data output, termasuk nama kolom yang tidak valid, ditangani sesuai dengan pengaturan Output Data Policy.
  • Detail log:
    • Nama kolom dan pengenal catatan atau bagian catatan.

Pesan kesalahan

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

KesalahanKonversiDataKeluaran.KesalahanKonversiJenis

  • 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 data output, termasuk kesalahan konversi tipe, ditangani sesuai dengan pengaturan Kebijakan 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."

KesalahanKonversiDataKeluar.CatatanMelampauiBatasUkuran

  • Penyebab: Nilai pesan lebih besar dari ukuran output yang didukung. Misalnya, sebuah rekaman data berukuran lebih dari 1 MB untuk output Event Hub.
  • Pemberitahuan portal disediakan: Ya
  • Tingkat log sumber daya: Peringatan
  • Dampak: Semua kesalahan konversi data output, termasuk rekaman yang melebihi batas ukuran, ditangani sesuai dengan pengaturan Output Data Policy.
  • 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: Sebuah catatan sudah berisi kolom dengan nama yang sama dengan kolom sistem. Misalnya, Azure Cosmos DB mengeluarkan kolom bernama ID ketika kolom ID berada di kolom yang berbeda.
  • Pemberitahuan portal disediakan: Ya
  • Tingkat log sumber daya: Peringatan
  • Dampak: Semua kesalahan konversi data output, termasuk kunci duplikat, ditangani sesuai pengaturan Output Data Policy.
  • Detail log:
    • Nama kolom.
    • Baik pengidentifikasi catatan maupun bagian dari catatan.

Pesan kesalahan

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

Langkah berikutnya