Topik ini menjelaskan cara menambahkan tabel yang menggunakan MaxCompute sebagai sumber data.
Prasyarat
MaxCompute sebelumnya dikenal sebagai ODPS. Untuk informasi selengkapnya, lihat Apa itu MaxCompute.
Akun Alibaba Cloud yang Anda gunakan untuk login ke OpenSearch harus memiliki izin yang diperlukan pada tabel MaxCompute. Izin tersebut mencakup `describe`, `select`, `download`, dan izin label untuk bidang-bidang tertentu.
Pernyataan berikut menunjukkan cara memberikan izin:
-- Tambahkan pengguna.
add user ****@aliyun.com;
-- Berikan izin tabel yang diperlukan kepada pengguna.
GRANT describe,select,download ON TABLE table_xxx TO USER ****@aliyun.com
GRANT describe,select,download ON TABLE table_xxx_done TO USER ****@aliyun.com
-- MaxCompute mengaktifkan verifikasi izin tingkat bidang. Hal ini dapat mencegah Anda mengakses bidang dengan hak istimewa tinggi saat menarik data, sehingga menyebabkan proses build indeks gagal. Dalam kasus ini, Anda harus memberikan izin akses tingkat bidang kepada pengguna.
-- Berikan izin pada seluruh proyek.
SET LABEL 3 to USER ****@aliyun.com
-- Berikan izin pada satu tabel.
GRANT LABEL 3 ON TABLE table_xxx(col1, col2) TO ****@aliyun.comMesin Edisi Pencarian Vektor mendukung tipe bidang berikut untuk tabel MaxCompute: STRING, BOOLEAN, DOUBLE, BIGINT, dan DATETIME.
Untuk informasi lebih lanjut tentang pernyataan CREATE TABLE dan pengaturan parameter, lihat Pernyataan CREATE TABLE untuk sumber data MaxCompute.
Tambahkan tabel
Pada halaman Instance Details > Table Management, klik Add Table.

Masukkan informasi dasar untuk tabel dan klik Next.

Deskripsi parameter:
Table Name: Nama kustom untuk tabel.
Number of Shards: Masukkan bilangan bulat positif hingga 256. Shard meningkatkan kecepatan build penuh dan kinerja kueri individual. Untuk beberapa instans yang sudah ada, jumlah shard harus sama untuk semua tabel indeks. Atau, satu tabel indeks dapat memiliki satu shard sementara yang lain memiliki jumlah shard yang sama.
Data Update Resources: Jumlah resource yang digunakan untuk pembaruan data. Secara default, setiap indeks dilengkapi kuota gratis dua resource pembaruan berukuran 4-core 8 GB. Resource yang melebihi kuota gratis akan dikenai tagihan. Untuk informasi selengkapnya, lihat .
Scenario Template: Edisi Pencarian Vektor menyediakan tiga templat bawaan: General, Vector - Image Search, dan Vector - Text Semantics.
Konfigurasikan sumber data untuk sinkronisasi data. Setelah konfigurasi diverifikasi, klik Next.

Deskripsi parameter:
Data Source Type: Pilih MaxCompute.
Project: Nama proyek MaxCompute tujuan.
accesskeyId: ID AccessKey dari akun Alibaba Cloud atau pengguna Resource Access Management (RAM) Anda.
accesskeySecret: Rahasia AccessKey yang sesuai dengan ID AccessKey tersebut.
Table: Nama tabel MaxCompute tujuan.
Partition Key (partition): Anda harus menetapkan kunci partisi untuk sumber data MaxCompute. Contoh: ds=20170626.
Timestamp: Menentukan rentang waktu untuk mengambil data inkremental dari API. Sistem dapat mengambil data API inkremental dari tiga hari terakhir.
Auto Index Rebuild: Menentukan apakah akan mengaktifkan rebuild indeks otomatis. Jika diaktifkan, sistem secara otomatis membangun ulang indeks untuk tabel yang mereferensikan sumber data ini ketika perubahan terdeteksi.
Jika Anda mengaktifkan rebuild indeks otomatis, Anda harus membuat tabel done. Untuk petunjuknya, lihat Auto index rebuild di bawah ini.
Konfigurasikan bidang-bidang dan klik Next.

Bidang kunci utama dan bidang vektor wajib diisi. Bidang kunci utama harus bertipe INT atau STRING, dan Anda harus mencentang kotak centang Primary Key untuk bidang tersebut. Bidang vektor harus bertipe FLOAT, dan Anda harus mencentang kotak centang Vector Field untuk bidang tersebut.
Secara default, bidang vektor merupakan tipe FLOAT bernilai ganda. Pemisah nilai ganda default adalah pemisah ha3 `^]` (encoding UTF-8: `\x1D`). Anda juga dapat memasukkan pemisah nilai ganda kustom.
Jika suatu bidang tidak ada atau kosong dalam data, sistem secara otomatis mengisinya dengan nilai default. Nilai default adalah 0 untuk tipe numerik dan string kosong untuk tipe STRING. Anda juga dapat menentukan nilai default kustom.
Konfigurasikan skema indeks dan klik Next.

