全部产品
Search
文档中心

Simple Log Service:Bagaimana cara memperbaiki kesalahan startup mesin transformasi data?

更新时间:Jun 26, 2025

Topik ini menjelaskan penyebab kesalahan startup yang terkait dengan mesin transformasi data serta metode untuk menangani kesalahan tersebut.

Sebelum Simple Log Service menjalankan tugas transformasi data berdasarkan aturan transformasi, mesin transformasi data harus dijalankan terlebih dahulu. Jika aturan bahasa domain-spesifik (DSL) gagal dalam pemeriksaan keamanan pada mesin transformasi data, kesalahan dapat terjadi pada langkah ini. Start the data transformation engine

Log kesalahan

Jika aturan DSL Simple Log Service yang tidak valid terdeteksi selama proses startup mesin transformasi, pesan kesalahan berikut akan dikembalikan:

{
  "errorMessage": "Konfigurasi ETL tidak lolos pemeriksaan keamanan, detail: XXXXXX"
}
Catatan

Anda dapat melihat log kesalahan di detail pengecualian laporan diagnostik untuk transformasi data atau di Logstore internal-etl-log.

  • Jika terjadi kesalahan selama fase startup mesin transformasi, Simple Log Service akan mencoba kembali tugas transformasi data hingga percobaan berhasil atau hingga Anda secara manual menghentikan percobaan ulang.

  • Setelah Anda memodifikasi aturan transformasi data dan percobaan ulang berhasil, mesin transformasi data akan bekerja sesuai harapan tanpa ada data yang hilang atau diduplikasi.

