Kondisi kesalahan: SYNCED_TABLE_USER_ERROR

SQLSTATE: 42000

Kesalahan pengguna alur tabel yang disinkronkan.

KUNCI_UTAMA_DIALIHKAN

Kolom kunci utama yang ditentukan untuk tabel <destTableUcName> yang disinkronkan telah diubah.

Kolom kunci utama yang ditentukan: (<primaryKeyColumns>). Kolom kunci utama saat ini: (<existingPrimaryKeyColumns>).

Mengubah kolom kunci utama tabel yang disinkronkan setelah dibuat tidak didukung.

Untuk mengatasi masalah ini, ubah tabel yang disinkronkan kembali ke kolom kunci primer semula, atau buat tabel baru yang disinkronkan dan hapus tabel yang sudah ada.

TIPE_KOLOM_KUNCI_PRIMER_DIUBAH

Jenis data kolom kunci utama telah diubah pada tabel <modifiedPkColumns>yang disinkronkan <destTableUcName> .

Mengubah jenis data kolom kunci utama tidak didukung pada tabel yang disinkronkan setelah dibuat.

Untuk mengatasi masalah ini, buat tabel baru yang disinkronkan dan hapus tabel yang sudah ada.

KARAKTER_TIDAK_DALAM_REPERTOAR

Contoh: <instance>. Ditemukan urutan byte yang tidak valid dalam tabel Delta sumber.

Detil: <detail>

Biasanya ini menunjukkan bahwa tabel Delta sumber berisi karakter yang tidak

kompatibel dengan pengodean database target. Satu solusinya adalah mengonversi

tabel sumber untuk menggunakan BINARY TYPE, lalu buat tabel baru yang disinkronkan.

Perubahan Tipe Kolom Tidak Didukung

Contoh: <instance>. Mengubah tipe kolom saat ini tidak didukung.

Tabel Delta Sumber: <srcTableName>. Tabel tujuan yang disinkronkan: <destTableName>.

Kolom: <columnName>. Jenis yang ada: <existingType>. Jenis baru: <newType>.

Untuk mengatasi masalah ini, pertimbangkan salah satu opsi berikut:

  1. Lakukan refresh penuh tabel yang sudah disinkronkan.

  2. Buat tabel baru yang disinkronkan (yang akan mengadopsi jenis baru)

CONNECTION_ERROR

Contoh: <instance>. Kesalahan koneksi. Detail: <detail>.

Untuk mengatasi masalah ini, pastikan instans database berjalan, tidak dijeda atau dihentikan.

Mulai ulang alur untuk mencoba kembali.

DATABASE_TIDAK_ADA

Database <databaseName> tujuan tidak ada pada instans <instance> lakebase. Harap verifikasi apakah database tujuan ada.

DELTA_TRUNCATED_TRANSACTION_LOG

Detail: <detail>.

Ini menunjukkan log transaksi tabel delta telah dipotong karena penghapusan manual atau kebijakan penyimpanan log.

Untuk mengatasi masalah ini, lakukan refresh penuh tabel yang disinkronkan.

OBJEK_DEPENDEN_MASIH_ADA

Contoh: <instance>. Tidak dapat menghapus kolom karena ada data yang bergantung pada kolom tersebut.

Objek PostgreSQL masih mengacu pada kolom . Detail: <detail>.

Untuk mengatasi masalah ini, pertimbangkan salah satu opsi berikut:

  1. Tambahkan kembali kolom yang hilang ke tabel sumber dengan jenis data yang sama seperti sebelumnya.

  2. Jatuhkan objek dependen di PostgreSQL.

KOLOM_KUNCI_PRI_MA_GANDA

Kolom <duplicatedPkColumns> ditentukan beberapa kali dalam kunci utama untuk tabel yang disinkronkan <destTableUcName>.

Untuk mengatasi masalah ini, hapus kolom duplikat dari kunci primer sehingga setiap kolom hanya muncul sekali.

Pelanggaran Batasan Kunci Asing

Contoh: <instance>. Pelanggaran batasan kunci asing saat menyinkronkan dari tabel sumber:

