Topik ini menjawab beberapa pertanyaan umum terkait kode kesalahan yang sering muncul di Hologres. Topik ini juga menyediakan solusi bagi pengguna untuk dengan cepat mengidentifikasi dan menyelesaikan masalah.
HG_ERRCODE_FDW_ERROR
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: gagal mengimpor skema asing dari odps: Tidak dapat menemukan pabrik sistem file?
Penyebab: Hologres tidak mendukung kueri tabel eksternal MaxCompute.
Solusi: Buat tabel internal MaxCompute.
ERRCODE_FDW_ERROR
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: gagal mengimpor skema asing dari odps: Otorisasi Gagal: xxx?
Penyebab: Akun Anda tidak memiliki izin yang diperlukan pada tabel MaxCompute.
Solusi: Berikan izin yang diperlukan ke akun pengguna. Untuk informasi lebih lanjut, lihat Kelola Izin Pengguna Menggunakan Perintah.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: gagal mengimpor skema asing dari odps: Tabel tidak ditemukan -xxx?
Penyebab: Tabel yang ingin Anda kueri tidak ada di MaxCompute.
Solusi: Periksa apakah tabel tersebut ada di MaxCompute.
ERRCODE_UNIQUE_VIOLATION atau pk melanggar
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: Memperbarui baris dengan Kunci (id)=(xxxx) beberapa kali atau nilai kunci duplikat melanggar batasan unik?
Penyebab: Terjadi pelanggaran batasan unik. Beberapa nilai kunci utama adalah duplikat saat Anda melakukan operasi UPDATE, INSERT ON CONFLICT, atau INSERT.
Solusi:
Jika pesan kesalahan dilaporkan saat Anda melakukan operasi INSERT, gunakan sintaks
INSERT INTO xx ON CONFLICTuntuk menghapus nilai kunci utama duplikat. Untuk informasi lebih lanjut, lihat INSERT ON CONFLICT(UPSERT).Jika pesan kesalahan dilaporkan saat Anda menggunakan sintaks
INSERT INTO xx ON CONFLICT, sumber data berisi data duplikat. Dalam hal ini, lakukan pemecahan masalah dengan mengikuti petunjuk di bagian "Kesalahan dan Pemecahan Masalah" di INSERT ON CONFLICT(UPSERT).Alasan lainnya adalah bahwa Time to Live (TTL) dikonfigurasikan untuk tabel. TTL telah kedaluwarsa tetapi data belum dihapus. Dalam hal ini, gunakan fungsi hg_remove_duplicated_pk untuk menghapus data. Untuk informasi lebih lanjut, lihat bagian "Kesalahan dan Pemecahan Masalah" di INSERT ON CONFLICT(UPSERT).
ERRCODE_CHECK_VIOLATION atau batasan partisi
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: ERROR: baris baru untuk relasi melanggar batasan partisi?
Penyebab: Terjadi pelanggaran batasan pemeriksaan. Nilai kunci partisi dari catatan data yang ditulis berbeda dari nilai kunci partisi yang ditentukan dalam pernyataan. Misalnya, nilai kunci partisi yang ditentukan dalam pernyataan adalah 20240110, tetapi catatan data dengan nilai kunci partisi yang berbeda ditulis. Ini menghasilkan konflik partisi. Contoh pernyataan:
CREATE TABLE public.tbl_20240110 PARTITION OF public.tbl FOR VALUES IN('20240110'); INSERT INTO public.tbl_20240110 SELECT * FROM odps_tbl where sale_date >'20240110'; error: new row for relation "tbl_20240110" violates partition constraintSolusi: Tulis catatan data yang valid ke partisi.
ERRCODE_NOT_NULL_VIOLATION, batasan not-null, atau UsageProblem
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: nilai null di kolom "xxx" melanggar batasan not-null?
Penyebab: Terjadi pelanggaran batasan NOT NULL. Nilai NULL ditulis ke kolom NOT NULL.
Solusi: Hapus nilai NULL dan tulis ulang data.
ERRCODE_UNDEFINED_TABLE
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: Pengiriman kueri gagal: Tabel tidak ditemukan?
Penyebab: Tabel tidak ada. Dalam sebagian besar kasus, pesan kesalahan ini dilaporkan ketika tabel dibuat tetapi metadata belum diperbarui atau jika operasi TRUNCATE atau DROP dilakukan pada tabel selama kueri.
Solusi: Gunakan fitur Query Insight dari HoloWeb untuk memeriksa apakah operasi TRUNCATE atau DROP dilakukan pada tabel selama kueri. Kemudian, coba lagi kueri. Untuk informasi lebih lanjut, lihat Query Insight. Jangan jalankan pernyataan DDL yang mungkin menyebabkan konflik selama kueri.
ERRCODE_QUERY_CANCELED atau Kueri Dibatalkan
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: ERROR: membatalkan pernyataan karena batas waktu pernyataan?
Penyebab: Batas waktu dikonfigurasikan pada klien, dan kueri melebihi batas waktu.
Solusi: Optimalkan kueri untuk mempersingkat waktu proses atau atur batas waktu ke nilai yang lebih besar. Untuk informasi lebih lanjut tentang cara mengonfigurasi batas waktu, lihat Kelola Kueri.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: ERROR: Kueri:[xxx] Mendapatkan hasil gagal: membatalkan pernyataan karena permintaan pengguna?
Penyebab: Kueri dibatalkan. Dalam sebagian besar kasus, pesan kesalahan ini dilaporkan jika operasi TRUNCATE atau DROP dilakukan pada tabel.
Solusi: Gunakan fitur Query Insight dari HoloWeb untuk memeriksa apakah pernyataan DDL yang bertentangan dengan kueri dieksekusi. Untuk informasi lebih lanjut, lihat Query Insight. Jangan jalankan pernyataan DDL yang mungkin menyebabkan konflik selama kueri.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: kueri dibatalkan Tidak dapat menemukan indeks ID lengkap:xxx (ID tabel: x, ID indeks: x) di penyimpanan atau sedang dihapus?
Penyebab: Kueri dilakukan pada tabel yang mana operasi TRUNCATE atau DROP dilakukan. Akibatnya, ID tabel berubah, dan kueri dibatalkan.
Solusi: Gunakan fitur Query Insight untuk memeriksa apakah operasi TRUNCATE atau DROP dilakukan selama kueri. Untuk informasi lebih lanjut, lihat Query Insight.
ERRCODE_FEATURE_NOT_SUPPORTED atau Fitur Tidak Didukung
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: Fitur tidak didukung: insert into tabel induk?
Penyebab: Data tidak dapat langsung ditulis ke tabel partisi induk.
Solusi: Saat Anda menjalankan pernyataan INSERT, tulis data ke tabel partisi anak yang ditentukan. Untuk informasi lebih lanjut, lihat CREATE PARTITION TABLE.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: SELECT INTO saat ini tidak didukung?
Penyebab: Hologres tidak mendukung sintaks SELECT INTO.
Solusi: Jalankan pernyataan INSERT INTO SELECT untuk menyisipkan data. Untuk informasi lebih lanjut, lihat INSERT.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: ALTER TABLE CHANGE OWNER tidak didukung dalam SLPM (Schema-Level Permission Mode)?
Penyebab: Pernyataan ALTER TABLE tidak dapat dijalankan untuk mengubah pemilik tabel saat Anda menggunakan model izin tingkat skema (SLPM) untuk tabel.
Solusi: Di SLPM, izin pemilik tabel diberikan kepada grup pengguna. Untuk mencabut izin dari pengguna, Anda dapat menghapus pengguna dari grup pengguna. Untuk informasi lebih lanjut, lihat bagian "Hapus pengguna dari grup pengguna" di Gunakan SLPM.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: Fitur tidak didukung: INSERT ON CONFLICT RETURNING?
Penyebab: Hologres tidak mendukung sintaks
INSERT ON CONFLICT RETURNING.Solusi: Gunakan
INSERT ON CONFLICT. Untuk informasi lebih lanjut, lihat INSERT ON CONFLICT(UPSERT).
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: ERROR: INSERT dalam transaksi ddl saat ini tidak didukung?
Penyebab: Operasi INSERT tidak didukung dalam transaksi. Contoh kode:
BEGIN; INSERT xxx commit; ERROR: INSERT in ddl transaction is not supported nowSolusi: Lakukan operasi INSERT di luar transaksi, atau mulai transaksi yang mendukung pernyataan bahasa manipulasi data (DML). Untuk informasi lebih lanjut, lihat Kemampuan Transaksi SQL.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: Pembuatan publikasi dengan tabel tanpa binlog saat ini tidak didukung?
Penyebab: Publikasi dibuat untuk tabel yang tidak diaktifkan pencatatan biner.
Solusi: Publikasi digunakan untuk berlangganan log biner. Anda hanya dapat membuat publikasi untuk tabel yang diaktifkan pencatatan biner. Untuk informasi lebih lanjut, lihat Gunakan JDBC untuk Mengonsumsi Log Biner Hologres.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: Fitur tidak didukung: INSERT on conflict berisi kolom non-unik?
Penyebab: Kolom non-kunci utama ditentukan dalam klausa CONFLICT dari pernyataan INSERT ON CONFLICT.
Solusi: Pastikan hanya kolom kunci utama yang ditentukan dalam klausa CONFLICT dari pernyataan INSERT ON CONFLICT.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: Fitur tidak didukung: UPDATE dengan kunci shard?
Penyebab: Hologres tidak mendukung operasi UPDATE pada kunci utama atau kunci distribusi.
Solusi: Ubah pernyataan SQL dan jalankan kembali.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: waktu sebelum tahun 1925 tidak didukung?
Penyebab: Fungsi terkait waktu mendukung tahun dari 1925 hingga 2282 secara default. Untuk tahun di luar rentang tersebut, kesalahan dilaporkan.
Solusi: Jika Anda menggunakan fungsi seperti to_char, to_date, atau to_timestamp, konfigurasikan parameter Grand Unified Configuration (GUC)
hg_experimental_functions_use_pg_implementationsebelum pernyataan SQL yang ingin Anda jalankan untuk memperluas rentang waktu. Untuk informasi lebih lanjut, lihat Fungsi Tanggal dan Waktu.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: Group by key adalah tipe imprecise tidak didukung?
Penyebab: Bidang yang ditentukan dalam klausa GROUP BY adalah tipe numerik perkiraan.
Solusi: Jangan gunakan bidang tipe numerik perkiraan, seperti FLOAT, dalam klausa GROUP BY.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: CREATE TABLE tidak didukung untuk instance saat ini?
Penyebab: Instance Hologres Shared Cluster atau instance sekunder digunakan. Titik akhir instance Hologres Shared Cluster dimulai dengan
hgmc. Sebagai contoh,hgmc-cn-xxwwwkkk. Anda dapat melihat titik akhir instance di konsol Hologres. Untuk instance Hologres Shared Cluster, Anda dapat membuat tabel eksternal tetapi tidak tabel internal. Untuk instance sekunder, Anda dapat menanyakan data tetapi tidak dapat membuat tabel.Solusi:
Jika Anda menggunakan instance Hologres Shared Cluster, buat tabel eksternal. Untuk informasi lebih lanjut, lihat CREATE FOREIGN TABLE. Jika Anda ingin membuat tabel internal, gunakan instance Hologres eksklusif.
Jika Anda ingin membuat tabel, gunakan instance utama.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: ALTER TABLE ALTER COLUMN SET TYPE saat ini tidak didukung?
Penyebab: Pernyataan ALTER TABLE tidak dapat digunakan untuk memodifikasi tipe data kolom.
Solusi: Buat tabel dan modifikasi tipe data kolom.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: ERROR: Saat ini materialized view tidak mendukung agregat pada ekspresi, hanya mendukung satu kolom?
Penyebab: Materialized view yang didefinisikan berdasarkan satu tabel tidak mendukung ekspresi.
Solusi: Jangan gunakan ekspresi untuk materialized view yang didefinisikan berdasarkan satu tabel. Untuk informasi lebih lanjut, lihat Kelola Materialized View Menggunakan Pernyataan SQL.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: ERROR: Daftar target aturan SELECT memiliki entri terlalu sedikit?
Penyebab: Materialized view real-time tidak mendukung penggunaan ekspresi.
Solusi: Hindari penggunaan ekspresi dalam materialized view real-time. Untuk detail lebih lanjut, lihat Kelola materialized view menggunakan pernyataan SQL.
ERRCODE_UNDEFINED_OBJECT
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: kolom xxx tidak ada?
Penyebab: Kolom tidak ada.
Solusi: Periksa pernyataan SQL.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: Grup tabel xxx tidak ada?
Penyebab: Grup tabel tidak ada.
Solusi: Tentukan grup tabel yang ada saat Anda membuat tabel, atau buat grup tabel sebelum Anda membuat tabel.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: Partisi yang ditentukan tidak ada?
Penyebab: Partisi tempat operasi penulisan atau pembaruan data dilakukan tidak ada.
Solusi: Buat partisi yang diperlukan terlebih dahulu.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: pembuatan pembaca binlog gagal: Gagal menemukan shard apa pun, silakan periksa apakah grup tabel ada di gudang saat ini?
Penyebab: Grup tabel tidak ada di gudang.
Solusi: Periksa apakah grup tabel terkait dimuat ke gudang. Jika grup tabel tidak dimuat ke gudang, konfigurasikan dan muat grup tabel. Untuk informasi lebih lanjut, lihat Kelola Izin pada Grup Tabel yang Dimuat ke Gudang Virtual.
ERRCODE_INSUFFICIENT_PRIVILEGE atau izin ditolak
Untuk informasi lebih lanjut tentang kesalahan terkait izin, lihat topik-topik berikut:
ERRCODE_OUT_OF_MEMORY atau OOM
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: Total memori yang digunakan oleh semua kueri yang ada melebihi batas memori?
Penyebab: Masalah out of memory (OOM) terjadi selama kueri.
Solusi: Untuk informasi lebih lanjut, lihat FAQ tentang OOM.
ERRCODE_DATATYPE_MISMATCH
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: kesalahan internal: Dataset memiliki skema berbeda?
Penyebab: Kolom yang ditentukan dalam pernyataan kueri tidak sesuai dengan kolom di tabel.
Solusi: Periksa pernyataan SQL.
ERRCODE_DIVISION_BY_ZERO
Penyebab: Pernyataan SQL menentukan pembagian dengan nol, yang tidak didukung.
Solusi:
Jangan tentukan pembagian dengan nol. Anda juga dapat menggunakan ekspresi CASE WHEN untuk mencegah pembagian dengan nol.
Buat ekstensi yang kompatibel dengan MySQL dan aktifkan pembagian dengan nol. Untuk informasi lebih lanjut, lihat Migrasi Data dari MySQL ke Hologres.
ERRCODE_STRING_DATA_RIGHT_TRUNCATION
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: nilai terlalu panjang untuk tipe character varying(xxx)?
Penyebab: Panjang nilai bidang tipe VARCHAR melebihi batas atas.
Solusi: Proses nilai bidang atau atur batas atas untuk panjang nilai bidang tipe VARCHAR ke nilai yang lebih besar. Anda juga dapat mengubah tipe bidang menjadi TEXT.
ERRCODE_PROGRAM_LIMIT_EXCEEDED atau Melebihi Batas Pemindaian Odps
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: Melebihi batas partisi 512, saat ini cocok dengan xxx partisi?
Penyebab: Jumlah partisi yang akan dikueri dalam tabel MaxCompute melebihi 512.
Solusi: Tambahkan kondisi filter partisi atau konfigurasikan parameter GUC berikut untuk menyesuaikan jumlah maksimum partisi yang diizinkan dalam kueri. Untuk informasi lebih lanjut, lihat FAQ tentang Integrasi dengan MaxCompute.
set hg_foreign_table_max_partition_limit =xx;
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: Pembuatan deskripsi gagal: Melebihi batas pemindaian 200 GB, saat ini memindai xxx GB?
Penyebab: Jumlah data yang akan dipindai dalam tabel MaxCompute melebihi 200 GB.
Solusi:
Tambahkan kondisi filter untuk mengurangi jumlah data yang akan dipindai.
Impor data ke tabel internal Hologres. Tidak ada batas atas yang diberlakukan pada jumlah data yang akan dipindai dalam tabel internal Hologres.
ERRCODE_SYNTAX_ERROR
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: kesalahan sintaksis di atau dekat "xxxxx"?
Penyebab: Sintaks pernyataan SQL tidak valid.
Solusi: Periksa dan modifikasi sintaks pernyataan SQL.
ERRCODE_UNDEFINED_FUNCTION
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: DISTINCT belum diimplementasikan untuk fungsi jendela?
Penyebab: Hologres tidak mengizinkan Anda menggunakan kata kunci DISTINCT dalam fungsi jendela.
Solusi: Hapus kata kunci DISTINCT dari fungsi jendela.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: ERROR: fungsi xxx tidak ada?
Penyebab: Ekstensi tidak dibuat saat Anda menggunakan fungsi, atau sintaks fungsi tidak valid.
Solusi: Gunakan fungsi sesuai dengan persyaratan Hologres.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: ERROR: fungsi jsonb_set(json, text[], jsonb, boolean) tidak ada?
Penyebab: Tipe data parameter dalam fungsi JSONB_SET tidak valid.
Solusi: Tentukan nilai tipe data JSONB untuk parameter pertama dalam fungsi JSONB_SET. Untuk informasi lebih lanjut, lihat Tipe Data JSON dan JSONB.
ERRCODE_E_R_E_READING_SQL_DATA_NOT_PERMITTED
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: Anda tidak memiliki hak istimewa 'odps:Select' pada xxx?
Penyebab: Akun Anda tidak memiliki izin kueri pada tabel MaxCompute.
Solusi: Berikan izin yang diperlukan ke akun pengguna di konsol MaxCompute.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: Label sensitif kolom 'xxx' adalah 2, tetapi label efektif Anda adalah 0?
Penyebab: Akun Anda hanya memiliki izin kueri pada kolom tertentu dalam tabel MaxCompute.
Solusi: Berikan lebih banyak izin ke akun pengguna di konsol MaxCompute, atau hanya menanyakan data dari kolom tertentu. Untuk informasi lebih lanjut tentang cara memberikan izin, lihat Kelola Izin Pengguna Menggunakan Perintah.
ERRCODE_DUPLICATE_OBJECT
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: ekstensi "xxxxx" sudah ada?
Penyebab: Ekstensi sudah ada. Anda tidak perlu membuat ulang ekstensi.
ERRCODE_INVALID_TEXT_REPRESENTATION atau input tidak valid
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: sintaks input tidak valid untuk tipe numerik: \"\"?
Penyebab: Bidang tipe NUMERIC berisi data kotor dan tidak sesuai dengan spesifikasi tipe data NUMERIC.
Solusi: Tangani data kotor.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: sintaks input tidak valid untuk integer: xxx?
Penyebab: Bidang tipe INT berisi data kotor dan tidak sesuai dengan spesifikasi tipe data INT.
Solusi: Tangani data kotor.
ERRCODE_BAD_COPY_FILE_FORMAT
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: data hilang untuk kolom "xxx". gagal menanyakan berikutnya?
Penyebab: Format file atau data tempat operasi COPY dilakukan tidak valid. Dalam sebagian besar kasus, pesan kesalahan ini dilaporkan ketika data sumber berisi pemisah, seperti spasi, yang ditentukan dalam pernyataan COPY. Akibatnya, jumlah kolom dalam tabel sumber berbeda dari jumlah kolom dalam tabel tujuan.
Solusi: Tangani data kotor.
ERRCODE_UNDEFINED_COLUMN
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: ERROR: INSERT memiliki lebih banyak ekspresi daripada kolom target?
Penyebab: Jumlah kolom yang akan ditulis dengan menjalankan pernyataan INSERT tidak konsisten dengan yang ada di tabel tujuan.
Solusi: Pastikan jumlah kolom yang akan ditulis dengan menjalankan pernyataan INSERT konsisten dengan yang ada di tabel tujuan.
ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: bigint di luar rentang?
Penyebab: Panjang data tipe BIGINT melebihi batas atas.
Solusi: Tangani data kotor untuk memastikan panjang data tipe BIGINT tidak melebihi batas atas.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: overflow bidang numerik dalam fungsi round?
Penyebab: Nilai bidang tipe NUMERIC melebihi presisi yang ditentukan.
Solusi: Tangani data kotor.
ERRCODE_DATETIME_FIELD_OVERFLOW
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: InsertOverwrite insert select data tabel gagal : kolom a.unsign_type tidak ada?
Penyebab: Kolom tidak ada, atau nilai parameter tidak valid.
Solusi: Periksa dan modifikasi sintaks pernyataan SQL.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: properti tidak cocok: orientasi tabel adalah "kolom" tetapi format penyimpanan adalah "sst"?
Penyebab: Properti tabel yang ditentukan selama pembuatan tabel tidak valid. Mode penyimpanan berorientasi kolom ditentukan tetapi SST dipilih.
Solusi: Periksa dan modifikasi sintaks pernyataan SQL.
ERRCODE_INVALID_DATETIME_FORMAT
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: nilai tidak valid "" untuk "yyyy", Nilai harus berupa bilangan bulat?
Penyebab: Data tidak sesuai dengan spesifikasi tipe data tertentu.
Solusi: Tangani data kotor.
ERRCODE_CHARACTER_NOT_IN_REPERTOIRE
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: urutan byte tidak valid untuk pengkodean "UTF8": 0xe9 0x80?
Penyebab: Beberapa karakter tidak didukung oleh format pengkodean. Pesan kesalahan ini biasanya muncul ketika karakter tersebut tidak kompatibel dengan UTF-8.
Solusi: Tangani data kotor.
ERRCODE_DUPLICATE_TABLE
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: relasi "xxxx" sudah ada?
Penyebab: Tabel sudah tersedia.
Solusi: Hindari pembuatan tabel duplikat.
ERRCODE_UNTRANSLATABLE_CHARACTER
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: karakter dengan urutan byte 0xe4 0x9e 0xab dalam pengkodean "UTF8" tidak memiliki padanan dalam pengkodean "GBK"?
Penyebab: Karakter yang dikodekan dalam UTF-8 tidak memiliki padanan dalam GBK.
Solusi: Tangani data kotor.
ERRCODE_GROUPING_ERROR
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: kolom "xxx" harus muncul dalam klausa GROUP BY atau digunakan dalam fungsi agregat?
Penyebab: Kolom harus didefinisikan dalam klausa GROUP BY.
Solusi: Perbaiki sintaks pernyataan SQL.
ERRCODE_INVALID_TRANSACTION_STATE
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: SET_TABLE_PROPERTY dan pernyataan CREATE TABLE tidak dalam transaksi yang sama untuk tabel?
Penyebab: Pernyataan CREATE TABLE dan CALL tidak berada dalam transaksi yang sama saat pembuatan tabel.
Solusi: Pastikan pernyataan CREATE TABLE dan CALL dijalankan dalam transaksi yang sama saat membuat tabel. Contoh kode:
begin; CREATE TABLE tbl ( xxxx ); call set_table_property('tbl', 'orientation', 'xx'); call set_table_property('tbl', 'distribution_key', 'xxx'); commit;
ERRCODE_AMBIGUOUS_COLUMN
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: referensi kolom "xxx" ambigu?
Penyebab: Pesan kesalahan ini biasanya muncul ketika nama kolom dalam pernyataan SQL dapat merujuk ke kolom di lebih dari satu tabel. Sebagai contoh, dalam pernyataan
SELECT id FROM t1 INNER JOIN t2 ON t1.id=t2.id, tidak jelas apakahidmerujuk pada kolom id di tabel t1 atau tabel t2.Solusi: Perbaiki sintaks pernyataan SQL untuk menghilangkan ambiguitas.
ERRCODE_DUPLICATE_COLUMN
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: kolom "xxx" ditentukan lebih dari sekali?
Penyebab: Bidang dideklarasikan lebih dari satu kali dalam pernyataan pembuatan tabel.
Solusi: Perbaiki sintaks pernyataan SQL.
ERRCODE_AMBIGUOUS_FUNCTION
Fungsi ambigu karena mendukung parameter input dari berbagai tipe data. Kode kesalahan ini umumnya dikembalikan ketika tipe data parameter input tidak ditentukan.
ERRCODE_INVALID_COLUMN_DEFINITION
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: definisi tidak valid untuk tipe numerik?
Penyebab: Presisi tidak ditentukan untuk kolom bertipe NUMERIC atau DECIMAL saat pembuatan tabel.
Solusi: Perbaiki sintaks pernyataan SQL dan tentukan presisi untuk kolom bertipe NUMERIC atau DECIMAL.
ERRCODE_CANNOT_COERCE
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: tidak dapat mengubah tipe date menjadi integer?
Penyebab: Data bertipe DATE tidak dapat dikonversi menjadi tipe INT.
Solusi: Perbaiki sintaks pernyataan SQL.
ERRCODE_UNDEFINED_SCHEMA atau ERRCODE_INVALID_SCHEMA_NAME
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: skema "xxxx" tidak ada?
Penyebab: Skema tidak tersedia.
Solusi: Periksa validitas sintaks pernyataan SQL.
ERRCODE_INTERNAL_ERROR
Kesalahan tak terduga telah dilaporkan.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: kesalahan internal: Koneksi timeout, err: std_exception: Koneksi ditolak?
Penyebab: Pesan kesalahan ini umumnya menunjukkan bahwa instance mengalami kerusakan.
Solusi: Ajukan tiket untuk memeriksa penyebab kerusakan pada instance Hologres.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: terlalu banyak shard dalam instance ini?
Penyebab: Jumlah shard yang dikonfigurasikan untuk instance melebihi batas maksimum.
Solusi: Disarankan untuk mengonfigurasi jumlah shard di bawah batas maksimum. Untuk detail lebih lanjut tentang cara mengonfigurasi jumlah shard, lihat Manajemen instance.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: penulisan tidak diizinkan dalam mode readonly?
Penyebab: Operasi INSERT, UPDATE, atau DELETE tidak dapat dilakukan pada instance sekunder.
Solusi: Lakukan operasi SELECT saja pada instance sekunder. Untuk operasi lainnya, gunakan instance utama.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: slot koneksi yang tersisa dicadangkan untuk koneksi superuser non-replikasi?
Penyebab: Jumlah koneksi telah mencapai batas maksimum, sehingga akun non-superuser tidak dapat membuat koneksi baru.
Solusi: Gunakan akun superuser untuk memutus koneksi yang tidak aktif. Untuk detail lebih lanjut, lihat Kelola koneksi.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: kesalahan internal: Build desc failed: Tipe kolom: information_schema.sql_identifier tidak dapat diterjemahkan ke tipe hologres?
Penyebab: Beberapa tabel sistem memiliki tipe bidang yang kompleks dan tidak didukung oleh Hologres.
Solusi: Hindari melakukan kueri gabungan pada tabel sistem dengan tipe data kompleks dan tabel Hologres.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: ERROR: commit ddl phase1 failed: DDLWrite tidak diizinkan pada replika?
Penyebab: Daftar putih alamat IP tidak dapat dimodifikasi pada instance sekunder.
Solusi: Modifikasi daftar putih alamat IP pada instance utama.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: transaksi saat ini dibatalkan, perintah diabaikan hingga akhir blok transaksi?
Penyebab: Pernyataan dieksekusi sebelum pernyataan dalam transaksi sebelumnya selesai. Contoh kode:
begin; create xxxx begin;Solusi: Jalankan perintah
rollback;untuk mengakhiri transaksi saat ini dan membatalkan semua perubahan yang belum disimpan.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: panjang kueri xxxxx melebihi maksimum 102400?
Penyebab: Panjang kueri melebihi batas maksimum 102.400 byte.
Solusi: Tulis ulang kueri sehingga panjangnya tetap dalam rentang yang ditentukan.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: Memodifikasi catatan dengan kunci utama tidak pada tabel ini?
Penyebab: Mode pembaruan ditentukan saat menulis data menggunakan Flink, tetapi tabel tujuan tidak memiliki kunci utama yang dikonfigurasikan. Hal ini menyebabkan kegagalan dalam pembaruan data.
Solusi: Atur kunci utama untuk tabel tujuan. Untuk detail lebih lanjut, lihat Kunci utama.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: ERROR: xxx untuk fe, seharusnya tidak dievaluasi?
Penyebab: Pesan kesalahan ini biasanya muncul ketika Anda menggunakan fungsi untuk mengakses tabel sistem. Meskipun eksekusi fungsi menggunakan mesin Hologres, komputasi pada tabel sistem tidak didukung oleh mesin Hologres. Akibatnya, penggunaan fungsi tersebut pada tabel sistem tidak melibatkan mesin Hologres.
Solusi: Hindari menggunakan fungsi ini untuk tabel sistem Hologres.
Bagaimana cara menentukan nama bidang yang dimulai dengan digit dalam pernyataan SQL?
Hologres, yang kompatibel dengan PostgreSQL, menggunakan sintaks yang sama dengan PostgreSQL dan tidak mendukung kueri untuk bidang dengan nama yang dimulai dengan digit.
Jika nama bidang dimulai dengan digit, Anda harus mengapit nama tersebut dalam tanda kutip ganda ("). Berikut adalah contoh pernyataan:
select bizdate,"1_day_active_users","7_day_active_users" from t_active_users;Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan: tidak dapat menghapus tabel karena objek lain bergantung padanya?
Penyebab: Objek tertentu bergantung pada tabel yang ingin dihapus. Contohnya, tampilan didefinisikan berdasarkan tabel tersebut.
Solusi: Hapus objek yang bergantung pada tabel sebelum menghapus tabel.
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan ketika saya menulis atau menanyakan data dengan menggabungkan beberapa tabel: BinaryArray tidak dapat berisi lebih dari 2147483646 byte?
Penyebab:
Ukuran maksimum bidang dalam Hologres adalah 2 GB. Jika statistik tabel tidak diperbarui secara tepat waktu, rencana eksekusi yang tidak optimal dihasilkan untuk penggabungan tabel, sehingga menyebabkan ukuran bidang tunggal melebihi batas 2 GB.
Solusi:
Jalankan pernyataan berikut untuk memperbarui statistik tabel yang akan digabungkan:
analyze <tablename>;Jika kesalahan masih terjadi setelah statistik tabel diperbarui, kemungkinan tabel tersebut memiliki bidang dengan ukuran lebih besar dari 2 GB. Dalam kasus ini, tambahkan pernyataan berikut sebelum pernyataan SQL yang digunakan untuk menulis atau menanyakan data:
set hg_experimental_query_batch_size = 1024;
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan ketika saya mengimpor atau menanyakan data: Tidak dapat memesan kapasitas lebih besar dari 2^31 - 1 untuk biner?
Penyebab dan solusi yang mungkin
Penyebab 1: Ukuran maksimum bidang tunggal dalam Hologres adalah 2 GB. Jika statistik tabel tidak diperbarui tepat waktu, rencana eksekusi yang tidak optimal dihasilkan, sehingga memicu pesan kesalahan ini.
Solusi: Jalankan pernyataan
analyzepada tabel untuk memperbarui statistik tabel.analyze <tablename>;Penyebab 2: Jumlah data dalam bidang tabel melebihi 2 GB, sehingga menyebabkan pesan kesalahan ini.
Solusi: Tambahkan pernyataan berikut sebelum pernyataan SQL yang digunakan untuk mengimpor atau menanyakan data guna mengurangi jumlah data yang dibaca setiap kali.
set hg_experimental_query_batch_size = 1024;
Apa yang harus saya lakukan jika pesan kesalahan berikut dilaporkan ketika saya menjalankan pernyataan SQL: kesalahan internal: Urutan telah habis?
Penyebab: Tabel memiliki bidang dengan tipe SERIAL, dan nilai-nilai bidang tersebut melebihi rentang yang valid.
Cara mengatasi masalah:
Buat tabel baru dan ubah tipe data dari SERIAL menjadi BIGSERIAL.
Hindari penggunaan tipe data SERIAL. Jika Anda menulis data tipe SERIAL, kunci tabel akan diperoleh.