Bagian ini memberikan panduan pemecahan masalah untuk masalah umum yang dihadapi saat menggunakan konektor sink BigQuery.
Memecahkan masalah konfigurasi berbasis tabel
Dalam mode konfigurasi berbasis tabel, pesan Kafka harus sangat sesuai dengan skema tabel. Berikut beberapa masalah umum yang mungkin terjadi saat Anda mengonfigurasi metode ini.
Kolom yang tidak boleh bernilai null tidak ada
Jika pesan Kafka menghilangkan kolom yang ada sebagai kolom yang tidak boleh null dalam tabel BigQuery, operasi penulisan akan gagal dengan pesan error yang mirip dengan berikut ini:
Failed to write rows after BQ table creation or schema update within 30
attempts for: GenericData{classInfo=[datasetId, projectId, tableId], {datasetId=<datasetID>, tableId=<tableID>}}"
Ganti <datasetID> dan <tableID> dengan ID set data dan tabel yang sebenarnya.
Untuk mengatasi masalah ini, ubah kolom BigQuery menjadi NULLABLE
dan mulai ulang konektor.
Kolom yang tidak ditentukan
Jika ada kolom dalam pesan Kafka yang tidak ditentukan dalam skema tabel BigQuery, operasi penulisan akan gagal dengan pesan error yang mirip dengan berikut ini:
Insertion failed at table repairScenario for following rows:
[row index 0] (Failure reason : The source object has fields unknown to BigQuery: root.<fieldName>.)
Ganti <fieldName> dengan nama kolom yang tidak ditentukan.
Untuk mengatasi masalah ini, tambahkan kolom yang tidak ada ke tabel BigQuery, lalu mulai ulang konektor.
Jenis tidak cocok
Jika terjadi ketidakcocokan jenis antara kolom pesan Kafka dan kolom tabel BigQuery yang sesuai (misalnya, string di Kafka dan bilangan bulat di BigQuery), operasi penulisan akan gagal dengan pesan error yang mirip dengan berikut ini:
[row index 0] (location <field>, reason: invalid): Cannot convert value to <type> (bad value): <val>
Ganti <field>, <type>, dan <val> dengan nama kolom, jenis data, dan nilai yang relevan.
Ini adalah masalah umum.
Permintaan AppendRows terlalu besar
Saat menggunakan mode StorageWrite konektor, Anda mungkin melihat error yang mirip dengan berikut ini:
INVALID_ARGUMENT: AppendRows request too large: 11053472 limit 10485760
Konektor mencoba menulis semua pesan dalam satu polling dari Kafka dalam
satu batch ke BigQuery. Jika ukuran batch melebihi batas BigQuery (10485760 byte), operasi tulis akan gagal.
Untuk mengatasi error ini, tetapkan properti konfigurasi consumer.override.max.poll.records
di konektor ke angka yang lebih kecil. Nilai default
untuk parameter ini adalah 500.