All Products
Search
Document Center

OpenSearch:Konfigurasikan sumber data ApsaraDB RDS for MySQL

Last Updated:Apr 01, 2026

Hubungkan instans ApsaraDB RDS for MySQL sebagai sumber data OpenSearch agar indeks pencarian Anda tetap mutakhir tanpa perlu mendorong data secara manual. OpenSearch menarik snapshot lengkap saat pengaturan awal, lalu menyinkronkan perubahan inkremental secara otomatis melalui replikasi log biner.

Prasyarat

Sebelum memulai, pastikan bahwa:

  • Instans RDS Anda menjalankan mesin MySQL versi 5.2 hingga 8.0 dan merupakan Edisi Ketersediaan Tinggi (Edisi Dasar dan Edisi Perusahaan tidak didukung).

  • Instans RDS berada di wilayah yang sama dengan aplikasi OpenSearch Anda.

  • Instans RDS dideploy di virtual private cloud (VPC).

  • Instans RDS dibeli menggunakan Akun Alibaba Cloud yang sama yang digunakan untuk masuk ke Konsol OpenSearch.

  • Instans RDS bukan instans klon, instans read-only, atau instans PolarDB-X.

  • Akun database tidak mengandung tanda persen (%) dalam password-nya — hal ini menyebabkan pengindeksan ulang gagal dengan error Illegal hex characters in escape (%) pattern.

  • Akun yang digunakan untuk koneksi bukan akun istimewa.

Catatan: Jika Anda mengonfigurasi sumber data RDS untuk aplikasi standar, Anda tidak dapat menggunakan SDK atau operasi API untuk mendorong data inkremental ke aplikasi tersebut, dan Anda tidak dapat menentukan kondisi filter.

Cara kerja

Saat Anda menghubungkan instans RDS, OpenSearch menarik snapshot lengkap dari tabel-tabel yang dipilih dan mengindeks datanya. Setelah pemuatan awal, perubahan inkremental disinkronkan melalui salah satu dari tiga mode sinkronisasi berikut:

ModeKapan digunakan
Sinkronisasi OtomatisMode default; OpenSearch mendeteksi perubahan melalui log biner
Sinkronisasi Real-time melalui DTSUntuk kebutuhan latensi rendah; lihat Konfigurasikan sinkronisasi real-time DTS
Hanya sinkronisasi data lengkapPengindeksan ulang membangun kembali indeks dari awal tanpa sinkronisasi inkremental berkelanjutan

Data lengkap hanya ditarik dari database utama. Jadwalkan impor data lengkap dan pengindeksan ulang selama jam sepi.

Catatan: Jika sumber data RDS tidak memiliki data inkremental selama 15 hari atau lebih, sinkronisasi mungkin gagal. Jalankan pengindeksan ulang manual atau terapkan perubahan offline untuk memulihkan.

Perilaku pemetaan bidang

OpenSearch memetakan data MySQL Anda sebagai berikut:

  • Setiap baris dalam tabel sumber menjadi satu dokumen dalam indeks OpenSearch.

  • Setiap kolom menjadi satu bidang dalam dokumen tersebut.

  • Nilai kolom DATETIME dan TIMESTAMP dikonversi ke milidetik. Atur tipe bidang tujuan yang sesuai ke TIMESTAMP dalam skema aplikasi Anda.

Penggabungan multi-tabel dan multi-sumber

Anda dapat memetakan baris dari beberapa tabel — baik dari satu atau lebih sumber data — ke dalam satu tabel aplikasi. Tabel-tabel sumber harus memiliki skema tabel yang sama, dan konfigurasi plugin pemrosesan data harus identik di semua sumber data. Nilai kunci utama harus unik; nilai duplikat akan ditimpa.

Pola yang didukung:

  • Beberapa tabel sumber dalam satu sumber data dipetakan ke satu tabel aplikasi.

  • Beberapa sumber data, masing-masing dengan satu atau lebih tabel sumber, dipetakan ke satu tabel aplikasi.

Konfigurasikan sumber data

Anda dapat mengonfigurasi sumber data ApsaraDB RDS for MySQL saat membuat aplikasi baru atau menambahkannya ke aplikasi yang sudah ada melalui perubahan offline.

Catatan: Untuk mengonfigurasi sumber data sebagai Pengguna Resource Access Management (RAM), berikan izin yang diperlukan kepada Pengguna RAM terlebih dahulu. Peran layanan AliyunServiceRoleForOpenSearch harus dibuat menggunakan Akun Alibaba Cloud, bukan akun Pengguna RAM.

Langkah 1: Siapkan akun database dan log biner

Sebelum menghubungkan, konfigurasikan instans RDS agar mengizinkan akses OpenSearch.

Buat akun khusus dengan izin minimum

