Elasticsearch - Truy cập SQL
Nó là một thành phần cho phép các truy vấn giống SQL được thực thi trong thời gian thực chống lại Elasticsearch. Bạn có thể coi Elasticsearch SQL như một trình dịch, một trình dịch hiểu cả SQL và Elasticsearch và giúp dễ dàng đọc và xử lý dữ liệu trong thời gian thực, trên quy mô lớn bằng cách tận dụng các khả năng của Elasticsearch.
Ưu điểm của Elasticsearch SQL
It has native integration - Mỗi và mọi truy vấn được thực thi hiệu quả đối với các nút có liên quan theo bộ nhớ cơ bản.
No external parts - Không cần phần cứng, quy trình, thời gian chạy hoặc thư viện bổ sung để truy vấn Elasticsearch.
Lightweight and efficient - nó bao gồm và bộc lộ SQL để cho phép tìm kiếm toàn văn phù hợp, trong thời gian thực.
Thí dụ
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}
Khi chạy đoạn mã trên, chúng tôi nhận được phản hồi như hình dưới đây:
{
"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
}
}
]
}
Truy vấn SQL
Ví dụ sau đây cho thấy cách chúng tôi đóng khung truy vấn SQL:
POST /_sql?format=txt
{
"query": "SELECT * FROM schoollist WHERE start_date < '2000-01-01'"
}
Khi chạy đoạn mã trên, chúng tôi nhận được phản hồi như hình dưới đây:
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 - Bằng cách thay đổi truy vấn SQL ở trên, bạn có thể nhận được các tập kết quả khác nhau.