<srcTableName>. Detil: <detail>

Membuat batasan kunci asing yang mereferensikan tabel sinkronisasi tidak didukung. Tolong

hilangkan batasan kunci asing dan coba kembali sinkronisasi.

Ukuran Baris Indeks Terlampaui

Contoh: <instance>. Nilai kunci utama dalam tabel Delta sumber <srcTableName> terlalu besar untuk

Indeks B-tree PostgreSQL. PostgreSQL membatasi entri indeks hingga sekitar 2704 byte di semua kunci primer

kolom digabungkan. Detail: <detail>.

Untuk mengatasi masalah ini, kurangi ukuran data yang disimpan di kolom kunci utama, atau gunakan lebih sedikit atau

kolom kunci primer yang lebih pendek.

INSUFFICIENT_INSTANCE_SPACE

Tidak dapat melakukan sinkronisasi tabel <tableName> ke dalam instans <instance> karena ukuran database.

Penggunaan instans saat ini: <instanceSize> byte.

Estimasi ukuran tabel yang tidak dikompresi: <estimatedLoadSize> byte.

Batas ukuran instans: <maxInstanceSize> byte.

Kurangi jumlah data untuk disinkronkan, atau hapus beberapa tabel yang ada dalam instance untuk mengosongkan ruang.

LOCK_TIMEOUT

Contoh: <instance>. Database: <databaseName>. Alur tabel yang disinkronkan tidak dapat memperoleh kunci dalam batas waktu yang dikonfigurasi (<timeoutSeconds> detik).

Transaksi yang terdeteksi <numBlockingTransactions> sedang memegang kunci pada tabel target (dengan durasi penahanan kunci maksimum: <lockDurationSeconds> detik).

Transaksi pengguna menahan kunci yang memblokir alur tabel yang disinkronkan agar tidak memperbarui tabel target.

Untuk informasi selengkapnya tentang transaksi yang terlibat dalam kesalahan, periksa log driver Spark (cari '[LOCK TIMEOUT DIAGNOSTICS]').

Untuk mengatasi masalah ini, temukan koneksi dengan transaksi jangka panjang di instans postgres menggunakan pg_stat_activity, dan tutup transaksi tersebut (juga dapat menggunakan pg_terminate_backend untuk mengakhiri koneksi jika koneksi tidak diperlukan lagi).

Untuk mencegah masalah ini terjadi di masa mendatang, pertimbangkan opsi berikut:

  1. Pastikan aplikasi Anda menerapkan atau mengembalikan transaksi.

  2. Hindari transaksi yang berjalan lama. Atur auto_commit ke aktif jika pekerjaan dalam aplikasi tidak perlu terjadi dalam transaksi.

  3. Mengatur parameter idle_in_transaction_session_timeout di database untuk menghentikan transaksi menganggur secara otomatis.

Contoh: ALTER DATABASE <databaseName> SET idle_in_transaction_session_timeout = '5 menit';

MIS_CONFIGURED_PRIMARY_KEY (kunci utama dikonfigurasi tidak benar)

Kunci primer yang disediakan untuk tabel Delta sumber: <srcTableName> tidak tersedia dalam tabel sumber.

Kunci primer: <primaryKeys>. Kolom yang tersedia: <availableColumns>. Kunci primer hilang: <missingPkColumns>.

Untuk mengatasi masalah ini, pertimbangkan salah satu opsi berikut:

  1. Tambahkan kolom yang hilang ke tabel sumber.

  2. Buat tabel baru yang disinkronkan dengan konfigurasi kunci utama yang benar.

PERMISSION_DENIED

Detail: <detail>.

Harap verifikasi apakah Anda memiliki izin yang memadai.

PIPELINE_ROLE_NOT_EXIST

Contoh: <instance>. Peran penulis database untuk alur tabel yang disinkronkan hilang. Detail: <detail>.

Ini biasanya terjadi ketika database tujuan telah dihapus, yang menghapus peran penulis dari pipeline.

Untuk mengatasi masalah ini, verifikasi bahwa database tujuan ada dan belum dihilangkan.

