Tüm Ürünler
Search
Belge Merkezi

ApsaraDB for SelectDB:Elasticsearch verilerini geçirme

Son Güncelleme:Oct 08, 2026

Bir katalog kullanarak çevrim dışı verileri bir Elasticsearch kümesinden bir ApsaraDB for SelectDB örneğine aktarın. Katalog, Elasticsearch dizinlerini SelectDB tablolarıyla eşler; böylece geçişi tamamlamak için tek bir INSERT INTO ... SELECT ifadesini çalıştırabilirsiniz.

Önkoşullar

Başlamadan önce aşağıdaki koşulları sağladığınızdan emin olun:

Çalışma şekli

Bir katalog oluşturmak, SelectDB'den Elasticsearch kümenize salt okunur bir bağlantı kurar. Katalog oluşturulduktan sonra SelectDB, bu katalog içinde otomatik olarak default_db adlı bir veritabanı oluşturur ve her bir Elasticsearch dizinini bu veritabanındaki bir tabloyla eşler. Ardından kataloğu sorgulayabilir ve verileri bir SelectDB tablosuna kopyalamak için INSERT INTO ... SELECT ifadesini çalıştırabilirsiniz.

Not

SelectDB yalnızca harici bir katalogdan veri okuyabilir. Elasticsearch kümesine geri yazma işlemi desteklenmez.

Örnek ortam

Aşağıdaki adımlarda bu örnek değerler kullanılmıştır. Kendi değerlerinizi gerektiği şekilde yerine koyun.

Öğe Değer
Elasticsearch dizini (kaynak) product_info
SelectDB veritabanı (hedef) es_db
SelectDB tablosu (hedef) test_es2SelectDB

Örnek kaynak verileri hazırlama

Daha fazla bilgi için bkz. Başlangıç.

Çevrim dışı verileri geçirme

Adım 1: SelectDB örneğine bağlanma

Bağlantı talimatları için bkz. Bir örneğe bağlanma.

Adım 2: Elasticsearch kataloğu oluşturma

Elasticsearch kümenizi işaret eden bir katalog oluşturmak için aşağıdaki ifadeyi çalıştırın:

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

Aşağıdaki tabloda katalog özellikleri açıklanmıştır:

Parametre Gerekli Varsayılan Açıklama
es_catalog Evet — Kataloğun adı. İş gereksinimlerinize göre adı değiştirin.
type Evet — es olarak ayarlayın.
hosts Evet — Elasticsearch kümesinin erişim URL'si. Biçim: http://<IP address>:<port>. Bir Server Load Balancer (SLB) uç noktası kullanmak için bu değeri SLB URL'sine ayarlayın.
user Hayır — Elasticsearch kümesine erişmek için kullanılan kullanıcı adı.
password Hayır — Elasticsearch kümesine erişmek için kullanılan parola.
doc_value_scan Hayır true Alan değerlerini sorgulamak için sütun yönelimli depolamayı (doc_values) etkinleştirir. Etkinleştirildiğinde SelectDB, doc_values özelliği etkin olan alanları otomatik olarak sorgular; bu durum, az sayıda sütun üzerindeki sorgular için performansı önemli ölçüde artırır.
keyword_sniff Hayır true Elasticsearch'teki TEXT alanlarını algılar ve bunları ilgili KEYWORD alanlarını kullanarak sorgular. true olduğunda SelectDB, tokenizasyondan önce tam alan değeriyle eşleşme yapar. false olduğunda SelectDB, tokenizasyondan sonra tekil terimlerle eşleşme yapar.
nodes_discovery Hayır true Elasticsearch düğüm keşfini etkinleştirir. true olduğunda SelectDB tüm kullanılabilir veri düğümlerini keşfeder ve bunlara bağlanır. false olduğunda SelectDB, düğümlere yalnızca hosts parametresinde belirtilen URL üzerinden erişir. Alibaba Cloud Elasticsearch kümeleri için false olarak ayarlayın; çünkü bu kümelere yalnızca URL üzerinden erişilebilir.
mapping_es_id Hayır false Elasticsearch _id alanını bir SelectDB sütunuyla eşler. Birincil anahtar değerini sorgulamanız gerekiyorsa true olarak ayarlayın. false olduğunda _id alanı sorgularda erişilebilir değildir.
like_push_down Hayır true LIKE sorgularını Elasticsearch joker karakter sorgularına dönüştürür ve bunları kümeye iter (push down). Bu durum, bazı senaryolarda Elasticsearch kümesindeki CPU tüketimini artırabilir. Geri çağırma oranı pahasına doğruluğu artırmak ve LIKE itelemeyi devre dışı bırakmak için false olarak ayarlayın.
include_hidden_index Hayır false Gizli dizinleri sorgu koşullarına dahil eder.

