Elastik Arama

Elasticsearch Reindex Alan Türünü Değiştir

Elasticsearch Reindex Alan Türünü Değiştir

Veritabanlarıyla çalışmak çok eğlencelidir, ancak özellikle zaten var olan verilerle uğraşırken bazen zor olabilir.

Örneğin, belirli bir alanın türünü değiştirmek istiyorsanız, özellikle büyük miktarda veri işleyen hizmetlerde ciddi sonuçlara yol açabilecek hizmeti kaldırmanızı gerektirebilir.

Neyse ki, Elasticsearch'ün Yeniden İndeksleme, alma düğümleri, boru hatları ve işlemciler gibi güçlü özelliklerini bu tür görevleri çok kolay hale getirmek için kullanabiliriz.

Bu öğretici, Elasticsearch Ingest düğümlerini kullanarak belirli bir dizindeki bir alan türünü diğerine nasıl değiştireceğinizi gösterecektir. Bu yaklaşımın kullanılması, bir yandan saha türü değiştirme görevlerini gerçekleştirmeyi başarırken diğer yandan hizmetleri etkileyen aksama süresini ortadan kaldıracaktır.

Alma Düğümlerine Giriş

Elasticsearch'ün alma düğümü, belgeleri dizine eklemeden önce ön işlemenizi sağlar.

Bir Elasticsearch düğümü, Elasticsearch'ün belirli bir örneğidir; bağlı düğümler (birden fazla) tek bir küme oluşturur.

Çalışan kümede bulunan düğümleri şu istekle görüntüleyebilirsiniz:

GET /_düğümler/

Bunun için cURL komutu:

curl -XGET “http://localhost:9200/_nodes/”

Bu komutu yürütmek, aşağıda gösterildiği gibi size düğümler hakkında çok büyük bilgiler vermelidir (kesik çıktı):


"_düğümler":
"toplam" : 3,
"başarılı" : 3,
"başarısız" : 0
,
"cluster_name": "22e0bee6ef91461d82d9b0f1b4b13b4a",
"düğümler":
"gSlMjTKyTemoOX-EO7Em4w":
"ad": "örnek-0000000003",
"transport_address" : "172.28.86.133:19925",
"ev sahibi" : "172.28.86.133",
"ip" : "172.28.86.133",
"sürüm" : "7.10.2",
"build_flavor": "varsayılan",
"build_type": "liman işçisi",
"build_hash": "747e1cc71def077253878a59143c1f785afa92b9",
"total_indexing_buffer": 214748364,
"roller" : [
"veri",
"veri_soğuk",
"veri_içeriği",
"veri_sıcak",
"veri_sıcak",
"yutmak",
"usta",
"remote_cluster_client",
"dönüştürmek"
],
"Öznitellikler" :
"logical_availability_zone": "zone-0",
"sunucu_adı": "örnek-0000000003.22e0bee6ef91461d82d9b0f1b4b13b4a",
"availability_zone": "us-west-1c",
"xpack.yüklü" : "doğru",
"instance_configuration": "aws.veri.yüksek.i3",
"dönüştürmek.düğüm" : "doğru",
"bölge" : "biz-batı-1"
,
"ayarlar":
"s3":
"müşteri" :
"elastik-internal-22e0be":
"bitiş noktası": "s3-us-west-1.Amazonlar.com"


,
--------------------------------çıktı kesildi---------------------

Varsayılan olarak, tüm Elasticsearch düğümleri, alımı etkinleştirir ve alma işlemlerini gerçekleştirebilir. Ancak, yoğun alım işlemleri için yalnızca alıma ayrılmış tek bir düğüm oluşturabilirsiniz.

Pre_process'i işlemek için, belgeleri indekslemeden önce, önişlemciler serisini belirten bir ardışık düzen tanımlamamız gerekir.

Önişlemciler, bir ardışık düzenin etrafına sarılmış talimat kümeleridir ve birer birer yürütülür.