Jika database sengaja dihilangkan, hapus tabel yang disinkronkan dan buat ulang setelah membuat ulang database.

PRIMARY_KEY_CONSTRAINT_VIOLATION

Contoh: <instance>. Baris duplikat terdeteksi berdasarkan kunci primer. Detil: <detail>

Ini kemungkinan menunjukkan kesalahan konfigurasi kolom kunci utama.

Harap verifikasi bahwa Anda menggunakan sekumpulan kunci primer yang benar

dari tabel Delta sumber: <srcTableName>.

Untuk mengatasi masalah ini, buat tabel baru yang disinkronkan dengan benar

konfigurasi kunci utama.

REFRESH_WITH_FOREIGN_KEY

Contoh: <instance>. Gagal menyegarkan tabel <destTableName> yang disinkronkan karena tabel

<childTableName> memiliki batasan kunci asing yang mereferensikan tabel yang disinkronkan.

Penyegaran tabel yang disinkronkan tidak didukung ketika terdapat kendala kunci asing.

mereferensikannya. Silakan hilangkan batasan kunci asing dan coba kembali refresh.

SKEMA_TIDAK_ADA

Detail: <detail>.

Harap verifikasi apakah skema ada di Katalog Unity.

KESALAHAN_MEMBACA_SUMBER

Gagal membaca dari tabel sumber <tableName>. Harap verifikasi apakah tabel sumber dapat berhasil dibaca melalui SELECT kueri.

Detil: <detail>

SPARK_JOB_CANCELLED

Pekerjaan Spark dibatalkan.

Detil: <detail>

KONFLIK_NAMA_KOLOM_SISTEM

Contoh: <instance>. Tabel Delta <srcTableName> sumber berisi kolom yang namanya bertentangan dengan nama kolom sistem PostgreSQL. Detail: <detail>.

PostgreSQL mencadangkan nama kolom tertentu (seperti xmin, xmax, ctid, cmin, cmax, tableoid) untuk penggunaan internal.

Untuk mengatasi masalah ini, ganti nama kolom yang berkonflik dalam tabel Delta sumber dan buat ulang tabel yang disinkronkan.

Atau buat tampilan dengan kolom yang berkonflik dikecualikan dan sinkronkan tampilan sebagai gantinya.

Kesalahan_Akses_Schema_Sistem

Contoh: <instance>. Skema sistem internal (__db_system) tidak dapat diakses oleh alur tabel yang disinkronkan. Detail: <detail>.

Ini dapat terjadi ketika database direset atau skema internal dihilangkan dan dibuat ulang tanpa izin yang tepat.

Untuk mengatasi masalah ini, hilangkan dan buat ulang tabel <destTableUcName>yang disinkronkan .

TABEL_TIDAK_ADA

Detail: <detail>.

Harap verifikasi apakah tabel yang disinkronkan ada di Katalog Unity.

TARGET_DATABASE_FULL

Ruang database <databaseName> target penuh. Tidak dapat terus mencerna.

TERLALU_BANYAK_KONEKSI

Terlalu banyak koneksi terbuka ke instans database: <instance>

Detail: <detail>.

Setiap sinkronisasi tabel dapat menggunakan hingga 16 koneksi ke instans database, yang akan dihitung ke batas koneksi instans.

Untuk mengatasi masalah ini, coba opsi berikut:

  1. Kurangkan jumlah pipeline bersamaan yang menulis ke instans database yang sama.

Misalnya, mengatur jadwal pipeline.

  1. Kurangi jumlah koneksi bersamaan dari beban kerja lain yang terhubung ke instans database yang sama.

UNTRANSLATABLE_CHARACTER

Contoh: <instance>. Ditemukan karakter yang tidak dapat diterjemahkan dalam tabel Delta sumber.

Detil: <detail>

Biasanya ini menunjukkan bahwa tabel Delta sumber berisi karakter yang tidak

kompatibel dengan pengodean database target. Satu solusinya adalah mengonversi

tabel sumber untuk menggunakan BINARY TYPE, lalu buat tabel baru yang disinkronkan.