当前位置: 首页 > news >正文

【Elasticsearch系列廿一】ES7 SQL 新特性

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术,jvm,并发编程 redis,kafka,Spring,微服务等
    • 常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,typora 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 新空间代码工作室:提供各种软件服务,承接各种毕业设计,毕业论文等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

      • 1.概述
      • 2.快速入门
      • 3.启动方式
      • 4.sql 翻译
      • 5.与其他 DSL 结合

1.概述

Elasticsearch 7.x 版本在 SQL 支持方面进行了显著增强,使得用户能够更加方便地使用 SQL 语句来查询和操作 Elasticsearch 中的数据。以下是一些关键的新特性:

  1. 更丰富的 SQL 支持:Elasticsearch 7.x 版本扩展了对标准 SQL 查询语句的支持,包括对 JOIN 操作的支持(尽管有限制,仅支持特定类型的 JOIN)。此外,可能还增强了对窗口函数(Window Functions)或分组后的分析函数(Analytic Functions)的支持。

  2. 性能优化:SQL 查询引擎的性能得到了提升,查询延迟降低,大规模数据集下的查询效率提高。

  3. 改进的兼容性:改进了对不同 SQL 方言的理解和转换,使得从其他关系型数据库迁移到 Elasticsearch 更加平滑。

  4. API 更新:Elasticsearch 提供了一个 SQL REST API 端点,允许用户发送 SQL 查询并获取 JSON 格式的结果。Java API 也得到了更新,可以通过 RestHighLevelClient 或其他客户端类来执行 SQL 请求。

  5. 响应数据格式介绍:可以通过 URL 参数或 HTTP 头信息设置响应数据的格式,如 CSV、JSON、TSV、TXT、YAML、CBOR 和 SMILE 等。

  6. 与其他 DSL 结合:SQL 语句可以与其他查询语句结合使用,例如查询特定价格范围内的数据。

  7. Java 代码实现 SQL 功能:如果需要在代码中实现 SQL 功能,可能需要 Elasticsearch 的白金版许可。可以通过 JDBC 连接 Elasticsearch 并执行 SQL 语句。

  8. SQL 翻译:SQL 语句实际上是被转换成 Elasticsearch 的查询语句来执行的,可以使用 translate 端点来查看底层的查询语句。

  9. 跨集群搜索:引入了 ccs_minimize_roundtrips 模式,减少了网络开销。

  10. 新的集群协调实现:改进了集群协调子系统,提高了选主速度。

  11. 支持较小的堆内存:添加了新的熔断器,更好地追踪内存使用量,避免节点异常。

  12. 跨集群复制(CCR):支持跨机房、跨地区情况下的集群数据同步。

  13. Rank features:新增了 rank_featurerank_features 数据类型,用于对排序打分进行干预。

  14. Script score query:引入了 script_score 查询的别名 function_score2,提供了更好的扩展性。

2.快速入门

POST /_sql?format=txt
{"query": "SELECT * FROM tvs"
}

3.启动方式

  • http 请求
  • 客户端:elasticsearch-sql-cli.bat
  • 代码

4.sql 翻译

POST /_sql/translate
{"query": "SELECT * FROM tvs "
}

返回:

{"size": 1000,"_source": false,"stored_fields": "_none_","docvalue_fields": [{"field": "brand"},{"field": "color"},{"field": "price"},{"field": "sold_date","format": "epoch_millis"}],"sort": [{"_doc": {"order": "asc"}}]
}

5.与其他 DSL 结合

POST /_sql?format=txt
{"query": "SELECT * FROM tvs","filter": {"range": {"price": {"gte" : 1200,"lte" : 2000}}}
}

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img


http://www.mrgr.cn/news/34195.html

相关文章:

  • 阿里Arthas-Java诊断工具,基本操作和命令使用
  • 类与对象(中)
  • MySQL学习笔记(持续更新中)
  • 如何降低H5商城系统的开发成本
  • Find My化妆镜|苹果Find My技术与化妆镜结合,智能防丢,全球定位
  • 企微社群管理:构建高效沟通与活跃氛围的策略与实践
  • 昇思MindSpore进阶教程-参数
  • MATLAB在无线传感器网络设计中的应用与实践
  • 从零开始之AI面试小程序
  • LeetCode 20.有效的括号
  • Leetcode 543. 124. 二叉树的直径 树形dp C++实现
  • 输出Hate-C语言
  • 【Ambari自定义组件集成】Bigtop320集成Ranger实战
  • GPT-4o能玩《黑神话》!精英怪胜率超人类,无强化学习纯大模型方案
  • ChatGPT与R语言融合技术在生态环境数据统计分析、绘图、模型中的实践与进阶应用
  • Debian安装mysql遇到的问题解决及yum源配置
  • 苹果和香蕉联合食用,益处最大,能控制血压水平,高血压死亡风险降低 40%!
  • C#知识|继承与多态
  • 【2024.09】关于 UMLS 在支持大型语言模型提出的诊断生成中的作用
  • spring 注解 - @NotNull - 确保字段或参数值不为 null