MaxCompute, sebelumnya dikenal sebagai Open Data Processing Service (ODPS), adalah platform komputasi berskala besar. Jika data Anda untuk OpenSearch Edisi Algoritma Industri berada di MaxCompute, Anda dapat mengonfigurasi MaxCompute sebagai sumber data. Solusi ini mendukung struktur tabel tiga tingkat di MaxCompute. Saat Anda memicu pengindeksan ulang (reindex), sistem secara otomatis menarik seluruh data dari tabel yang ditentukan. Data inkremental selanjutnya harus didorong menggunakan panggilan API SDK.
Siapkan AccessKey
OpenSearch Edisi Algoritma Industri menggunakan AccessKey dan AccessKey Secret untuk mengunduh data dari tabel MaxCompute Anda. Sebelum mengonfigurasi sumber data, Anda harus memiliki pasangan AccessKey.
Proyek MaxCompute dan aplikasi OpenSearch Anda harus berada dalam Akun Alibaba Cloud yang sama.
-
Anda dapat menggunakan pasangan AccessKey dari Akun Alibaba Cloud Anda untuk mengakses tabel di proyek MaxCompute mana pun di bawah akun tersebut.
-
Untuk keamanan yang lebih baik, kami merekomendasikan penggunaan Pengguna RAM. Ikuti langkah-langkah berikut untuk mengonfigurasinya.
-
Buat Pengguna RAM di bawah Akun Alibaba Cloud Anda. Untuk informasi lebih lanjut, lihat Buat dan otorisasi Pengguna RAM.
-
Di MaxCompute, tambahkan Pengguna RAM tersebut sebagai anggota ke proyek Anda.
Pada kotak dialog Manage Members proyek MaxCompute Anda, cari dan pilih Pengguna RAM target dari daftar Search Members di sebelah kiri. Klik tombol panah kanan untuk memindahkan pengguna tersebut ke daftar Selected/To-be-added Members di sebelah kanan. Atau, Anda dapat memasukkan satu atau beberapa nama anggota, dipisahkan dengan koma, di kotak input Manually Add Member di bagian bawah, lalu klik OK.
-
Setelah menambahkan anggota tersebut, buka halaman MaxCompute DataStudio dan jalankan perintah
list users;untuk menemukan username lengkapnya. Untuk informasi lebih lanjut, lihat Hubung menggunakan konsol (Query Editor).OK OK OK OK OK OK OK OK A xxx RAM$o; xxx h_test@test.xxx xxx st_1 2022-02-10 18:34:33 INFO ===xxx===================================================== 2022-02-10 18:34:33 INFO Exit code of the Shell command 0 2022-02-10 18:34:33 INFO -- Invocation of Shell command completed --- -
Salin username lengkap tersebut dan berikan izin yang diperlukan. Pada perintah berikut, ganti xxx dengan username yang telah Anda salin.
-- 1. Berikan izin untuk melihat daftar proyek dan membuat instans. grant CreateInstance,List on project zy_ts_test to user xxx; -- 2. Berikan izin untuk memilih, menggambarkan, dan mengunduh data tabel. GRANT select,describe,download ON TABLE people_info TO USER xxx; -- 3. (Opsional) Berikan izin berbasis label pada tabel ODPS. set label 2 to USER xxx; -- Tampilkan izin untuk pengguna yang ditentukan. show grants for xxx;
Setelah memberikan izin, Anda dapat mengonfigurasi sumber data MaxCompute di Konsol OpenSearch.
Konfigurasi sumber data MaxCompute
-
Pada halaman konfigurasi aplikasi, pilih Use Data Source, lalu pilih sumber data MaxCompute.
-
Pada daftar jenis sumber data, klik MaxCompute.
-
Klik Connect to Database, masukkan informasi MaxCompute Anda, termasuk nama proyek serta AccessKey dan AccessKey Secret dari akun yang telah diberi otorisasi.
Setelah memasukkan detail tersebut, klik Connect.
-
Setelah terhubung, pilih tabel data yang akan dikonfigurasi. Contoh berikut menunjukkan cara menambahkan tabel tiga tingkat.
Pada kotak dialog Select Data Source, klik tab MaxCompute. Di area Select Database, pilih database yang telah terhubung. Di area Select Data Table, pilih tabel target, seperti
default.item_tabledanopensearch.bank_data. Pindahkan ke daftar Selected, lalu klik OK.
Sistem secara otomatis memetakan bidang (field) dari tabel sumber Anda. Anda dapat menyesuaikan pemetaan ini sesuai kebutuhan. Setelah selesai, klik Next.
Tabel konfigurasi bidang hasil pemetaan otomatis mencakup kolom Field name, Primary key, Type, Join with another table, dan Actions. Untuk setiap bidang, Anda dapat mengatur tipe data (misalnya TEXT atau INT), menentukan kunci primer, mengonfigurasi penggabungan dengan tabel lain, serta menambah atau menghapus bidang.
Saat mengonfigurasi aplikasi Anda, Anda harus menetapkan satu tabel sebagai tabel utama. Setiap tabel juga harus memiliki bidang kunci primer yang unik.
-
Konfigurasi skema indeks. Pilih alat analisis (analyzer) yang sesuai dengan kebutuhan pencarian Anda. Untuk informasi lebih lanjut, lihat Skema indeks. Setelah selesai, klik Next.
Pada contoh ini, dua indeks dikonfigurasi. Indeks default mencakup bidang country, source_buy_cnt, city, item_type, last_modify_time, channel, title, dan subscribe_cnt, serta menggunakan analyzer Chinese - General. Indeks id mencakup bidang custom_pk_id dan menggunakan analyzer keyword.
-
Konfigurasi sumber data. Ini mencakup pengaturan pemetaan bidang, pemilihan informasi partisi, dan pemilihan mekanisme kontrol sinkronisasi data.
Pada halaman konfigurasi Data Source, klik + Add a data source untuk menambahkan sumber data MaxCompute.
5.1. Konfigurasi pemetaan bidang: Klik ikon edit di kolom Actions. OpenSearch Edisi Algoritma Industri menyediakan beberapa Plugin sumber data untuk MaxCompute. Untuk menggunakan plugin, klik tanda plus (+) di kolom Content Conversion saat mengonfigurasi pemetaan bidang. Plugin tersebut mengubah konten bidang sumber sebelum disinkronkan ke OpenSearch. Jika plugin gagal karena kesalahan konfigurasi atau masalah koneksi, bidang sumber akan disinkronkan tanpa transformasi.
5.2. Pilih informasi partisi: Berdasarkan struktur data MaxCompute Anda, Anda dapat menentukan partisi mana yang akan diimpor. Anda dapat menggunakan ekspresi reguler untuk menentukan partisi tersebut. Misalnya, Anda dapat menggabungkannya dengan fitur pengindeksan ulang terjadwal untuk mengimpor data dari partisi baru setiap hari.
Ekspresi reguler: Tanda sama dengan (=), koma (,), titik koma (;), dan garis vertikal ganda (||) adalah karakter yang dicadangkan. Untuk secara otomatis mengimpor seluruh data dari partisi hari sebelumnya, gunakan ekspresi seperti
ds=%Y%m%d || -1 days.
ds adalah nama bidang partisi. Jangan tambahkan spasi atau karakter tak terlihat lainnya di sekitar tanda sama dengan (=).
Contoh berikut menunjukkan cara menggunakan kondisi partisi untuk MaxCompute.
-
1. Untuk menentukan beberapa aturan filter partisi, pisahkan dengan titik koma (;). Misalnya,
pt=1;pt=2mencocokkan semua partisi di mana bidang partisiptbernilai1atau2. -
2. Aturan filter dapat menentukan nilai untuk beberapa bidang partisi, dipisahkan dengan koma (,). Misalnya,
pt1=1,pt2=2,pt3=3mencocokkan partisi yang memenuhi ketiga kondisi tersebut secara bersamaan. Perhatikan bahwa fungsi seperti%Y%m%d || -1 daysdidukung untuk partisi tingkat tunggal tetapi tidak untuk filter partisi multi-level.

