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:
Elasticsearch kümesi ile SelectDB örneği arasında ağ bağlantısı bulunmalıdır. Tüm Elasticsearch küme düğümleri, SelectDB örneğiyle aynı sanal özel bulutta (VPC) yer almalıdır. Düğümler farklı VPC'lerde bulunuyorsa önce çapraz VPC bağlantısını yapılandırın. Daha fazla bilgi için bkz. ApsaraDB for SelectDB örneği ile veri kaynağı arasında bağlantı kurulamazsa ne yapmalıyım?
Tüm Elasticsearch küme düğümlerinin IP adresleri, SelectDB örneğinin IP adresi izin listesine eklenmelidir. Daha fazla bilgi için bkz. IP adresi izin listesini yapılandırma.
SelectDB örneğinin VPC IP adresleri, Elasticsearch kümesinin izin listesine eklenmelidir (küme izin listesini destekliyorsa). VPC IP adreslerini almak için bkz. ApsaraDB SelectDB örneğimin ait olduğu VPC'deki IP adreslerini nasıl görüntülerim?. Genel IP adresini almak için SelectDB örneğinin genel uç noktasına
pingkomutu gönderin.SelectDB'deki kataloglar hakkında temel bilgi sahibi olun. Arka plan bilgisi için bkz. Veri göl evi.
Ç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.
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
Elasticsearch veri kaynağı — Tam parametre referansı, sütun türü eşlemeleri ve yüklem iteleme ayrıntıları
Veri göl evi — SelectDB'de harici kataloglarla çalışma
IP adresi izin listesini yapılandırma — SelectDB örneğiniz için ağ erişim denetimi