天天看點

搶先 | 支援sql的Elasticsearch6.3全景概覽

1、Elasticsearch6.3 特性概覽

1.1、支援Sq

像操作Mysql一樣使用Elasticsearch,縮減DSL的學習成本,更多人愛上ES的特性。

POST /_xpack/sql?format=txt
{
    "query": "SELECT * FROM library WHERE release_date < '2000-01-01' "
}           

1.2、新增彙總統計功能

Elastic Stack已被越來越多地于物聯網,用于:性能監控和其他名額資料的資料存儲和可視化。盡管我們仍然認為大部分資料在很長一段時間内都有價值,但資料的相對價值随着時間的增長而降低。

随着6.3的釋出,我們現在可以在Elasticsearch中建立一個Job,它将定期彙總最近添加的資料的彙總統計資訊,該資訊通過檢索可以獲得。

1.3、支援Java10

Java9、Java10都是短期版本。

官方建議:除非你熟悉Java短期版本的快速釋出周期,否則我們強烈建議大多數使用者堅持使用Java 8。

1.4、安全更新

此更新還修複了兩個安全問題。

2、Elasticsearch版本如何更新到6.3?

作為基本規則:

2.1 次要版本之間的遷移

例如 6.x到6.y - 可以通過一次更新一個節點來執行。

2.2 連續主要版本之間的遷移

例如 5.x至6.x - 需要完全重新開機群集。

2.3 非連續主要版本之間的遷移

例如 2.x至6.x - 不支援。

3、Elasticsearch6.3 版本搶先安裝

4、Elasticsearch-sql搶先使用

  • Elasticsearch SQL是一個X-Pack元件,它允許針對Elasticsearch實時執行類似SQL的查詢。
  • 無論是使用REST接口,指令行還是JDBC,任何用戶端都可以使用SQL在Elasticsearch中本地搜尋和聚合資料。
  • 人們可以将Elasticsearch SQL視為翻譯工具,簡化DSL的複雜使用,友善實時大規模地讀取和處理資料。

4.1 sql檢索上道

Sql檢索體驗如下:

4.2 sql-cli用戶端檢索

4.3 sql RESTful API使用

POST /_xpack/sql?format=txt
{
    "query": "SELECT * FROM library ORDER BY page_count DESC LIMIT 5"
}           

傳回結果:

author     |     name      |  page_count   |      release_date      
----------------+---------------+---------------+------------------------
Frank Herbert   |Dune           |604            |1965-06-01T00:00:00.000Z
James S.A. Corey|Leviathan Wakes|561            |2011-06-02T00:00:00.000Z
Dan Simmons     |Hyperion       |482            |1989-05-26T00:00:00.000           

4.4 sql轉DSL

POST /_xpack/sql/translate
{
    "query": "SELECT * FROM library ORDER BY page_count DESC",
    "fetch_size": 10
}           

傳回結果

{
  "size": 10,
  "_source": {
    "includes": [
      "author",
      "name"
    ],
    "excludes": []
  },
  "docvalue_fields": [
    "page_count",
    "release_date"
  ],
  "sort": [
    {
      "page_count": {
        "order": "desc"
      }
    }
  ]
}           

4.5 開發中使用JDBC連接配接Elasticsearch

String address = "jdbc:es://" + elasticsearchAddress;    
Properties connectionProperties = connectionProperties(); 
Connection connection = DriverManager.getConnection(address, connectionProperties);           

5、小結

小試牛刀後,發現的确非常友善,效率極高!

後續肯定會有N多博文推出,但萬變不離其宗,遇到問題,請務必優先檢視官網。

作者:銘毅天下

來源:CSDN

原文:

https://blog.csdn.net/laoyang360/article/details/80700000

版權聲明:本文為部落客原創文章,轉載請附上博文連結!