Jalankan SQL berikut pada instans RDS Anda untuk membuat akun read-only dan memberikan izin yang diperlukan (wajib untuk MySQL 5.7 dan versi setelahnya):

CREATE USER '<username>'@'%' IDENTIFIED BY '<password>';
GRANT SELECT, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO '<username>'@'%';
FLUSH PRIVILEGES;

Ganti <username> dan <password> dengan nilai Anda.

Untuk mengizinkan OpenSearch mengakses sumber data ApsaraDB RDS for MySQL, izin minimum berikut diperlukan:

  1. Izin untuk mengeksekusi pernyataan SHOW CREATE TABLE diberikan kepada OpenSearch.

  2. Izin untuk mengeksekusi pernyataan REPLICATION SLAVE atau REPLICATION CLIENT diberikan kepada OpenSearch.

  3. Nilai parameter binlog_row_image diatur ke FULL.

  4. Nilai parameter binlog_format diatur ke ROW.

Jika Anda ingin menggunakan DTS untuk menyinkronkan data, pastikan akun Anda memiliki izin untuk mengkueri semua tabel di database sumber. Selain itu, pastikan pernyataan SHOW CREATE TABLE * dapat dieksekusi sebagaimana mestinya. Jika akun Anda tidak memiliki izin tersebut, sinkronisasi real-time mungkin gagal.

Jangan mengubah izin akun setelah konfigurasi. Perubahan akun dapat mengganggu sinkronisasi real-time dan mencegah pembuatan versi aplikasi baru. Jika Anda harus mengubah akun atau password, hapus sumber data yang ada dan tambahkan kembali instans RDS.

Jika enkripsi SSL diaktifkan pada instans RDS, pastikan sertifikat SSL tetap valid. Sertifikat yang kedaluwarsa menyebabkan error koneksi.

Verifikasi pengaturan log biner

OpenSearch memerlukan konfigurasi log biner berikut pada instans RDS:

binlog_format     = ROW
binlog_row_image  = FULL
  • binlog_format: harus ROW agar OpenSearch dapat membaca perubahan tingkat baris.

  • binlog_row_image: harus FULL agar gambar baris lengkap ditulis ke log biner.

Untuk MySQL 5.6, juga tingkatkan ambang batas loose_max_execution_time dan loose_max_statement_time ke nilai yang lebih besar. Tanpa ini, pengindeksan ulang mungkin gagal dengan pesan: Query execution was interrupted, max_statement_time exceeded.

Catatan: Mode replica client dan replica slave dengan binary logging dinonaktifkan tidak didukung. Lihat Pemeriksaan Awal pada binary logging database sumber.

Langkah 2: Tambahkan alamat IP OpenSearch ke daftar putih RDS

OpenSearch harus dapat mengakses instans RDS Anda melalui jaringan. Tambahkan blok CIDR untuk wilayah Anda ke Daftar putih alamat IP instans RDS.

WilayahBlok CIDR
Tiongkok (Hangzhou)100.104.190.128/26, 100.104.241.128/26
Tiongkok (Beijing)100.104.16.192/26, 100.104.179.0/26
Tiongkok (Shanghai)100.104.37.0/26, 100.104.46.0/26
Tiongkok (Shenzhen)100.104.87.192/26, 100.104.132.192/26
Tiongkok (Qingdao)100.104.240.128/26, 100.104.111.128/26
Tiongkok (Zhangjiakou)100.104.155.192/26, 100.104.238.64/26
Jerman (Frankfurt)100.104.127.0/26, 100.104.35.192/26
AS (Silicon Valley) dan AS (Virginia)100.104.193.128/26, 100.104.119.128/26
Singapura100.104.58.192/26, 100.104.74.192/26

Pastikan juga instans RDS memiliki Titik akhir internal yang dikonfigurasi. Tanpa Titik akhir internal, OpenSearch tidak dapat terhubung dan mengembalikan pesan: Failed to connect to RDS service. Try again later.

Langkah 3: Hubungkan ke database

  1. Pada panel Select Data Source, klik ApsaraDB RDS for MySQL, lalu klik Connect to Database.

    1

  2. Pada kotak dialog Connect to Database, isi parameter koneksi dan klik Connect.

    2

    ParameterDeskripsi
    ApsaraDB RDS Instance IDID instans dari Konsol ApsaraDB RDS. ID ini case-sensitive. Instans read-only tidak didukung. Contoh: rm-bp19b4g5n11111111
    Database NameNama database yang akan dihubungkan. Tidak case-sensitive.
    UsernameAkun yang digunakan untuk koneksi. Harus memiliki izin baca pada skema tabel dan data lengkap. Case-sensitive.
    PasswordPassword untuk akun tersebut. Tidak boleh mengandung %.

    Jika koneksi gagal, OpenSearch mengembalikan salah satu error berikut:

    ErrorSolusi
    Instans ApsaraDB RDS for MySQL tidak berada di wilayah yang sama dengan aplikasi OpenSearch.Verifikasi ID instans dan pastikan instans RDS berada di wilayah yang sama dengan aplikasi OpenSearch. Jika keduanya sudah benar, buat tiket dukungan.
    Gagal menghubungkan ke layanan RDS.Periksa apakah ID instans, nama database, username, dan password sudah benar, serta pastikan titik akhir internal telah dikonfigurasi.
    Tabel tidak ada dalam instans ApsaraDB RDS for MySQL saat ini.Verifikasi nama tabel dan pastikan tabel tersebut ada di instans RDS.

