Jika aturan transformasi memerlukan data yang diambil dari ApsaraDB RDS for MySQL, error dapat terjadi saat data ditarik atau diperbarui. Topik ini menjelaskan berbagai error tersebut beserta solusinya.
Setelah mesin transformasi membaca data dari Logstore sumber, proses transformasi event log dimulai. Jika aturan transformasi memuat resource eksternal—seperti Object Storage Service (OSS), RDS, atau Logstore lainnya—error juga dapat terjadi selama proses pemuatan atau penyegaran (refresh).
Gunakan fungsi resource secara mandiri di konsol
Aturan transformasi
res_rds_mysql(address="xx",username="xx",password="xx",database="xx")Log error
aliyun.log.logexception.LogException: {"errorCode": "InvalidEtlConfig", "errorMessage": "ETL config doesn't pass security check, detail: invalid type detected: <class '_ast.Expr'>", "requestId": ""}-
Metode pemecahan masalah
Pesan error ini menunjukkan adanya kesalahan konfigurasi sintaksis. Error ini umum terjadi ketika Anda menggunakan fungsi res_rds_mysql, res_log_LogStore_pull, atau res_oss_file secara terpisah di konsol Simple Log Service.
Solusi
Gunakan fungsi resource bersamaan dengan fungsi e_table_map karena fungsi resource tidak dapat digunakan secara mandiri di konsol Simple Log Service.
Pengaturan parameter tidak valid
Aturan transformasi
e_table_map(res_rds_mysql(address="xx",username="xx",password="xx",database="xx"),field="processid",output_fields=["name","xixi"])Log error
When sql is not set, table must be set\nDetail: NoneMetode pemecahan masalah
Periksa apakah parameter table atau sql telah dikonfigurasi.
Solusi
Jika parameter table tidak dikonfigurasi, Anda harus menentukan pernyataan SQL untuk menemukan tabel yang diperlukan. Tanpa pernyataan SQL dalam situasi ini, tabel yang diperlukan tidak dapat ditemukan dan data tidak dapat ditarik. Oleh karena itu, Anda harus mengonfigurasi salah satu dari parameter table atau sql.
Bidang output tidak valid
Aturan transformasi
e_table_map(res_rds_mysql(address="x",username="xx",password="xx",database="xx",table="test"),field="processid",output_fields=["name","xixi"])Log error
trans_comp_lookup: output field xixi doesn't exist in lookup table\nDetail: NoneMetode pemecahan masalah
Bidang-bidang dalam parameter output_fields tidak ada di tabel yang dituju.
Solusi
Verifikasi bidang-bidang di tabel data MySQL dan masukkan bidang yang benar pada parameter output_fields.
Pengaturan tipe parameter tidak valid
Aturan transformasi
e_table_map(res_rds_mysql(address="xxx",username=1234,password="xx",database="xx",table="xx"),field="processid",output_fields=["name","xixi"])Log error
username not a string type\nInvalid SettingsMetode pemecahan masalah
Nilai parameter username bukan bertipe string.
Solusi
Konfigurasikan tipe data yang sesuai.
Error jaringan atau izin
Aturan transformasi
e_table_map(res_rds_mysql(address="xxx",username=xxx,password="xx",database="test999",table="xx"),field="processid",output_fields=["name","xixi"])Log error 1
message: Database connection failed, cause: (1045, "Access denied for user 'user1'@'192.0.2.1' (using password: YES)")Log error 2
message: Database connection failed, cause: (1049, "Unknown database 'test999')Metode pemecahan masalah
Periksa apakah konfigurasi valid, koneksi jaringan tersambung, atau daftar putih yang diperlukan telah dikonfigurasi pada instans ApsaraDB RDS for MySQL yang bersangkutan. Jika terjadi error koneksi, bidang cause dalam log error berisi penyebab detail error tersebut. Anda dapat melakukan troubleshooting berdasarkan informasi tersebut. Error umum mencakup kurangnya izin, kata sandi salah, dan alamat tidak valid.
Solusi
Konfigurasi ulang fungsi-fungsi tersebut dan mulai ulang pekerjaan transformasi data.
Error sintaksis SQL
Aturan transformasi
e_table_map(res_rds_mysql(address="xxx",username=xxx,password="xx",database="xx",sql="inset into test values(1,"aini")",field="processid",output_fields=["name","xixi"]))Log error
\"errorMessage\": \"The sql_query field only supports database query syntax\\nInvalid Settings \\\"insert into test values(1,aini)\\\"\\nDetail: None\", \"requestId\": \"\"}-
Metode pemecahan masalah
Ini merupakan error sintaksis SQL. Fungsi resource hanya mendukung pembacaan data dari database. Pernyataan SQL yang tidak valid—misalnya yang ditujukan untuk menulis ke database—juga dapat memicu
fetch data error. Jika hal ini terjadi, analisis akar penyebab error tersebut. Solusi
Perbaiki sintaksis SQL. Fungsi resource hanya mendukung pernyataan SELECT.
Error refresh berkelanjutan
Aturan transformasi
e_table_map(res_rds_mysql(address="xxx",username=xxx,password="xx",database="xx",table="test,field="processid",output_fields=["name","xixi"],refresh_interval=30))Log error
\"errorMessage\": \"Database connection failed, cause: (2003, \\\"Can't connect to MySQL server on 'rm-wz9z68i4itrk4v8d9yo.mysql.rds.aliyuncs.com' (timed out))Metode pemecahan masalah
Error ini terjadi karena daftar putih tertentu pada instans ApsaraDB RDS for MySQL yang diperlukan telah dihapus. Jika terjadi error seperti gangguan jaringan selama transformasi berkelanjutan, pekerjaan transformasi data akan secara otomatis mencoba ulang. Namun, jika error disebabkan oleh pencabutan izin atau penghapusan tabel yang tidak disengaja, Anda harus memberikan kembali izin atau memulihkan tabel tersebut secara manual.
Solusi
Periksa apakah tabel atau izin di database pada instans ApsaraDB RDS for MySQL telah diubah berdasarkan penyebab error tersebut.