OpenSearch Ingest Node ile Veri Dönüşümü

Mustafa Dikyar
2 min readMar 4, 2024

Merhaba,

Bu makale, OpenSearch’in Ingest Node özelliğini detaylı bir incelemesini sunmayı amaçlıyorum.

Ingest Node, OpenSearch ekosisteminde veri işleme ve dönüşümü için kullanılan bir bileşendir. Ham veriyi alır, istenilen format ve yapıya dönüştürerek, daha sonra arama ve analiz için kullanılacak şekilde indeksler.

Bu süreç, metin parçalama, tarih formatlama, coğrafi veri zenginleştirme gibi çok çeşitli transformasyonları içerir.

Processor’lar ve İşlevleri

Ingest Node, veri dönüşümünü gerçekleştirmek için çeşitli processor’lar kullanır. Her processor, veri üzerinde belirli bir işlem gerçekleştirir. Örneğin:

  • Grok Processor: Log dosyaları gibi yapılandırılmamış metinlerden veri çıkarır.
  • Date Processor: Zaman damgalarını standart bir formata dönüştürür.
  • GeoIP Processor: IP adreslerinden coğrafi konum bilgisi çıkarır.

Bu işlemler, veriyi daha anlamlı ve aranabilir hale getirmek için kritik öneme sahiptir.

Pipeline Oluşturma ve Veri İşleme

Pipeline Oluşturma

Pipeline, bir veya daha fazla processor’ı bir araya getiren yapıdır.

Aşağıdaki örnek, bir log dosyası işleme pipeline’ı oluşturur:

curl -X PUT "localhost:9200/_ingest/pipeline/my_pipeline" -H 'Content-Type: application/json' -d'
{
"description": "Log files processing pipeline",
"processors": [
{
"grok": {
"field": "message",
"patterns": ["%{IP:clientip} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}"]
}
},
{
"date": {
"field": "timestamp",
"formats": ["ISO8601"]
}
}
]
}'

Veri İşleme

Oluşturulan pipeline’ı kullanarak, veri eklemek için aşağıdaki komut kullanılır:

curl -X POST "localhost:9200/my_index/_doc/?pipeline=my_pipeline" -H 'Content-Type: application/json' -d'
{
"message": "192.168.1.1 GET /home 1234 0.5"
}'

Bu işlem, belirtilen veriyi işleyerek my_index indeksine ekler.

Simulate API ile Pipeline Testi

Simulate API, pipeline’ınızın veri üzerindeki etkisini, gerçek veriyi indekslemeden önce görmek için kullanılır. Bu, yapılandırmanın beklenen sonuçları verip vermediğini kontrol etmenizi sağlar.

curl -X POST "localhost:9200/_ingest/pipeline/my_pipeline/_simulate" -H 'Content-Type: application/json' -d'
{
"docs": [
{
"_source": {
"message": "Test log message"
}
}
]
}'

Gerçek Veri ile Pipeline Testi

Simulate API ile yapılan testlerden sonra, gerçek veri ile pipeline testi yapılmalıdır. Bu, pipeline’ınızın gerçek dünya verileriyle nasıl performans gösterdiği konusunda değerlendirme yapabilmemizi sağlayacaktır.

Veri Gönderimi

curl -X POST "localhost:9200/my_index/_doc/?pipeline=my_pipeline" -H 'Content-Type: application/json' -d'
{
"message": "192.168.1.1 GET /home 1234 0.5"
}'

Sonuçların Kontrolü

curl -X GET "localhost:9200/my_index/_search?pretty" -H 'Content-Type: application/json' -d'
{
"query": {
"match_all": {}
}
}'

Bu sorgu, işlenmiş verileri kontrol etmek için kullanılır.

OpenSearch Ingest Node, veri toplama ve işleme süreçlerinde son derece güçlü bir araçtır. Bu yazıda, Ingest Node’un nasıl kullanılacağını adım adım anlatmaya çalıştım. Böylece verilerinizi daha anlamlı, aranabilir ve analiz edilebilir hale getirebilirsiniz.

Sevgiler.

--

--