ES 6.3 SQL 使用方法

ES 6.3 支持了 SQL 功能,但是这个是试验性的,未来可能面临被取消。
This functionality is experimental and may be changed or removed completely in a future release.

通过 restful 使用 SQL

放入测试数据
PUT /library/book2/_bulk?refresh
{"index":{"_id": "Leviathan Wakes"}}
{"name": "Leviathan Wakes", "author": "James S.A. Corey", "release_date": "2011-06-02", "page_count": 561}
{"index":{"_id": "Hyperion"}}
{"name": "Hyperion", "author": "Dan Simmons", "release_date": "1989-05-26", "page_count": 482}
{"index":{"_id": "Dune"}}
{"name": "Dune", "author": "Frank Herbert", "release_date": "1965-06-01", "page_count": 604}
简单Select ,返回文本格式
POST /_xpack/sql?format=txt
{
    "query": "SELECT * FROM library"
}

response

     author     |     name      |  page_count   |      release_date      
----------------+---------------+---------------+------------------------
Dan Simmons     |Hyperion       |482            |1989-05-26T00:00:00.000Z
James S.A. Corey|Leviathan Wakes|561            |2011-06-02T00:00:00.000Z
Frank Herbert   |Dune           |604            |1965-06-01T00:00:00.000Z
简单Select ,返回json格式
POST /_xpack/sql?format=json
{
    "query": "SELECT * FROM library"
}

response

{
  "columns": [
    {
      "name": "author",
      "type": "text"
    },
    {
      "name": "name",
      "type": "text"
    },
    {
      "name": "page_count",
      "type": "long"
    },
    {
      "name": "release_date",
      "type": "date"
    }
  ],
  "rows": [
    [
      "Dan Simmons",
      "Hyperion",
      482,
      "1989-05-26T00:00:00.000Z"
    ],
    [
      "James S.A. Corey",
      "Leviathan Wakes",
      561,
      "2011-06-02T00:00:00.000Z"
    ],
    [
      "Frank Herbert",
      "Dune",
      604,
      "1965-06-01T00:00:00.000Z"
    ]
  ]
}
SQL 排序
POST /_xpack/sql?format=txt
{
    "query": "SELECT * FROM library ORDER BY page_count DESC LIMIT 2"
}

response

     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

SQL CLI 命令行方式

启动运行

./bin/elasticsearch-sql-cli

输入查询语句

sql> SELECT * FROM library;

返回

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

相关sql函数使用详见
https://www.elastic.co/guide/en/elasticsearch/reference/6.3/xpack-sql.html

总结

SQL 用作ES查询,功能一般,相比 restful 接口直接查询ES,没有什么特别的优势。

restful 接口本身已经很简洁优雅了,使用SQL还多一次语义解析。SQL功能有点鸡肋,后期ES有可能会取消。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值