Elasticsearch vs RDBMS, Logstash vs Fluentd, Elasticsearch vs Opensearch
Source: Dev.to
Here’s a cleaned‑up version of the markdown citation:
**Source:** [Elasticsearch vs RDBMS, Logstash vs Fluentd, Elasticsearch vs OpenSearch – Dev.to](https://dev.to/tarikanafarta/elasticsearch-vs-rdbms-logstash-vs-fluentd-elasticsearch-vs-opensearch-2263)Elasticsearch vs RDBMS
Elasticsearch, büyük veri içinde özellikle metin tabanlı arama (full‑text search) yapmak için kullanılan, açık kaynaklı ve dağıtık mimariye sahip bir arama motorudur. Temel amacı, çok büyük veri kümeleri içinde belirli kelime veya bilgileri çok hızlı bulabilmektir.

Klasik bir veritabanında veri doğrudan satırlar üzerinden taranırken, Elasticsearch verileri index üzerinden arar. Bu yaklaşım sayesinde milyarlarca kayıt içinde arama işlemleri neredeyse gerçek zamanlı olarak gerçekleştirilebilir.
Elasticsearch indeksleri, ilişkisel veritabanlarında (RDBMS) bulunan indekslerle aynı değildir. Bir Elasticsearch cluster’ı, içinde birçok indeks barındırabilen bir veritabanı gibidir. Her indeks bir tabloya benzer ve her indeksin içinde birçok doküman bulunur.
RDBMS => Databases => Tables => Columns/Rows
Elasticsearch => Clusters => Indices => Shards => Documents (key‑value pairs)Elasticsearch temelde Apache Lucene üzerine kuruludur. Lucene, metinlerin indekslenmesi ve aranması için kullanılan güçlü bir kütüphanedir. Elasticsearch ise bu altyapıyı kullanarak hem structured hem de unstructured verilerin indekslenmesini ve aranmasını sağlar. Elasticsearch’te tutulan her veri JSON formatında bir document olarak saklanır ve hepsinin bir _id’si vardır.
Bir veri Elasticsearch’e eklendiğinde sistem bu veriyi doğrudan taranabilir halde saklamaz. Bunun yerine belirlenen alanlar indekslenir. İndeksleme sırasında her kelimenin hangi dokümanlarda geçtiği bir liste halinde tutulur; buna inverted index denir. Bu yapı Elasticsearch’ün çok hızlı çalışmasının temel sebebidir.

Elasticsearch’ün dağıtık çalışmasını sağlayan önemli yapılardan biri shard ve replica kavramlarıdır. Büyük veri kümelerini tek bir sunucuda tutmak zor olabileceği için bir index birden fazla shard’a bölünür. Shard’lar farklı node’lara dağıtılarak paralel işlem yapılması sağlanır. Böylece hem performans artar hem de sistem yatay olarak ölçeklenebilir.

Logstash vs Fluentd
- Logstash – Requires a JVM to run; this dependency is the main cause of its high memory consumption. Logstash is heavier but provides powerful transformations.
- Fluentd – Lighter and preferred for high‑scale log collection.

Additionally, Fluent Bit can collect not only logs but also metric data.
- Fluentd + Elasticsearch – Usually deployed as a DaemonSet log‑collector; reads logs from pod files, enriches them with Kubernetes metadata, and forwards them directly to Elasticsearch.
- Logstash + Elasticsearch – Can also run on Kubernetes, but because it is JVM‑based it requires more resource tuning and operational overhead.
Benchmark Sonuçları

- Düşük hacimli veri akışlarında Logstash ve Fluentd sistem üzerinde benzer bir yük oluşturur.
- 16 thread / iş‑yükü düğümü (workload node) noktasına gelindiğinde Logstash, aynı miktarda olayı işleyebilmek için daha fazla CPU kullanır; ortalama %25 daha yüksek CPU tüketimi görülür.
- Performans senaryoya bağlı olsa da Logstash, Fluentd’ye kıyasla daha fazla bellek tüketir. Fluentd, verimli bir log toplayıcıdır ve ölçeklenebilirliği oldukça iyidir.
Docker Desteği
- Fluentd: Docker, yerleşik bir logging driver’ı sunar. Container üzerindeki loglar, ekstra bir ajan çalıştırmaya gerek kalmadan doğrudan STDOUT üzerinden Fluentd servisine gönderilir.
- Logstash: Logların okunabilmesi ve Logstash’a gönderilebilmesi için bir eklenti (ör. Filebeat) gerekir; Docker’da yerleşik bir driver bulunmaz.
Sonuç
Kubernetes ortamlarında Fluentd, yerleşik Docker logging driver’ı ve parser’ı sayesinde ideal bir aday gibi görünmektedir. Bu yapı sayesinde container logları ek bir dosyaya ihtiyaç duymadan doğrudan toplanabilir ve Elasticsearch gibi hedef sistemlere yönlendirilebilir.
Elasticsearch vs OpenSearch
Logların Fluentd’ye Gönderilmesi
Container üzerinde logları Fluentd’ye göndermek için ek bir ajan çalıştırmaya gerek kalmaz. Logstash ile karşılaştırıldığında bu durum mimarinin daha az karmaşık olmasını sağlar ve loglama hatalarının oluşma riskini de azaltır.
Benchmark Sonuçları
“Çeşitli testlerin sonuçları dikkate alındığında, Elasticsearch’ün OpenSearch’e kıyasla sürekli olarak daha iyi performans gösterdiği açıkça görülmektedir. Basit sorguların çalıştırılması, verilerin sıralanması, histogram oluşturulması, terim veya aralık sorgularının işlenmesi ya da kaynakların daha verimli kullanılması gibi durumların hepsinde Elasticsearch öne çıkmaktadır.”
(Kobar & Sangiorgi, 2023)
Elasticsearch’ün arama özellikleri OpenSearch’e göre daha gelişmiştir ve AI/ML alanında da geliştirmeler yapmaya başlamıştır.