Anda dapat menggunakan plugin OpenSearch Writer di Data Integration DataWorks untuk menulis data ke OpenSearch. Topik ini menjelaskan cara menulis data ke OpenSearch dalam mode offline.
Versi yang didukung
Versi 3 menggunakan paket pihak ketiga. Dependensi pom-nya adalah com.aliyun.opensearch:aliyun-sdk-opensearch:2.1.3.
Untuk menggunakan plugin OpenSearch Writer, Anda harus memiliki JDK 1.6-32 atau versi yang lebih baru. Anda dapat menjalankan perintah
java -versionuntuk memeriksa versi Java Anda.Edisi komersial Alibaba Cloud OpenSearch berikut ini didukung: Edisi Algoritma Industri, Edisi Obrolan AI berbasis LLM, Edisi Pencarian Berkinerja Tinggi, Edisi Pencarian Vektor, dan Edisi Mesin Pengambilan Informasi.
Batasan
OpenSearch Writer mendukung kelompok sumber daya arsitektur tanpa server (disarankan) dan kelompok sumber daya eksklusif untuk Data Integration, tetapi tidak mendukung resource kustom.
Kolom dalam OpenSearch tidak berurutan. Oleh karena itu, OpenSearch Writer mengharuskan Anda menentukan urutan kolom saat menulis data. Jika jumlah kolom yang ditentukan lebih sedikit daripada jumlah kolom dalam tabel OpenSearch tujuan, kolom yang tidak ditentukan akan diatur ke nilai default atau null.
Misalnya, jika sebuah tabel OpenSearch berisi kolom a, b, dan c, dan Anda ingin mengimpor data ke kolom b dan c, Anda dapat mengatur parameter "column":["c","b"]. Konfigurasi ini mengimpor kolom pertama dan kedua dari pembaca ke kolom c dan b pada tabel OpenSearch, masing-masing. Kolom a diatur ke nilai default atau null.
Anda hanya dapat menulis data offline ke OpenSearch dalam mode editor kode.
Tipe bidang yang didukung
OpenSearch Writer mendukung sebagian besar tipe data OpenSearch. Tabel berikut mencantumkan pemetaan tipe data yang didukung.
Kategori | Tipe data OpenSearch |
Bilangan bulat | INT |
Bilangan pecahan | DOUBLE dan FLOAT |
String | TEXT, LITERAL, dan SHORT_TEXT |
Tanggal dan waktu | INT |
Boolean | LITERAL |
Kembangkan tugas sinkronisasi data
Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.
Untuk prosedurnya, lihat Konfigurasi dalam mode editor kode.
Untuk semua parameter dan contoh kode untuk mode editor kode, lihat Lampiran: Contoh kode dan parameter.
Pertanyaan Umum
Menangani kesalahan konfigurasi kolom
Untuk memastikan keandalan data, OpenSearch Writer memvalidasi jumlah kolom. Writer melaporkan kesalahan jika Anda mencoba menulis lebih banyak kolom daripada yang ada di tabel tujuan. Misalnya, jika sebuah tabel OpenSearch memiliki kolom a, b, dan c, OpenSearch Writer akan melaporkan kesalahan jika Anda mencoba menulis lebih dari tiga kolom.
Catatan tentang konfigurasi tabel
OpenSearch Writer hanya dapat menulis data ke satu tabel dalam satu waktu.
Pengulangan tugas dan failover
Ketika suatu tugas dijalankan ulang, data yang sudah ada akan ditimpa berdasarkan ID dokumen. Oleh karena itu, kolom yang Anda tulis ke OpenSearch harus menyertakan kolom ID, yang berfungsi sebagai pengidentifikasi unik untuk suatu baris. Data dengan ID yang cocok akan ditimpa.
Lampiran: Contoh kode dan parameter
Konfigurasi tugas sinkronisasi batch menggunakan editor kode
Jika Anda ingin mengonfigurasi tugas sinkronisasi batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip sesuai dengan format skrip terpadu. Untuk informasi selengkapnya, lihat Konfigurasi tugas di editor kode. Informasi berikut menjelaskan parameter yang harus Anda konfigurasi untuk sumber data saat mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.
Contoh kode untuk Writer (Edisi Algoritma Industri, Edisi Obrolan AI berbasis LLM, dan Edisi Pencarian Berkinerja Tinggi)
{
"type": "job",
"version": "1.0",
"configuration": {
"reader": {},
"writer": {
"plugin": "opensearch",
"parameter": {
"accessId": "*********",
"accessKey": "********",
"host": "http://yyyy.aliyuncs.com",
"endpoint":"http://yyyy.aliyuncs.com",
"indexName": "datax_xxx",
"table": "datax_yyy",
"column": [
"appkey",
"id",
"title",
"gmt_create",
"pic_default"
],
"batchSize": 500,
"writeMode": add,
"version":"v2",
"ignoreWriteError": false
}
}
}
}Parameter untuk Writer (Edisi Algoritma Industri, Edisi Obrolan AI berbasis LLM, dan Edisi Pencarian Berkinerja Tinggi)
Parameter | Deskripsi | Wajib | Nilai default |
accessId | ID AccessKey dari Pasangan Kunci Akses Anda. | Ya | T/A |
accessKey | Rahasia AccessKey dari Pasangan Kunci Akses Anda. Digunakan sebagai kata sandi logon. | Ya | T/A |
host | Nama domain lalu lintas OpenSearch. Anda dapat masuk ke Konsol OpenSearch dan membuka halaman detail instans untuk mendapatkan nama domain tersebut. | Ya | T/A |
endpoint | Endpoint kontrol OpenSearch. Anda dapat memperoleh endpoint dari situs web resmi edisi OpenSearch yang sesuai. Misalnya, untuk Edisi Algoritma Industri, lihat Titik akhir layanan. | Ya | T/A |
indexName | Nama proyek OpenSearch. | Ya | T/A |
table | Nama tabel tujuan. Anda hanya dapat menentukan satu tabel karena DataX tidak mendukung penulisan data ke beberapa tabel secara bersamaan. | Ya | T/A |
column | Kolom yang ingin Anda tulis datanya. Untuk menulis data ke semua kolom, atur parameter ini menjadi OpenSearch mendukung penyaringan dan pengubahan urutan kolom. Misalnya, sebuah tabel memiliki kolom a, b, dan c. Jika Anda hanya ingin menyinkronkan data ke kolom c dan b, Anda dapat mengatur parameter ini menjadi | Ya | T/A |
batchSize | Jumlah catatan data yang ditulis dalam setiap batch. OpenSearch melakukan penulisan batch. Kekuatan utama OpenSearch terletak pada kueri, dan transaksi penulisan per detik (TPS)-nya tidak tinggi. Atur parameter ini berdasarkan sumber daya yang dialokasikan ke akun Anda. Umumnya, satu catatan data berukuran kurang dari 1 MB, dan satu penulisan batch berukuran kurang dari 2 MB. | Parameter ini wajib untuk tabel partisi. Jangan tentukan parameter ini untuk tabel non-partisi. | 300 |
writeMode | Mode penulisan. Konfigurasikan "writeMode":"add/update" untuk memastikan idempotensi penulisan:
| Ya | T/A |
ignoreWriteError | Anda dapat mengabaikan Titik kegagalan penulisan. Contoh: | Tidak | false |
version | Versi OpenSearch, seperti | Tidak | v2 |
Contoh kode untuk Writer (Edisi Pencarian Vektor dan Edisi Mesin Pengambilan Informasi)
{
"stepType": "opensearch",
"parameter": {
"indexName": "",
"column": [
{
"name": "col3double",
"type": "DOUBLE"
},
{
"name": "col2vector",
"type": "MULTI_FLOAT"
}
],
"datasource": "zm_test_vector_01",
"batchSize": "500",
"table": "demotable"
},
"name": "Writer",
"category": "writer"
}Parameter untuk Writer (Edisi Pencarian Vektor dan Edisi Mesin Pengambilan Informasi)
Parameter | Deskripsi | Wajib | Nilai default |
table | Nama tabel tujuan. Anda hanya dapat menentukan satu tabel karena DataX tidak mendukung penulisan data ke beberapa tabel secara bersamaan. | Ya | T/A |
column | Kolom yang ingin Anda tulis datanya. Untuk menulis data ke semua kolom, atur parameter ini menjadi OpenSearch mendukung penyaringan dan pengubahan urutan kolom. Misalnya, sebuah tabel memiliki kolom a, b, dan c. Jika Anda hanya ingin menyinkronkan data ke kolom c dan b, Anda dapat mengatur parameter ini menjadi | Ya | T/A |
batchSize | Jumlah catatan data yang ditulis dalam setiap batch. OpenSearch melakukan penulisan batch. Kekuatan utama OpenSearch terletak pada kueri, dan transaksi penulisan per detik (TPS)-nya tidak tinggi. Atur parameter ini berdasarkan sumber daya yang dialokasikan ke akun Anda. Umumnya, satu catatan data berukuran kurang dari 1 MB, dan satu penulisan batch berukuran kurang dari 2 MB. | Parameter ini wajib untuk tabel partisi. Jangan tentukan parameter ini untuk tabel non-partisi. | 300 |