All Products
Search
Document Center

ApsaraDB for SelectDB:Migrasi\ data\ Elasticsearch

Last Updated:Mar 29, 2026

Gunakan katalog untuk memigrasi data offline dari kluster Elasticsearch ke instans ApsaraDB for SelectDB. Katalog tersebut memetakan indeks Elasticsearch ke tabel SelectDB, sehingga Anda dapat menjalankan satu pernyataan INSERT INTO ... SELECT guna menyelesaikan migrasi.

Prasyarat

Sebelum memulai, pastikan Anda telah:

Cara kerja

Pembuatan katalog akan membuat koneksi read-only dari SelectDB ke kluster Elasticsearch Anda. Setelah katalog dibuat, SelectDB secara otomatis membuat database bernama default_db di dalamnya dan memetakan setiap indeks Elasticsearch ke sebuah tabel di database tersebut. Anda kemudian dapat melakukan kueri terhadap katalog dan menjalankan INSERT INTO ... SELECT untuk menyalin data ke tabel SelectDB.

Catatan

SelectDB hanya dapat membaca data dari katalog eksternal. Penulisan kembali ke kluster Elasticsearch tidak didukung.

Lingkungan contoh

Langkah-langkah berikut menggunakan nilai contoh berikut. Ganti dengan nilai Anda sendiri sesuai kebutuhan.

ItemNilai
Indeks Elasticsearch (sumber)product_info
Database SelectDB (tujuan)es_db
Tabel SelectDB (tujuan)test_es2SelectDB

Siapkan data sumber contoh

Untuk informasi selengkapnya, lihat Getting started.

Migrasi data offline

Langkah 1: Hubungkan ke instans SelectDB

Untuk instruksi koneksi, lihat Hubungkan ke instans.

Langkah 2: Buat katalog Elasticsearch

Jalankan pernyataan berikut untuk membuat katalog yang mengarah ke kluster Elasticsearch Anda:

CREATE CATALOG es_catalog PROPERTIES (
    "type"="es",
    "hosts"="http://127.0.0.1:9200",
    "user"="test_user",
    "password"="test_passwd",
    "nodes_discovery"="false"
);

Tabel berikut menjelaskan properti katalog:

ParameterWajibBawaanDeskripsi
es_catalogYaNama katalog. Ubah nama sesuai kebutuhan bisnis Anda.
typeYaDiatur ke es.
hostsYaURL akses kluster Elasticsearch. Format: http://<alamat IP>:<port>. Untuk menggunakan titik akhir Server Load Balancer (SLB), atur nilai ini ke URL SLB.
userTidakUsername untuk mengakses kluster Elasticsearch.
passwordTidakPassword untuk mengakses kluster Elasticsearch.
doc_value_scanTidaktrueMengaktifkan penyimpanan berorientasi kolom (doc_values) untuk mengkueri nilai bidang. Saat diaktifkan, SelectDB secara otomatis mengkueri bidang yang memiliki doc_values aktif, yang secara signifikan meningkatkan performa untuk kueri pada sejumlah kecil kolom.
keyword_sniffTidaktrueMendeteksi bidang TEXT di Elasticsearch dan mengkuerinya menggunakan bidang KEYWORD yang sesuai. Saat true, SelectDB mencocokkan nilai penuh bidang sebelum tokenisasi. Saat false, SelectDB mencocokkan istilah individual setelah tokenisasi.
nodes_discoveryTidaktrueMengaktifkan penemuan node Elasticsearch. Saat true, SelectDB menemukan dan terhubung ke semua node data yang tersedia. Saat false, SelectDB hanya mengakses node melalui URL yang ditentukan di hosts. Atur ke false untuk kluster Elasticsearch Alibaba Cloud, yang hanya dapat diakses melalui URL.
mapping_es_idTidakfalseMemetakan bidang _id Elasticsearch ke kolom SelectDB. Atur ke true jika Anda perlu mengkueri nilai primary key. Saat false, bidang _id tidak dapat diakses dalam kueri.
like_push_downTidaktrueMengonversi kueri LIKE menjadi kueri wildcard Elasticsearch dan mendorongnya ke kluster. Ini dapat meningkatkan konsumsi CPU pada kluster Elasticsearch dalam beberapa skenario. Atur ke false untuk menonaktifkan LIKE pushdown dan meningkatkan akurasi dengan mengorbankan tingkat recall.
include_hidden_indexTidakfalseMenyertakan indeks tersembunyi dalam kondisi kueri.

