Elasticsearch 101 | Apinizer - API Management Platform
Elasticsearch büyük miktardaki veriyi tutarak, bu veriler üzerinden gerçek zamanlı arama yapma imkanı sağlayan bir platformdur. Yani Elasticsearch’de saklanan veri, istenilen kritere uygun olarak arama yapıp çok küçük bir zaman diliminde sonuç alınabilir.
Web üzerinden satış yapılan bir sitede ürün araması yapılırken, uygulamanızda log veya işlemleri (transactions) kayıt altına almak ve görselleştirmek, istatistik veriler elde etmek gibi amaçlarla kullanılabilir. Elasticsearch’ün diğer teknolojilerini kullanarak kullanım alanı genişletilebilir.
Elasticsearh de verinin yönetimi iki bölümden oluşur. İlk kısım verinin fiziksel olarak tutulması için gerekli donanım gereksinimleri ne olmalı, veri sunucular üzerinde nasıl ölçeklendirilmeli, arama veya indeksleme işlemleri nasıl daha performanslı hale getirilebilir, veri kaybı önleme gibi cluster üzerinde hangi konfigürasyonlar yapılmalı vs. gibi işlemler ayarlanır. Bu kısımda kısaca veri yönetimi yapılır. Diğer kısımda da veriler üzerinde arama veya analiz yapılarak veriler anlamlandırılır. Bu kısımda da veri bilimi ile ilgilenilir.
Bu terimler arasında tümdengelim sıralaması yapılırsa;
Cluster, bir ya da daha fazla node’dan oluşur.
Veri, saklanmak için değil, üzerinde arama yapmak veya verileri analiz etmek için kullanılır.
Elasticsearch Cluster’ındaki veriyi REST web servisi olarak sunar. İstemci CRUD operasyonlarını, arama işlemlerini (sorting, filtering, scripting, aggregations vs. gibi) gerçekleştirir. Cluster içindeki node’lar da REST API kullanarak etkileşime geçerler.
Node’lar birbiri ile TCP protokolü üzerinden, istemciler Elasticsearh Cluster’ı ile HTTP protokolü üzerinden iletişim kurar.
Node, verinin saklandığı, cluster içindeki veriye arama yapıldığı ve verilerin Elasticsearch’e aktarıldığı (indexing) fiziksel alandır. Her bir bilgisayarın bir node olması tavsiye edilir.
Her node birden fazla amaca hizmet edebilir.
Varsayılan değeri `node.master=true` ‘dur.
Varsayılan değeri `node.data=true` ‘dur.
Veriyi tutar ve CRUD, arama, aggregation vs. gibi işlemlerindeki sorgu sonuçlarını gösterir.
Varsayılan değeri `node.ingest=true` ‘dur.
Birden çok cluster’a bağlanan node’dur. Node’a bağlı cluster’lar üzerinde arama yapma gibi işlemleri gerçekleştirir.
Cluster büyüdükçe master node ve data node birbirinden ayrılmalıdır.
Shard ya da Primary Shard (Orijinal Parça)
Mesela, 1 TB dokümanı bulunan index, bir node’a sığmayabilir. Sığsa bile arama için bu node istek gönderildiğinde cevap vermesi yavaş olabilir. Bu sorunu çözmesi için index alt parçalara bölünür. Bu parçalara shard ya da primary shard denir.
Shardlar, içeriğin yatay olarak ölçeklendirmesi ve birden fazla node üzerinde bulunan shardlar ile işlemler paralel olarak yapılarak işlem performansının artırılması için önemlidir.
Replica ya da Replica Shard (Shard Kopyası)
Bir network ya da cloud üzerinde node herhangi bir hatadan devredışı kalabilir, aralarındaki bağlantı kopabilir gibi senaryolarla karşılaşabilir. Bunun gibi durumların üstesinden gelmek için shardların kopyası, replica ya da replica shard kullanılır.
Replicalar, verinin erişilebilir olması ve arama esnasında sorgu tüm replicalara gönderilip paralel işlemler yaparak ölçeklendirmek için önemlidir.
Shard’ın veya node’un başına birşey geldiğinde veriye eşebilmek için replicalar, shardları ile aynı node üzerinde olmamalıdır.
Bir index hiç ya da istenilen sayıda replica dan oluşturulabilir.
Varsayılan olarak her index 5 primary shard ve her shard için 1 replica sharddan oluşur. Yani toplamda 10 tane shard bulunur.
Bir ya da daha fazla shard da bulunan ve benzer özellikteki dökümanların koleksiyonu olan mantıksal alanlardır.
Index adı küçük harflerle oluşturulmalıdır. Index ismi, indexleme yaparken, arama sorgusu gönderirken, update, delete gibi operasyonlar için kullanılır.
Dokümanlar, indekslenebilen birer JSON nesnesidir.
Indekslenebilir demek, ilişkisel veri tabanındaki bir verinin saklanması gibi düşünülebilir. Burada ise document indekslendiğinde, Elasticsearch cluster’ında saklanır anlamına gelir.
Açık kaynaklı paketini indirmek için OSS (Open Source Software) özelliğine dikkat ediniz.
Kurulum dosyasındaki /bin/elasticsearch dosyasını çalıştırarak kurulum gerçekleştirilir.
Varsayılan olarak elasticsearch adında cluster ve 1 tane node kurulur.
Category: Elastic SearchBy Neslihan Esra ALTINIŞIK 24 December 2018 Leave a comment
PreviousPrevious post:KPS Jolt Dönüşüm ÖrneğiNextNext post:JOLT Transformation