All Products
Search
Document Center

OpenSearch:Ikhtisar plug-in sumber data

Last Updated:Apr 02, 2026

Saat menyinkronkan data dari sumber data ke OpenSearch, nilai bidang di sumber mungkin perlu ditransformasi sebelum diindeks—misalnya, memisahkan string yang dipisahkan koma menjadi array atau menghapus tag HTML. Plug-in pemrosesan data menangani transformasi ini secara otomatis selama sinkronisasi, sehingga Anda tidak perlu memproses data di luar OpenSearch.

Penting

Plug-in pemrosesan data hanya tersedia saat menyinkronkan data melalui sumber data yang telah dikonfigurasi. Jika Anda mengunggah data melalui operasi API atau SDK OpenSearch, proses data tersebut sebelum diunggah.

Prasyarat

Sebelum memulai, pastikan Anda telah:

  • Menyiapkan sumber data yang dikonfigurasi untuk aplikasi OpenSearch Anda

  • Menentukan pemetaan bidang antara tabel sumber dan tabel OpenSearch Anda

Catatan

Konfigurasikan plug-in saat menyiapkan sumber data, bukan saat mendefinisikan skema aplikasi. Plug-in hanya tersedia setelah sumber data dikonfigurasi.

Batasan sumber data

Perhatikan batasan berikut sebelum mengonfigurasi plug-in:

  • ApsaraDB RDS dan PolarDB: Tabel OpenSearch dapat dikaitkan dengan beberapa tabel sumber (mendukung sharding database dan tabel).

  • MaxCompute: Tabel OpenSearch hanya dapat dikaitkan dengan satu tabel sumber. Untuk menyinkronkan dari beberapa tabel sumber MaxCompute, gabungkan terlebih dahulu menjadi satu tabel.

Plug-in yang tersedia

OpenSearch menyediakan lima plug-in untuk transformasi bidang selama sinkronisasi:

Plug-inJenis transformasiFungsinya
JsonKeyValueExtractorEkstraksi JSONMengekstraksi nilai kunci tertentu dari bidang sumber berformat JSON
MultiValueSpliterPemisahan nilaiMemisahkan bidang sumber menjadi beberapa nilai menggunakan delimiter
KeyValueExtractorEkstraksi pasangan kunci-nilaiMengekstraksi kunci dan nilai dari bidang sumber berformat pasangan kunci-nilai
StringCatenateExtractorKonkatenasi stringMenggabungkan nilai dari beberapa bidang menjadi satu string
HTMLTagRemoverPenghapusan HTMLMenghapus tag HTML dari nilai bidang sumber

JsonKeyValueExtractor

Mengekstraksi nilai kunci tertentu dari bidang sumber berformat JSON dan memetakannya ke bidang tujuan. Hanya nilai dari kunci yang ditentukan yang dapat diekstraksi.

Persyaratan tipe: Tipe nilai yang diekstraksi harus sesuai dengan tipe bidang tujuan. Jika tipe tidak cocok, nilai yang diekstraksi akan dibuang tanpa pemberitahuan.

Konversi array: Jika nilai yang diekstraksi berupa array JSON, nilai tersebut secara otomatis dikonversi menjadi nilai bidang bertipe Array.

Contoh

Nilai bidang sumber:

{"title": "the content", "body": "the content"}

Untuk mengekstraksi kunci title, konfigurasikan plug-in untuk menargetkan title. Bidang tujuan menerima "the content".

Untuk tipe Array:

  • Sumber LITERAL_ARRAY: {"tags": ["a", "b", "c"]}

  • Sumber INT_ARRAY: {"tags": [1, 2, 3]}

MultiValueSpliter

Memisahkan nilai bidang sumber menjadi beberapa nilai menggunakan delimiter yang ditentukan, dan menuliskan hasilnya ke bidang tujuan bertipe Array.

Persyaratan tipe: Bidang tujuan harus bertipe Array.

Dukungan delimiter:

Jenis delimiterCara menentukan
Karakter non-printable umum (misalnya, \t)Tulis langsung
Karakter non-printable tidak umumGunakan notasi Unicode (misalnya, \u001D)
Delimiter multi-karakter (misalnya, ##, \t\t)Tulis langsung

Contoh

Nilai bidang sumber: 1,2,3

Tentukan , sebagai delimiter.

Untuk detail konfigurasi lebih lanjut, lihat Konfigurasi MultiValueSpliter.

KeyValueExtractor

Mengekstraksi kunci dan nilai tertentu dari bidang sumber yang diformat sebagai pasangan kunci-nilai, dan memetakan hasilnya ke bidang tujuan. Hanya nilai dari kunci yang ditentukan yang dapat diekstraksi. Delimiter tidak wajib digunakan.

Persyaratan tipe: Tipe nilai yang diekstraksi harus sesuai dengan tipe bidang tujuan. Jika tipe tidak cocok, nilai tersebut akan dibuang tanpa pemberitahuan. Jika delimiter memisahkan nilai yang diekstraksi, bidang tujuan harus bertipe Array.

Perilaku kunci duplikat: Jika terdapat dua kunci identik, hanya nilai dari kunci kedua yang diekstraksi.

Contoh

Nilai bidang sumber: key1:value1,value2;key2:value3

Konfigurasi:

  • Pasangan kunci-nilai dipisahkan oleh titik koma (;): memisahkan key1:value1,value2 dari key2:value3

  • Kunci dan nilai dipisahkan oleh titik dua (:): memisahkan kunci dari nilai

  • Nilai dipisahkan oleh koma (,): memisahkan beberapa nilai untuk satu kunci

StringCatenateExtractor

Menggabungkan nilai dari beberapa bidang tabel tujuan menjadi satu string dalam urutan yang ditentukan.

Persyaratan tipe: Plug-in ini tidak dapat menggabungkan bidang bertipe INT. Kami menyarankan Anda menggunakan bidang bertipe LITERAL.

Sumber bidang: Bidang harus berasal dari tabel tujuan, bukan tabel sumber. Pisahkan beberapa nama bidang dengan koma (,).

Variabel sistem: Gunakan $table untuk menyertakan nama tabel saat ini dalam string yang digabungkan. $table hanya diisi jika wildcard sharding tabel dikonfigurasi.

Contoh

Untuk menggabungkan field1 dan field2 dengan pemisah garis bawah (_).

HTMLTagRemover

Menghapus semua tag HTML dari nilai bidang sumber. Bidang tujuan menerima konten teks biasa.

Contoh

Nilai bidang sumber: <div id="copyright">OpenSearch</div>

Setelah diproses, nilai bidang tujuan menjadi: OpenSearch

Batasan

BatasanDetail
Unggahan API dan SDKPlug-in tidak tersedia. Proses data sebelum mengunggah.
Sumber data MaxComputeSatu tabel OpenSearch hanya dipetakan ke satu tabel sumber MaxCompute
StringCatenateExtractorTidak dapat menggabungkan bidang bertipe INT
JsonKeyValueExtractor dan KeyValueExtractorKetidaksesuaian tipe antara nilai yang diekstraksi dan bidang tujuan menyebabkan kehilangan data tanpa pemberitahuan
Waktu konfigurasi plug-inHanya dapat dikonfigurasi setelah sumber data disiapkan; tidak tersedia saat definisi skema

Topik terkait