Langkah 3: Verifikasi katalog

Jalankan SHOW CATALOGS untuk memastikan katalog telah dibuat:

SHOW CATALOGS;

Output yang diharapkan:

+--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+
| CatalogId    | CatalogName  | Type     | IsCurrent | CreateTime              | LastUpdateTime      | Comment                |
+--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+
| 436009309195 | es_catalog   | es       |           | 2024-08-06 17:09:08.058 | 2024-07-19 18:04:37 |                        |
|            0 | internal     | internal | yes       | UNRECORDED              | NULL                | Doris internal catalog |
+--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+

Langkah 4: (Opsional) Lakukan kueri terhadap katalog Elasticsearch

Beralih ke katalog eksternal untuk menelusuri tabel yang dipetakan:

SWITCH es_catalog;

Lakukan kueri dan akses data di es_catalog seperti halnya di katalog internal. Untuk contoh kueri, lihat bagian "Query data from an Elasticsearch data source" pada topik Elasticsearch data source.

Kembali ke katalog internal setelah selesai:

SWITCH internal;

Langkah 5: Buat database tujuan

Lewati langkah ini jika database sudah ada.

CREATE DATABASE es_db;

Beralih ke database tujuan:

USE es_db;

Langkah 6: Buat tabel tujuan

Sebelum membuat tabel, tinjau pemetaan tipe kolom antara Elasticsearch dan SelectDB. Untuk referensi lengkap pemetaan tipe, lihat bagian "Column type mappings" pada topik Elasticsearch data source.

Buat tabel menggunakan tipe kolom yang sesuai dengan skema indeks Elasticsearch:

CREATE TABLE test_Es2SelectDB
(
    `annual_rate` VARCHAR(200),
    `describe`    TEXT,
    `productName` VARCHAR(200)
)
DISTRIBUTED BY HASH(productName) BUCKETS 4
PROPERTIES("replication_num" = "1");

Langkah 7: Migrasi data

Jalankan INSERT INTO ... SELECT untuk menyalin semua baris dari indeks Elasticsearch ke tabel SelectDB:

INSERT INTO test_Es2SelectDB SELECT * FROM es_catalog.default_db.product_info;

Langkah 8: Verifikasi migrasi

Lakukan kueri terhadap tabel tujuan untuk memastikan data telah diimpor:

SELECT * FROM test_Es2SelectDB;

Migrasi data inkremental

Di lingkungan produksi, data Elasticsearch biasanya mencakup data historis (offline) dan data inkremental yang berkelanjutan. Gunakan strategi berikut berdasarkan jenis data Anda.

Data log

Tulis entri log baru secara simultan ke kluster Elasticsearch dan instans SelectDB. Setelah cukup banyak data terkumpul di SelectDB, jalankan kueri analisis Anda langsung terhadap SelectDB.

Data transaksional atau data event

Gunakan model Unique key SelectDB untuk menangani deduplikasi secara otomatis. Tulis data inkremental ke kluster Elasticsearch dan SelectDB secara paralel. Migrasikan data historis menggunakan langkah migrasi offline di atas. Jika terdapat tumpang tindih antara catatan historis dan inkremental, model Unique key akan menghapus duplikat berdasarkan primary key, sehingga tidak diperlukan resolusi konflik manual.

Kompatibilitas ekosistem ELK

Untuk pengumpulan log, SelectDB menawarkan plugin Filebeat dan Logstash yang dikustomisasi dan disempurnakan untuk mengumpulkan serta memproses data log secara efisien. Anda juga dapat mengumpulkan log dengan mengimpor data. Untuk informasi selengkapnya, lihat topik berikut:

Langkah selanjutnya