ScaNN. Contoh error dan perbaikan yang direkomendasikan juga disediakan.
Daftar error
Berikut adalah daftar error yang dihasilkan saat Anda mencoba membuat indeks ScaNN. Anda dapat menonaktifkan pembuatan error ini dan terus membuat indeks. Untuk mengetahui informasi selengkapnya, lihat Menerapkan pembuatan indeks dan menekan error.
ERROR: Cannot create ScaNN index with empty table
Pesan error
Saat Anda mencoba membuat indeks pada tabel tanpa data atau mencoba memangkas tabel dengan indeks ScaNN yang dibuat di dalamnya, error berikut akan terjadi:
ERROR: Cannot create ScaNN index with empty table. Once the table is populated
with data, create the index. See documentation to bypass this validation.
Contoh kueri yang menyebabkan error
Contoh Kueri A
create table t1 (a INT, b VECTOR(512)); CREATE TABLE create index on t1 using ScaNN(b cosine) with (num_leaves = 10, quantizer = 'sq8');Contoh Kueri B
truncate t1;
Perbaikan yang direkomendasikan
Pastikan tabel Anda diisi dengan vektor embedding sebelum Anda membuat indeks ScaNN.
ERROR: Cannot create ScaNN index
Pesan error
Saat Anda mencoba membuat indeks pada tabel dengan beberapa baris yang diisi, error berikut akan terjadi:
Cannot create ScaNN index, error: INVALID_ARGUMENT: Number of row (5) must be
larger than (1000).
Contoh kueri yang menyebabkan error
create table t1 (a INT, b VECTOR(512));
CREATE TABLE
insert into t1 select (random()*1e9)::int, random_vector(512) from generate_series(1, 5);
INSERT 0 5
create index on t1 using scann(b cosine) with (num_leaves = 100, quantizer = 'sq8');
Perbaikan yang direkomendasikan
Pastikan tabel Anda diisi dengan vektor embedding sebelum Anda membuat indeks ScaNN. Sebaiknya jumlah baris dalam tabel lebih besar dari nilai yang ditentukan dalam parameter num_leaves.
ERROR: Cannot create ScaNN index on parent partition table.
Pesan error
Jika Anda telah membuat tabel berpartisi dari tabel induk, membuat indeks ScaNN pada tabel induk akan menghasilkan error berikut:
ERROR: Cannot create ScaNN index on parent partition table. Create ScaNN
indexes on the child tables instead. See documentation to bypass this
validation.
Contoh kueri yang menyebabkan error
create table t1 (a INT, b VECTOR(512)) partition by range(a);
CREATE TABLE
CREATE TABLE t1_one_ten PARTITION of t1 for values from (1) to (10);
CREATE TABLE
insert into t1_one_ten select (random()*1e9)::int, random_vector(512) from generate_series(1, 100);
INSERT 0 100
CREATE TABLE t1_eleven_twenty PARTITION of t1 for values from (11) to (20);
CREATE TABLE
insert into t1_eleven_twenty select (random()*1e9)::int, random_vector(512) from generate_series(1, 100);
INSERT 0 100
create index on t1 using scann(b cosine) with (num_leaves = 10, quantizer = 'sq8');
Perbaikan yang direkomendasikan
Anda tidak dapat membuat indeks ScaNN pada tabel induk dari tabel berpartisi.
Anda harus membuat indeks ScaNN pada tabel berpartisi.
Menerapkan pembuatan indeks dan menekan error
Anda dapat memaksa AlloyDB untuk membuat indeks dan menekan error. Sebelum mengizinkan pembuatan indeks dengan metode ini, pertimbangkan implikasi berikut:
- Karena indeks dilatih dengan data yang lebih sedikit atau tidak ada data, centroid mempelajari data nol yang menyebabkan recall buruk.
- Performa tulis ke database juga mungkin lambat.
Untuk memaksa pembuatan indeks, selesaikan langkah-langkah berikut:
Tetapkan parameter tingkat sesi
scann.allow_blocked_operations creationketruedi database:SET scann.allow_blocked_operations = true;Tetapkan hak istimewa
SUPERUSERkepada pengguna yang akan menjalankan kueri ini di database:CREATE USER USER_NAME WITH SUPERUSER PASSWORD PASSWORD;Ganti kode berikut:
USER_NAME: nama pengguna yang ingin Anda beri hak istimewa.PASSWORD: sandi pengguna.