美文网首页
Elasticsearch SQL模块

Elasticsearch SQL模块

作者: 右丶羽 | 来源:发表于2018-12-11 23:39 被阅读0次

    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/bin目录下调用./elasticsearch-sql-cli 进入命令行

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

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

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

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

    相关文章

      网友评论

          本文标题:Elasticsearch SQL模块

          本文链接:https://www.haomeiwen.com/subject/vkpjhqtx.html