Elasticsearch - SQL Erişimi
Elasticsearch'e karşı SQL benzeri sorguların gerçek zamanlı olarak yürütülmesini sağlayan bir bileşendir. Elasticsearch SQL'i hem SQL hem de Elasticsearch'ü anlayan ve Elasticsearch yeteneklerinden yararlanarak gerçek zamanlı olarak verileri gerçek zamanlı olarak okumayı ve işlemeyi kolaylaştıran bir çevirmen olarak düşünebilirsiniz.
Elasticsearch SQL'in Avantajları
It has native integration - Her sorgu, temel depolamaya göre ilgili düğümlere karşı verimli bir şekilde yürütülür.
No external parts - Elasticsearch'ü sorgulamak için ek donanıma, işlemlere, çalışma zamanlarına veya kitaplıklara gerek yok.
Lightweight and efficient - gerçek zamanlı olarak uygun tam metin aramasına izin vermek için SQL'i kucaklar ve ortaya çıkarır.
Misal
PUT /schoollist/_bulk?refresh
{"index":{"_id": "CBSE"}}
{"name": "GleanDale", "Address": "JR. Court Lane", "start_date": "2011-06-02",
"student_count": 561}
{"index":{"_id": "ICSE"}}
{"name": "Top-Notch", "Address": "Gachibowli Main Road", "start_date": "1989-
05-26", "student_count": 482}
{"index":{"_id": "State Board"}}
{"name": "Sunshine", "Address": "Main Street", "start_date": "1965-06-01",
"student_count": 604}
Yukarıdaki kodu çalıştırırken, yanıtı aşağıda gösterildiği gibi alıyoruz -
{
"took" : 277,
"errors" : false,
"items" : [
{
"index" : {
"_index" : "schoollist",
"_type" : "_doc",
"_id" : "CBSE",
"_version" : 1,
"result" : "created",
"forced_refresh" : true,
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 0,
"_primary_term" : 1,
"status" : 201
}
},
{
"index" : {
"_index" : "schoollist",
"_type" : "_doc",
"_id" : "ICSE",
"_version" : 1,
"result" : "created",
"forced_refresh" : true,
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 1,
"_primary_term" : 1,
"status" : 201
}
},
{
"index" : {
"_index" : "schoollist",
"_type" : "_doc",
"_id" : "State Board",
"_version" : 1,
"result" : "created",
"forced_refresh" : true,
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 2,
"_primary_term" : 1,
"status" : 201
}
}
]
}
SQL Sorgusu
Aşağıdaki örnek, SQL sorgusunu nasıl çerçevelendirdiğimizi gösterir -
POST /_sql?format=txt
{
"query": "SELECT * FROM schoollist WHERE start_date < '2000-01-01'"
}
Yukarıdaki kodu çalıştırırken, yanıtı aşağıda gösterildiği gibi alıyoruz -
Address | name | start_date | student_count
--------------------+---------------+------------------------+---------------
Gachibowli Main Road|Top-Notch |1989-05-26T00:00:00.000Z|482
Main Street |Sunshine |1965-06-01T00:00:00.000Z|604
Note - Yukarıdaki SQL sorgusunu değiştirerek farklı sonuç kümeleri elde edebilirsiniz.