最近釋出的 Elasticsearch 6.3 包含了大家期待已久的 SQL 特性,今天給大家介紹一下具體的使用方法。
首先看看接口的支援情況
目前支援的 SQL 隻能進行資料的查詢隻讀操作,不能進行資料的修改,是以我們的資料插入還是要走之前的正常索引接口。
目前 Elasticsearch 的支援 SQL 指令隻有以下幾個:
指令說明DESC table用來描述索引的字段屬性SHOW COLUMNS功能同上,隻是别名SHOW FUNCTIONS列出支援的函數清單,支援通配符?過濾SHOW TABLES傳回索引清單SELECT .. FROM table_name WHERE .. GROUP BY .. HAVING .. ORDER BY .. LIMIT ..用來執行查詢的指令
我們分别來看一下各自怎麼用,以及
二手手機号碼購買平台有什麼效果吧,自己也可以動手試一下,看看。
首先,我們建立一條資料:
POST twitter/doc/
{
"name":"medcl",
"twitter":"sql is awesome",
"date":"2021-07-27",
"id":123
}
RESTful下調用SQL
在 ES 裡面執行 SQL 語句,有三種方式,第一種是 RESTful 方式,第二種是 SQL-CLI 指令行工具,第三種是通過 JDBC 來連接配接 ES,執行的 SQL 語句其實都一樣,我們先以 RESTful 方式來說明用法。
RESTful 的文法如下:
POST /_xpack/sql?format=txt
"query": "SELECT * FROM twitter"
因為 SQL 特性是 xpack 的免費功能,是以是在 _xpack 這個路徑下面,我們隻需要把 SQL 語句傳給 query 字段就行了,注意最後面不要加上 ; 結尾,注意是不要!
我們執行上面的語句,查詢傳回的結果如下:
date | id | name | twitter
------------------------+---------------+---------------+---------------
2021-07-27T00:00:00.000Z|123 |medcl |sql is awesome
ES 俨然已經變成 SQL 資料庫了,我們再看看如何擷取所有的索引清單:
"query": "SHOW tables"
傳回如下:
name | type
---------------------------------+-------