Bagian ini menjelaskan cara mengonfigurasi indeks vektor:
Bidang kunci utama dan bidang vektor wajib diisi. Bidang namespace bersifat opsional dan dapat dibiarkan kosong.
Anda hanya dapat memilih dari tiga bidang tetap ini. Anda tidak dapat menambahkan bidang baru.
Vector Dimensions: Pilih dimensi berdasarkan vektor yang dihasilkan oleh model Anda.
Distance Metric: Pilih metrik berdasarkan vektor yang dihasilkan oleh model Anda. Sistem mendukung dua metrik jarak: SquareEuclidean dan InnerProduct.
Vector Index Algorithm: Pilih algoritma berdasarkan vektor yang dihasilkan oleh model Anda. Sistem mendukung algoritma indeks vektor berikut: Quantized Clustering, linear, dan HNSW (Hierarchical Navigable Small World).
Real-time Index: Menentukan apakah akan membangun indeks vektor secara real-time untuk data inkremental dari API. Nilai default adalah true.
Untuk mengonfigurasi pengaturan lanjutan lainnya, klik untuk membuka bagian tersebut. Untuk deskripsi parameter, lihat Konfigurasi umum untuk indeks vektor.

Tinjau dan konfirmasi pengaturan. Setelah Anda mengklik Confirm Creation, sistem secara otomatis membuat tabel tersebut.

Anda dapat melihat progres pembuatan di riwayat perubahan.

Saat status tabel berubah menjadi In Use, Anda dapat menguji kueri di halaman Query Test.

Auto index rebuild
Tujuan tabel done: Saat Anda mengaktifkan rebuild indeks otomatis untuk sumber data, instans Edisi Pencarian Vektor secara otomatis membangun ulang indeks berdasarkan perubahan pada tabel done Anda.
Sebagai contoh, tabel data MaxCompute Anda bernama `mytable` dan dipartisi berdasarkan `ds=20220113`. Setelah Anda mengonfigurasi sumber data dan membangun ulang indeks untuk pertama kalinya, partisi baru yang berisi data lengkap dihasilkan setiap hari. Jika Anda ingin instans Edisi Pencarian Vektor memindai partisi baru tersebut dan secara otomatis membangun ulang indeks untuk menarik data baru, Anda harus menggunakan fitur auto index rebuild dengan tabel done.
Prosedur:
Saat menambahkan sumber data, aktifkan Auto Index Rebuild.

Di MaxCompute, buat tabel done. Jika tabel data bernama `mytable` dan kunci partisinya adalah `ds`, maka tabel done harus bernama `mytable_done` dan kunci partisinya juga harus `ds`. Kedua tabel tersebut ditampilkan di MaxCompute sebagai berikut:
odps:sql:xxx> show tables;
InstanceId: xxx
SQL: .
ALIYUN$****@aliyun.com:mytable # Tabel sumber data lengkap
ALIYUN$****@aliyun.com:mytable_done # Tabel done yang mengontrol rebuild penuh otomatisGambar berikut menunjukkan tabel done:

Pernyataan untuk membuat tabel done:
create table mytable_done (attribute string) partitioned by (ds string);Setelah data untuk partisi `mytable` dengan `ds=20220114` dihasilkan, konfigurasikan tabel done untuk memicu rebuild indeks di instans Edisi Pencarian Vektor.
-- Tambahkan partisi.
alter table mytable_done add if not exists partition (ds="20220114");
-- Masukkan data sinyal untuk rebuild penuh otomatis.
insert into table mytable_done partition (ds="20220114") select '{"swift_start_timestamp":1642003200}';Konten akhir tabel done adalah sebagai berikut:
odps:sql:xxx> select * from mytable_done where ds=20220114 limit 1;
InstanceId: xxx
SQL: .
+-----------+----+
| attribute | ds |
+-----------+----+
| {"swift_start_timestamp":1642003200} | 20220114 |
+-----------+----+Setelah data sinyal dimasukkan ke tabel done, instans Edisi Pencarian Vektor memindai sinyal tersebut dan secara otomatis memicu rebuild indeks.
Tabel done harus memiliki setidaknya satu kunci partisi, dan nama kunci partisi harus sama dengan kunci partisi tabel data. Misalnya, jika kunci partisi tabel data adalah `ds`, maka kunci partisi tabel done juga harus `ds`.
Tabel done harus hanya memiliki satu bidang bertipe STRING, dan nama bidang tersebut harus `attribute`.
Partisi yang ditambahkan ke tabel done harus ada di tabel data. Misalnya, jika tabel data memiliki partisi `ds="20220114"`, `ds="20220115"`, dan `ds="20220116"`, maka partisi baru yang ditambahkan ke tabel done harus salah satu dari partisi tersebut.
Saat Anda memasukkan data ke tabel done, nilai bidang `attribute` harus berupa string JSON, seperti {"swift_start_timestamp":1642003200}. Timestamp tersebut menunjukkan offset awal untuk mengambil data inkremental real-time.
Catatan
MaxCompute tidak mendukung tabel eksternal. Anda harus membuat tabel internal.
Tabel yang dikonfigurasi untuk sumber data MaxCompute harus merupakan tabel partisi.
Tabel yang dihasilkan di MaxCompute digunakan untuk build data lengkap. Sumber data API digunakan untuk mendorong data real-time.