支持SQL Elasticsearch6.3 新特性概览

1、Elasticsearch6.3 特性概览

1.1、支持Sql

像操作Mysql一样使用Elasticsearch,缩减DSL的学习成本,更多人爱上ES的特性。这样我们就可以减少 DSL 的学习成本,这个 SQL 模块是属于 X-Pack 的一部分。

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 版本抢先安装

iteblog$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.zip
iteblog$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.zip.sha512
iteblog$ shasum -a 512 -c elasticsearch-6.3.0.zip.sha512 
iteblog$ unzip elasticsearch-6.3.0.zip
iteblog$ cd elasticsearch-6.3.0/
iteblog$ ./bin/elasticsearch


4、Elasticsearch-sql抢先使用

  • Elasticsearch SQL是一个X-Pack组件,它允许针对Elasticsearch实时执行类似SQL的查询。
  • 无论是使用REST接口,命令行还是JDBC,任何客户端都可以使用SQL在Elasticsearch中本地搜索和聚合数据。
  • 人们可以将Elasticsearch SQL视为翻译工具,简化DSL的复杂使用,方便实时大规模地读取和处理数据。

4.1 sql检索上道

Sql检索体验如下:

4.2 sql-cli客户端检索

. /bin/elasticsearch-sql-cli www.iteblog.com:9200

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);
 
try (Statement statement = connection.createStatement();
        ResultSet results = statement.executeQuery(
            "SELECT name, page_count FROM library ORDER BY page_count DESC LIMIT 1")) {
    assertTrue(results.next());
    assertEquals("Don Quixote", results.getString(1));
    assertEquals(1072, results.getInt(2));
    SQLException e = expectThrows(SQLException.class, () -> results.getInt(1));
    assertTrue(e.getMessage(), e.getMessage().contains("unable to convert column 1 to an int"));
    assertFalse(results.next());
}

转载自 https://www.iteblog.com/archives/2378.html#i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值