Elasticsearch SQL模块

Elasticsearch SQL

Elasticsearch SQL是由X-Pack组件提供的它允许针对Elasticsearch实时执行类似SQL的查询

可以在JDBC、REST接口、命令行或者其他客户端使用SQL语法进行查询以及聚合

我们可以将Elasticsearch SQL看作是一个转换器,它既理解SQL也理解Elasticsearch,并且通过利用Elasticsearch功能,使实时读取和处理数据变得容易。

Elasticsearch SQL的好处:

  • 原生整合
  • 无需外部组件
  • 轻量级和高效

体验

    1. kibana
      依次在kibana上执行下面两条语句
PUT /library/book/_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}
POST /_xpack/sql?format=txt
{
    "query": "SELECT * FROM library WHERE release_date < '2000-01-01'"
}
查询结果
  • 2.命令行
    从elasticsearch/bin目录下 可以看到有sql-cli工具
    Elasticsearch SQL模块_第1张图片

elasticsearch/bin目录下调用./elasticsearch-sql-cli 进入命令行

默认情况下elasticsearch-sql-cli会尝试连接localhost:9200, 如果你修改了ES的端口,需要指定新的ES访问地址,比如 你的ES端口设置成 8888, 那么需要输入下列命令来打开
./elasticsearch-sql-cli http://localhost:8888

进入 es-sql 命令行以后,类似的,用SQL语句查询

Elasticsearch SQL模块_第2张图片
  • ES并没有使用新的数据结构以支持SQL,只是将SQL语句映射到原有的结构中进行查询,因为依赖于ES的数据结构所衍生的各种概念 都有跟 column, row, database, table, datatype 等数据库概念一一对应的
  • ES的SQL模块尽可能地满足principle of least surprise , 即通过ES-SQL查询的结果会尽可能地符合用户对该SQL的理解所产生的预期结果
  • SQL模块需要ES6.3+版本

更多资料可以查看官方文档

你可能感兴趣的:(Elasticsearch SQL模块)