wordpress vr网站,wordpress备份 ftp,电脑工具wordpress,安康市城乡建设规划局网站作者#xff1a;李捷 “学会选择很难。学会正确选择更难。而在一个充满无限可能的世界里学会正确选择则更难#xff0c;也许是太难了。” 巴里-施瓦茨#xff08;Barry Schwartz#xff09;在《选择的悖论--多就是少》#xff08;The Paradox of Choice -More is Less李捷 “学会选择很难。学会正确选择更难。而在一个充满无限可能的世界里学会正确选择则更难也许是太难了。” 巴里-施瓦茨Barry Schwartz在《选择的悖论--多就是少》The Paradox of Choice -More is Less一书中的一段话概括了为什么灵活性和可定制性过高会让用户不知所措。现代生活中的大量选择可能会导致瘫痪和不满而不是我们所期望的自由和幸福。多年来我们在 _search API 中添加了更多的功能和特性并提供了一个非常灵活和高度可定制的数据搜索平台。但在某些时候这也是 Elasticsearch 不再像以前那样简单尤其是对于那些刚刚起步的人来说 随着 Elasticsearch 8.11 版本的即将推出我们非常高兴地宣布我们将迎来一个全新的查询语言 ES|QL (Elasticsearch Query Language 的简称)。ES|QL 是一种更加一致、简洁、实用、高效的语言旨在解决用户在使用 Elasticsearch 时面临的复杂性问题。这是一个里程碑式的发布我们深知这将改变数据分析的方式因此我们致力于提供最好的体验。新的 ES|QL 查询语言和引擎 (_query API) 将会替代原有的语言和聚合引擎 (_search API)成为大多数场景下的默认选择并且将会有大幅的性能提升。
因此在本博文以及接下来的系列文章中我们将会带领大家提前预览和体验 ES|QL这个 Elastic 在数年前就开始秘密开发的杀手级功能。这是一个重要的更新我们也将会持续提供有关 ES|QL 的相关信息以确保您可以尽快掌握这个新的功能。 Why ES|QL
Elasticsearch 是一个分布式、非关系型、半结构化、带有时间维度的强大数据平台支持全文检索、聚合分析、机器学习等功能。在 Elasticsearch 的历史上曾经诞生过多种语言如 DSL、KQL、EQL、Lucene、SQL 等这些语言为 Elasticsearch 的用户在不同的场景下提供了多样的查询能力。 语言 全称 说明 DSL Elasticsearch 特定领域语言 Elasticsearch 最基础和最强大的查询语言基于JSON格式 KQL Kibana 查询语言 用于快速和交互式地进行数据探索和可视化的查询语言基于文本格式 EQL 事件查询语言 专门用于事件检测和威胁狩猎的查询语言基于文本格式 Lucene Elasticsearch 内部 Lucene 搜索引擎的原生语言 用于直接操作 Lucene 索引和文档的底层语言基于文本格式 SQL 标准结构化查询语言的本地子集 广泛使用的关系型数据库查询语言基于文本格式 Painless Elasticsearch 脚本语言 用于对数据进行自定义处理和计算的脚本语言基于Java语法 Canvas 由其他语言补充的表达式语言 用于创建动态和交互式的数据展示和可视化的表达式语言基于文本格式 Timelion 用于时间序列的表达式语言 用于对时间序列数据进行分析和可视化的表达式语言基于文本格式 Vega 用于描述数据处理和可视化的语法 用于创建复杂和高级的数据展示和可视化的语法基于JSON格式 然而这一情况也给用户带来了困扰尤其是在需要决定在特定场合下应该使用哪种语言时。 复杂性是我们的敌人
虽然 Elasticsearch 在许多领域都表现出了非凡的能力但其碎片化的查询语言在检索和分析方面给用户带来了挑战。我们所说的碎片化是什么意思事实上根据客户的反馈在全观测性和安全分析场景中在调查问题时他们往往需要通过多达 6 个或更多的查询使用不同的查询语言并在 Kibana 中进行导航才能找到所需的内容。因此降低复杂性的关键在于能够在一个屏幕上以一种语言以组合的方式尽可能多地在单一语句中进行搜索、过滤、转换、聚合和可视化。
并且这种复杂性也表现在以下几个方面 专业知识 - Elasticsearch 提供了丰富的功能但需要在学习和配置方面进行投资。 经验 - 在调查过程中需要多个窗口来提供必要的信息。规划和获取数据需要时间和精力。 语言 - Elastic 是变通之王。但是实现查找、连接和内联统计等功能需要额外的工具。
因此ES|QL 应运而生。ES|QL 的设计初衷是为了解决实际的查询问题减轻用户学习负担更加一致、简洁、实用、高效地解决实际问题。ES|QL 不仅具有直观易用性还能在一个屏幕、一条语句中进行搜索、过滤、转换、汇总和可视化从而减少复杂性的体现。 What is ES|QL
ES|QL 是一种功能强大的声明式语言专为 Elasticsearch 设计注重可组合性、表现力和速度。同时它也是一种支持数据迭代探索的查询语言。
ES|QL 查询由一系列由管道分隔的命令组成。每个查询都以 Source 命令 开始。源命令会生成一个表通常包含来自 Elasticsearch 的数据。 源命令后面可以跟一个或多个 处理命令。处理命令通过添加、删除或更改行和列来更改输入表。 你可以链接处理命令并用管道符分隔|。每个处理命令都作用于前一个命令的输出表。 查询的结果是最终处理命令生成的表。
与之前提到的ES支持的各种搜索语言不同这九种语言中的每一种都具有以下功能之一过滤、处理、分组、重命名、排序、查找和列剪枝等功能。然而不能同时实现所有这些功能。相比之下ES|QL则能够在单一、统一的管道化命令语法和数据模型中执行所有这些功能。ES|QL相对于许多其他语言来说更易于使用功能也更强大。它独立于DSL并可利用Elasticsearch集群提供的分布式处理功能。 重要的是ES|QL 将会成为 Elasticsearch 的默认搜索语言。 Highlight of ES|QL 专用高性能查询引擎
ES|QL 不仅是一种语言还是 Elasticsearch 的一个完整的、专门的查询和计算引擎。ES|QL 查询不需要翻译或转换为 Query DSL所有 ES|QL 查询都会经过词法分析、语法分析、语义分析、验证和优化然后进行规划阶段以便对集群中的数据进行分布式执行。指定的目标节点负责本地执行并利用 ES|QL 基础架构通过执行节点本地的重新规划来利用本地数据特性。
ES|QL 带来了一种在设计时考虑到性能的新执行引擎 —— 以块block的形式执行而不是逐行执行以向量化运算和缓存局部性为目标并支持专业化和多线程。它是一个独立于现有 Elasticsearch 聚合框架的组件具有不同的性能特征。
简单总结ES|QL 的专用查询引擎具备以下特性 无需转译或翻译 查询会被解析和优化以进行分布式执行 以块block的形式运行而不是逐行执行 充分利用专业化和多线程技术 以向量化和高速缓存定位为目标
在我们当前的基准测试中ESQL 在许多情况下都优于 DSL即便不进行任何的优化措施也比已有的聚合框架更快 上图中展示了 ES|QL 与原有搜索引擎在不同场景中的性能对比 绿色折线search/aggs代表已有的 DSL 搜索和原有的聚合引擎的性能 蓝色折线esql/shard partitioning代表 ES|QL 在分片数据上单核运行 粉红色折线esql/doc partitioning代表 ES|QL 在分片数据上多核运行
通过这个基准测试我们看到通过充分使用多线程技术并且面向向量化和缓存的计算ES|QL 已经实现了对现有框架在性能层面的遥遥领先并且还将在未来充分受益于 Java 在向量化运算上的增强。 简约是终极的精致
我们深信简约是终极的精致在 ES|QL我们始终如一地践行这一理念。ES|QL 提供了管道式查询语言让您能够轻松地在单一的语句中完成搜索、汇总、计算、转换和可视化等所有操作。并且ES|QL 的查询语言与您可能已经熟悉的其他查询语言相似为您提供了无缝体验。而在我们的下一代搜索引擎的设计标准是需要能够实现更快的搜索速度同时为数据调查和探索提供了全面的语言。我们一直致力于为用户提供更好的体验并不断突破数据分析的极限。
其优势表现为 更快的查询速度利用 Elasticsearch 查询引擎可在多个阶段同时执行搜索和聚合从而提高速度和效率。 简化 Elasticsearch 和数据摄取Elasticsearch 的搜索功能非常丰富但需要投资学习。ES|QL 语法大大简化了对 Elasticsearch 及其功能的使用和理解。 全新的变革性搜索引擎ES|QL 查询引擎提供了lookup等新功能。只需一次查询即可轻松实现搜索、聚合、计算和数据转换。未来ES|QL 还将提供 inline stats 和 joins等其他功能。 快速洞察直接从 Kibana Discover 创建可视化、计算和聚合将调查工作流程浓缩在一个屏幕中从而更快地获得答案。 减少将数据引入 Elasticsearch 的摩擦无论数据来源、结构、复杂性或数量如何ES|QL 都能简化 Elasticsearch 中的数据摄取。 警报利用 ES|QL 写入可观测性和安全警报并将汇总值作为阈值。通过强调有意义的趋势而非孤立的事件、减少误报并提供更具操作性的通知提高检测准确性。
在解决方案上的增强
基于上面提到的 ES|QL 的诸多优点在 Elastic 搜索平台上各种解决方案都能够受益于 ES|QL 的强大功能。
搜索
使用 Elasticsearch 查询语言ES|QL提升搜索能力这是一种创新的管道查询语言和引擎旨在提供更好的开发体验和更高的性能。利用 ES|QL用户可以在一次查询中检索、汇总、计算和转换数据。它的主要功能包括在查询时定义字段、执行数据丰富查询和并发处理查询。使用 ES|QL 以多种方式了解和探索数据。从利用客户端直接集成 API/代码到直接从 Kibana 的搜索框中可视化结果ES|QL 简化了您的数据调查确保您轻松简单地从数据集中获得最大收益。有了 ES|QQL开发人员将体会到代码和查询复杂性的降低从而节省时间和成本。ES|QL 简化了查询结果在后续搜索中的使用减少了对复杂脚本和多次查询的依赖从而降低了计算成本。ES|QL 不仅仅是一个应用程序接口它还是一种简单而强大的方式可帮助您改变搜索方法。 全观测
使用 Elasticsearch 查询语言 (ES|QL)在 Elastic Observability 中对数据进行可视化和分析。您可以直接从搜索栏汇总、转换、计算和搜索您的指标、日志和跟踪数据只需一次查询即可优化定位性能瓶颈和系统问题缩短解决问题的时间消除浏览多个屏幕的麻烦。ES|QL 的高级查询引擎引入了多种功能如在查询时定义字段、查找数据以丰富数据以及并发查询处理以提高速度和效率。ES|QL 不仅能处理各种可观测性数据无论数据来源和结构如何还能帮助建立以汇总值作为阈值的可观测性警报。ES|QL 与 Elastic ML 和 AiOps 可通过强调有意义的趋势而非孤立事件、减少误报并提供更多可操作的通知帮助提高检测准确性。ES|QL 可直接从搜索栏提供查询、聚合和可视化功能从而确保系统性能和正常运行时间。 安全分析
利用 ES|QLElasticsearch 查询语言提升安全态势。无论数据来源和结构如何它都能加快 SecOps 工作流程并提高警报准确性。
快速灵活地搜索数据并即时定义新字段以推动调查和响应。汇总结果例如查看最常访问的服务器。执行计算例如入站流量和出站流量的比率。利用地理位置等上下文丰富结果。将结果可视化以了解有意义的模式和异常情况。所有这些都只需一次管道式查询。
为了更准确地发出警报并减少警报疲劳可在检测规则中加入汇总值。结果信号更多噪音更少。
ES|QL 对每个 SOC 开放对每个分析师友好
通过查找丰富数据通过在当前数据集中引入额外的上下文ES|QL 可提供更全面的视图这在安全调查中至关重要。例如客户可以通过一个搜索栏对 IP 地址执行查询以确定其地理位置、与已知恶意实体的关联或是否属于已知的云服务提供商。 总之ES|QL 作为 Elastic 搜索平台上的核心功能为各种解决方案带来了非凡的收益。它提供了高效准确的搜索、强大的数据分析和可视化能力以及高度可扩展性和灵活性。这些优势使得各种解决方案能够更好地满足用户需求并为企业带来更大的价值。
我在哪里可以得到它
ES|QL 代码可在 Elasticsearch主分支中获取并将作为 Elasticsearch 8.11 中的技术预览版发布。这是一项免费功能basic订阅级别可供所有人使用。每晚快照很快就会可供下载因此请随时查看代码并自行构建。
因为我们正处于 ES|QL 的早期阶段可能存在一些未解决的问题、障碍甚至是错误请提出问题。我们迫不及待地想与 Elasticsearch 社区分享 ES|QL
我们代表 ES|QL 团队期待您的反馈 原文ES|QLElasticsearch的新一代查询语言