Langkah 4: Pilih tabel

Setelah koneksi berhasil, pilih tabel yang akan disinkronkan.

3

Pada bagian Select Table, pilih tabel dari kotak Table di sebelah kiri, klik panah ke kanan untuk memindahkannya ke kotak Selected, lalu klik OK.

  • Nama tabel case-sensitive.

  • Untuk mencocokkan beberapa tabel dengan awalan nama yang sama, gunakan tanda bintang (*) sebagai wildcard. Misalnya, table_* mencocokkan table_a, table_b, dan seterusnya.

Langkah 5: Petakan bidang

Pada langkah Field Mapping, pilih bidang database yang akan disinkronkan ke OpenSearch dan klik OK.

4

Untuk menerapkan plugin pemrosesan data ke suatu bidang, klik tanda plus (+) di kolom Content Conversion untuk bidang tersebut. Untuk detail plugin yang tersedia, lihat Gunakan plugin pemrosesan data.

1
Catatan: Anda tidak dapat menggabungkan nilai bidang dari tabel sumber yang menggunakan skema tabel berbeda.

Langkah 6: Tetapkan kondisi filter

Tentukan kondisi filter untuk mengontrol baris mana yang ditarik dari instans RDS.

5

Hanya baris yang sesuai dengan kondisi filter yang diindeks. Setelah data lengkap disinkronkan, baris yang tidak lagi memenuhi kondisi filter akan dihapus — termasuk baris yang nilai kunci primernya cocok dengan dokumen yang sudah ada di aplikasi.

Untuk sintaksis filter dan detail konfigurasi, lihat Konfigurasikan kondisi untuk memfilter bidang dalam sumber data ApsaraDB RDS dan PolarDB.

Format filter: Saat memfilter kolom DATE atau DATETIME, gunakan format lengkap dengan padding nol:

createtime>'2018-03-01 00:00:00'   (benar)
createtime>'2018-3-1 00:00:00'     (mengembalikan error)

Batasan

  • Hanya instans ApsaraDB RDS for MySQL reguler edisi Edisi Ketersediaan Tinggi yang didukung.

  • Versi mesin MySQL yang didukung: 5.2 hingga 8.0.

  • Untuk MySQL 5.6, tingkatkan ambang batas loose_max_execution_time dan loose_max_statement_time. Jika tidak, pengindeksan ulang mungkin gagal dengan pesan: Query execution was interrupted, max_statement_time exceeded.

  • Pernyataan REPLACE INTO tidak didukung.

  • Gunakan pernyataan DELETE untuk menghapus data. Pernyataan TRUNCATE dan DROP tidak didukung.

  • Peralihan antara Titik akhir internal dan Titik akhir publik didukung. Tidak ada biaya trafik yang dikenakan saat OpenSearch mengakses instans RDS melalui Titik akhir internal.

Pemecahan Masalah

Konflik kunci utama antar beberapa tabel

Saat menyinkronkan dari beberapa tabel dengan skema tabel yang sama ke satu tabel aplikasi, nilai kunci utama duplikat dapat menyebabkan penimpaan data. Untuk menghindarinya, gunakan plugin StringCatenateExtractor untuk menghasilkan kunci unik dengan menggabungkan kunci utama asli dengan nama tabel.

Konfigurasikan plugin dengan field sumber pk dan $table, di mana:

  • pk adalah field kunci utama dari tabel sumber.

  • $table adalah variabel sistem yang menyimpan nama tabel (memerlukan pencocokan tabel wildcard aktif).

Gunakan tanda hubung (-) atau karakter kustom sebagai pemisah. Misalnya, jika tabelnya adalah my_table_0 dan nilai kunci utamanya adalah 123456, kunci hasilnya adalah 123456-my_table_0.

Pengguna RAM tidak dapat mengonfigurasi sumber data

Jika Anda melihat Failed to connect to RDS service. Try again later saat masuk sebagai Pengguna RAM, berikan izin yang diperlukan kepada Pengguna RAM tersebut. Lihat Buat Pengguna RAM. Perhatikan bahwa peran layanan AliyunServiceRoleForOpenSearch harus dibuat oleh Akun Alibaba Cloud utama.

Langkah selanjutnya