Troubleshoot kesalahan umum

  • Sintaks Dasar Tidak Valid

    Aturan transformasi data yang dikompilasi tidak sesuai dengan sintaks DSL Simple Log Service. Sebagai contoh, aturan tersebut berisi tanda kurung () yang tidak berpasangan atau tanda koma (,) salah ditulis sebagai titik dua (:).

    • Log Kesalahan

      {
        "errorMessage": "Konfigurasi ETL tidak lolos pemeriksaan keamanan, detail: sintaks tidak valid"
      }
      {
        "errorMessage": "Konfigurasi ETL tidak lolos pemeriksaan keamanan, detail: EOF tak terduga saat parsing"
      }
      ...
    • Metode Troubleshooting

      Lokasikan kesalahan sintaksis spesifik berdasarkan informasi traceback di log kesalahan terkait. Sebagai contoh, e_set("test", v("status")) salah ditulis sebagai e_set("test": v("status")), seperti yang ditunjukkan pada gambar berikut. Invalid syntax

  • Operator yang Tidak Valid Digunakan

    Semua operasi dalam DSL Simple Log Service harus ditentukan menggunakan fungsi yang didukung oleh DSL Simple Log Service. Sebagai contoh, operasi numerik atau perbandingan ukuran harus ditentukan menggunakan fungsi op_*. Anda tidak dapat hanya menggunakan operator.

    • Log Kesalahan

      {
        "errorMessage": "Konfigurasi ETL tidak lolos pemeriksaan keamanan, detail: jenis tidak valid terdeteksi: <class `_ast.BinOp`>"
      }
    • Metode Troubleshooting

      Periksa aturan DSL Simple Log Service. Pastikan semua operasi seperti operasi numerik dan perbandingan ukuran ditentukan menggunakan fungsi yang didukung oleh DSL Simple Log Service.

    • Contoh

      e_set("b", v("a") - 10) # Contoh tidak valid
      e_set("b", op_sub(v("a"), 10)) # Contoh valid
      
      e_set("b", v("a") >= v("c")) # Contoh tidak valid
      e_set("b", op_ge(v("a"), v("c"))) # Contoh valid
  • Tipe Parameter yang Diteruskan ke Fungsi Tidak Valid atau Fungsi yang Dipanggil Tidak Ada

    Jika tipe parameter yang diteruskan ke suatu fungsi berbeda dari tipe parameter yang diterima oleh fungsi atau jika fungsi yang dipanggil tidak ada, kesalahan akan terjadi.

    • Log Kesalahan

      {
        "errorMessage": "Konfigurasi ETL tidak lolos pemeriksaan keamanan, detail: panggilan tidak valid terdeteksi: function_name"
      }
    • Metode Troubleshooting

      • Periksa apakah fungsi yang dipanggil ada dan nama fungsinya benar. Jika fungsi ada dan namanya valid, periksa apakah tipe parameter yang diteruskan ke fungsi valid.

      • Lokasikan fungsi kesalahan berdasarkan informasi traceback di log kesalahan terkait. Sebagai contoh, jika log kesalahan yang dikembalikan menunjukkan bahwa fungsi dt_totimestamp tidak valid, Anda harus memeriksa apakah fungsi tersebut ada, lalu periksa apakah tipe parameter yang diteruskan ke fungsi dt_totimestamp valid. Function error

    • Contoh

      Tipe parameter yang diterima oleh fungsi dt_totimestamp adalah objek datetime, sedangkan v("time1") dalam kode adalah string. Kesalahan terjadi karena tipe parameter yang diteruskan ke fungsi tidak valid.

      Untuk memperbaiki kesalahan, gunakan fungsi dt_parse untuk mengonversi string menjadi objek datetime sebelum parameter diteruskan ke fungsi dt_totimestamp. Anda juga dapat menggunakan fungsi dt_parsetimestamp yang dapat menerima string alih-alih fungsi dt_totimestamp.

      # Contoh tidak valid
      e_set("time1", "2019-06-03 2:41:26")
      e_set("time2", dt_totimestamp(v("time1")))
      
      # Contoh valid
      e_set("time1", "2019-06-03 2:41:26")
      e_set("time2", dt_totimestamp(dt_parse(v("time1"))))
      
      # Contoh valid
      e_set("time1", "2019-06-03 2:41:26")
      e_set("time2", dt_parsetimestamp(v("time1")))
  • Fungsi Ekspresi Dipanggil Secara Global

    Sintaks DSL Simple Log Service mendukung dua jenis fungsi: fungsi operasi global dan fungsi ekspresi. Hanya fungsi operasi global yang dapat dipanggil secara global dalam proses transformasi data. Jika fungsi ekspresi dipanggil secara global, kesalahan akan terjadi.

    • Log Kesalahan

      {
        "errorMessage": "Konfigurasi ETL tidak lolos pemeriksaan keamanan, detail: jenis tidak valid terdeteksi: <class '_ast.Expr'>"
      }
    • Metode Troubleshooting

      Periksa apakah fungsi ekspresi dipanggil secara global dalam proses transformasi data.

    • Contoh

      # Contoh tidak valid
      op_add(v("a"), v("b"))
      str_lower(v("name"))
      
      # Contoh valid
      e_set("add", op_add(v("a"), v("b")))
      e_set("lower", str_lower(v("name")))
  • Parameter Ditentukan Menggunakan Nilai Variabel

    Sintaks DSL Simple Log Service tidak mendukung penugasan nilai menggunakan variabel. Nilai variabel hanya dapat dilewatkan dalam mode tanpa status.

    • Log Kesalahan

      {
        "errorMessage": "Konfigurasi ETL tidak lolos pemeriksaan keamanan, detail: penugasan tidak valid terdeteksi: variable_name"
      }
    • Metode Troubleshooting

      • Periksa apakah variabel digunakan untuk menetapkan nilai dalam aturan DSL Simple Log Service.

      • Lokasikan kesalahan berdasarkan informasi traceback di log kesalahan terkait.

    • Contoh

      # Contoh tidak valid
      sum_value = op_add(v("a"), v("b"))
      e_set("sum", sum_value)
      
      # Contoh valid
      e_set("sum", op_add(v("a"), v("b")))