Adım 3: Kataloğu doğrulama

Kataloğun oluşturulduğunu onaylamak için SHOW CATALOGS komutunu çalıştırın:

SHOW CATALOGS;

Beklenen çıktı:

+--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+
| 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 |
+--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+

Adım 4: (İsteğe bağlı) Elasticsearch kataloğunu sorgulama

Eşlenen tabloları göz atmak için harici kataloğa geçiş yapın:

SWITCH es_catalog;

es_catalog içindeki verilere, dahili katalogda yaptığınız gibi sorgulama yaparak erişebilirsiniz. Sorgu örnekleri için Elasticsearch veri kaynağı konusunun "Elasticsearch veri kaynağından veri sorgulama" bölümüne bakın.

İşlem tamamlandığında dahili kataloğa geri dönün:

SWITCH internal;

Adım 5: Hedef veritabanını oluşturma

Veritabanı zaten varsa bu adımı atlayın.

CREATE DATABASE es_db;

Hedef veritabanına geçiş yapın:

USE es_db;

Adım 6: Hedef tabloyu oluşturma

Tabloyu oluşturmadan önce Elasticsearch ile SelectDB arasındaki sütun türü eşlemelerini inceleyin. Tam tür eşleme referansı için Elasticsearch veri kaynağı konusunun "Sütun türü eşlemeleri" bölümüne bakın.

Elasticsearch dizini şemasıyla eşleşen sütun türlerini kullanarak tabloyu oluşturun:

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

Adım 7: Verileri geçirme

Tüm satırları Elasticsearch dizininden SelectDB tablosuna kopyalamak için INSERT INTO ... SELECT ifadesini çalıştırın:

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

Adım 8: Geçişi doğrulama

Verilerin içeri aktarıldığını onaylamak için hedef tabloyu sorgulayın:

SELECT * FROM test_Es2SelectDB;

Artımlı verileri geçirme

Üretim ortamlarında Elasticsearch verileri genellikle hem geçmiş (çevrim dışı) hem de devam eden artımlı verileri içerir. Veri türünüze bağlı olarak aşağıdaki stratejileri kullanın.

Günlük verileri

Yeni günlük girdilerini aynı anda hem Elasticsearch kümesine hem de SelectDB örneğine yazın. SelectDB'de yeterli veri biriktiğinde analiz sorgularınızı doğrudan SelectDB üzerinde çalıştırın.

İşlemsel veya olay verileri

Tekilleştirmeyi otomatik olarak yönetmek için SelectDB'nin Unique key modelini kullanın. Artımlı verileri hem Elasticsearch kümesine hem de SelectDB'ye paralel olarak yazın. Geçmiş verileri yukarıdaki çevrim dışı geçiş adımlarını kullanarak aktarın. Geçmiş ve artımlı kayıtlar örtüşüyorsa Unique key modeli birincil anahtara göre tekilleştirme yapar; bu nedenle manuel çakışma çözümlemesine gerek yoktur.

ELK ekosistemi uyumluluğu

Günlük toplama amacıyla SelectDB; günlük verilerini verimli bir şekilde toplamak ve işlemek için özelleştirilmiş ve geliştirilmiş Filebeat ile Logstash eklentileri sunar. Ayrıca verileri içe aktararak günlük toplayabilirsiniz. Daha fazla bilgi için aşağıdaki konulara bakın:

Sonraki adımlar