Contoh: Asumsikan sebuah tabel MaxCompute memiliki partisi pt yang berisi sub-partisi ds, seperti yang ditunjukkan pada gambar sebelumnya.
-
Beberapa partisi:
pt=1;pt=2menyinkronkan seluruh data dari partisipt=1danpt=2. -
Beberapa bidang partisi:
pt=1,ds=1menyinkronkan data dari sub-partisids=1di dalam partisipt=1. -
Sintaksis yang tidak didukung: Ekspresi seperti
pt=1,ds=%Y%m%d || -1 daysataupt=1;pt=%Y%m%d || -1 dayssaat ini tidak didukung. -
3. Nilai bidang partisi dapat berupa karakter wildcard (*), yang mencocokkan nilai apa pun. Dalam kasus ini, Anda dapat menghilangkan bidang tersebut dari aturan filter.
-
4. Nilai bidang partisi dapat berupa ekspresi reguler. Misalnya,
pt=[0-9]*mencocokkan semua partisi di mana nilaiptberupa angka. -
5. Nilai bidang partisi dapat menggunakan pencocokan berbasis waktu. Formatnya adalah
partition_field=formatted_time_value||time_interval_expression. Misalnya,ds=%Y%m%d || -1 daysmenentukan bahwa bidang partisi adalahds, formatnya adalah20150510, dan data dari hari sebelumnya diakses. -
5.1. Format waktu yang diformat mendukung penentu format tanggal standar yang tercantum dalam tabel berikut.
-
5.2. Ekspresi interval waktu mendukung format
+/- n unit, di manaunitdapat berupaweek(s),day(s),hour(s),minute(s),second(s), ataumicrosecond(s). Tanda plus (+) menunjukkan waktununit setelah tugas dibuat, sedangkan tanda minus (-) menunjukkan waktununit sebelumnya. -
5.3. Secara default, sistem mengganti parameter waktu di semua aturan filter dengan offset
+0 days. Oleh karena itu, perhatikan bahwa nilai bidang yang digunakan untuk filtering tidak boleh mengandung penentu format tanggal ini sebagai string literal. Misalnya, jika tugas dibuat pada hari Rabu, filterpt=%abcakan mencocokkan partisi di mana nilaiptadalahWedbc, bukan string literal%abc.
Penentu format tanggal yang tersedia:
%d: Hari dalam bulan (01-31)
%H: Jam dalam format 24 jam (00-23)
%m: Bulan (01-12)
%M: Menit (00-59)
%S: Detik (00-61)
%y: Tahun dalam dua digit (00-99)
%Y: Tahun dalam empat digit
5.3. Konfigurasi mekanisme kontrol sinkronisasi data:
Pilih Use DONE file untuk mengontrol kapan sistem memulai sinkronisasi penuh, yang membantu memastikan integritas data. Sebelum memulai sinkronisasi penuh dari MaxCompute, sistem memeriksa keberadaan file DONE hari ini. Jika file tidak ditemukan, sistem akan menunggu. Timeout default adalah satu jam.
-
Unduh klien odpscmd dari situs resmi MaxCompute. Nama paketnya adalah
odps_clt_release_64.tar.gz. -
Anda harus memiliki izin
CreateResourcepada proyek target. -
Setelah instalasi, jalankan perintah berikut untuk mengunggah file DONE. Beri nama file menggunakan format
$prefix_%Y-%m-%d, di mana$prefixadalah awalan yang secara default menggunakan nama tabel, dan%Y-%m-%dadalah tanggal tugas pengindeksan ulang. Interval minimum untuk tugas terjadwal adalah satu hari.odpscmd -u accessid -p accesskey --project=<prj_name>-e "add file <done file>;" -
Petunjuk penggunaan klien MaxCompute (odpscmd): Untuk informasi lebih lanjut, lihat Hubung menggunakan klien lokal (odpscmd).
-
File DONE harus dalam format JSON dan berisi
timestampdalam milidetik untuk kumpulan data penuh. Sistem menyimpan data inkremental maksimal selama tiga hari, sehingga timestamp ini tidak boleh lebih dari tiga hari di masa lalu. -
Timestamp ini menentukan titik waktu mulai penerapan data inkremental. Jika Anda tidak mengonfigurasinya, sistem akan menambahkan data inkremental mulai dari waktu mulai tugas pengindeksan ulang.
-
Sebagai contoh, pertimbangkan kumpulan data penuh yang dihasilkan pada pukul 09.00. MaxCompute menyelesaikan pemrosesannya pada pukul 10.00, dan pengindeksan ulang terjadwal di OpenSearch diatur pada pukul 10.30. Untuk memastikan integritas data, file DONE harus menentukan timestamp pukul 09.00 (dalam milidetik). Setelah data penuh disinkronkan, sistem akan menambahkan semua data inkremental yang dihasilkan setelah pukul 09.00. Jika Anda mengabaikan timestamp ini, sistem akan menambahkan data inkremental mulai dari waktu pengindeksan ulang (10.30), sehingga data yang dihasilkan antara pukul 09.00 dan 10.30 akan hilang. Pengaturan ini sangat penting untuk mencegah kehilangan data. Timestamp tidak diperlukan jika Anda tidak menggunakan data inkremental.
-
Pengaturan data time berfungsi dengan prinsip yang mirip dengan timestamp pada file DONE. Pengaturan ini digunakan untuk melacak titik awal data inkremental yang didorong melalui panggilan API selama pengindeksan ulang.
{
"timestamp":"1234567890000"
}
Prioritas file DONE dan data time:
-
Pengaturan data time untuk sumber data MaxCompute wajib diisi dan memiliki prioritas lebih tinggi daripada file DONE.
-
Jika Anda hanya membuat satu versi aplikasi, Anda harus menentukan data time. File DONE tidak dapat digunakan sendiri dalam skenario ini.
-
Untuk menggunakan pengindeksan ulang terjadwal, Anda harus mengonfigurasi data time dan file DONE. Versi pertama menggunakan data time. Untuk semua versi berikutnya yang dibuat secara otomatis, file DONE memiliki prioritas.
OpenSearch Edisi Algoritma Industri mendukung tiga sumber data Alibaba Cloud: RDS, MaxCompute (sebelumnya ODPS), dan PolarDB. RDS dan PolarDB mendukung konfigurasi penggabungan tabel ganda (multi-table join), memungkinkan Anda menghubungkan tabel utama dan tabel eksternal dalam satu aplikasi. Dengan sumber data MaxCompute, Anda hanya dapat mengonfigurasi satu database per aplikasi. OpenSearch Edisi Algoritma Industri tidak mendukung database yang dikelola sendiri atau sumber data eksternal lainnya.
Untuk memisahkan lingkungan pengujian dan lingkungan produksi, buat Instans OpenSearch yang terpisah dan konfigurasikan dengan sumber data berbeda guna memastikan isolasi lingkungan.
Catatan penggunaan
Koneksi sumber data MaxCompute hanya mendukung sinkronisasi penuh. Untuk menangani pembaruan inkremental, Anda harus mendorong data secara terpisah menggunakan SDK.