Bir ardışık düzenin nasıl tanımlanacağına ilişkin genel sözdizimi aşağıdadır:


"description" : "Beni dönüştür",
"işlemciler": [
"dönüştür":
"alan": "kimlik",
"tür": "tam sayı"
]

Açıklama özelliği, boru hattının neyi başarması gerektiğini söyler. Bir sonraki parametre, yürütme sırasına göre bir liste olarak iletilen ön işlemcilerdir.

Dönüştürme İşlem Hattı Oluşturun

Bir türü dönüştürmek için kullanacağımız bir işlem hattı oluşturmak için, _ingest API bitiş noktasıyla PUT isteğini şu şekilde kullanın:

PUT _ingest/pipeline/convert_pipeline

"description": "dayOfWeek alanını tamsayıdan uzun bir alana dönüştürür",
"işlemciler": [

"dönüştür":
"alan" : "Haftanın günü",
"tür": "uzun"


]

cURL için şu komutu kullanın:

curl -XPUT "http://localhost:9200/_ingest/pipeline/convert_pipeline" -H 'Content-Type: application/json' -d'  "description": "dayOfWeek alanını tamsayıdan uzun bir sayıya dönüştürür",  " işlemciler" : [          "dönüştür" :         "alan" : "Haftanın günü",        "tür": "uzun"            ]'

Yeniden İndeksle ve Dönüştür Tür

Besleme düğümünde ardışık düzene sahip olduğumuzda, tek yapmamız gereken dizin oluşturma API'sini çağırmak ve ardışık düzeni istek gövdesinin hedefinde bir argüman olarak şu şekilde iletmektir:

POST_reindex

"kaynak":
"index": "kibana_sample_data_flights"
,
"hedef":
"index": "kibana_sample_type_diff",
"pipeline": "convert_pipeline"

cURL için:

curl -XPOST "http://localhost:9200/_reindex" -H 'Content-Type: application/json' -d'  "source":     "index": "kibana_sample_data_flights"  ,  "hedef":     "index ": "kibana_sample_type_diff",    "pipeline": "convert_pipeline"  '

 Dönüşümü Doğrula

İşlem hattının doğru şekilde uygulandığını doğrulamak için, söz konusu alanı şu şekilde getirmek için GET isteğini kullanın:

GET /kibana_sample_data_flights/_mapping/field/dayOfWeek
GET /kibana_sample_type_diff/_mapping/field/dayOfWeek

Bu, verileri şu şekilde döndürmelidir:

-----------------------ORİJİNAL İNDEKS---------------------------

"kibana_sample_data_flights":
"eşlemeler":
"haftanın günü" :
"full_name": "haftanın günü",
"haritalama":
"haftanın günü" :
"tür": "tam sayı"






-------------------------YENİDEN DİZEKLENEN VERİLER-------------------------------

"kibana_sample_type_diff":
"eşlemeler":
"haftanın günü" :
"full_name": "haftanın günü",
"haritalama":
"haftanın günü" :
"tür": "uzun"





Sonuç

Bu kılavuzda, dizin oluşturmadan önce belgeleri önceden işlemek ve böylece bir alanı bir türden diğerine dönüştürmek için Elasticsearch Ingest düğümleriyle nasıl çalışılacağını inceledik.

Daha fazla bilgi edinmek için belgeleri inceleyin.

https://www.elastik.ortak/kılavuz/tr/elasticsearch/referans/ana/alma.html

SuperTuxKart for Linux
SuperTuxKart is a great title designed to bring you the Mario Kart experience free of charge on your Linux system. It is pretty challenging and fun to...
Battle for Wesnoth Tutorial
The Battle for Wesnoth is one of the most popular open source strategy games that you can play at this time. Not only has this game been in developmen...
0 A.D. Tutorial
Out of the many strategy games out there, 0 A.D. manages to stand out as a comprehensive title and a very deep, tactical game despite being open sourc...