OpenSearch 与 Elasticsearch主要差异

1. 什么是 Elasticsearch?

Elasticsearch 是一个基于 Apache Lucene 构建的开源、RESTful、分布式搜索和分析引擎。它旨在处理大量数据,使其成为日志和事件数据管理的流行选择。 Elasticsearch 还以其实时功能而闻名,允许用户在数据模式发生时探索、分析和可视化。

除了日志和事件数据管理之外,Elasticsearch 还常用于全文搜索和运营智能用例。它的目标是可扩展、有弹性且快速,允许您近乎实时地索引和搜索数据。 Elasticsearch 还支持复杂查询以执行详细分析,并支持多租户以轻松管理多个索引。

Elasticsearch 的关键特征之一是其分布式特性。这意味着索引可以分为分片,每个分片都是一个独立的索引。此功能允许数据分布在服务器集群上,从而有助于处理大型数据集。

2. 什么是 OpenSearch?

OpenSearch 是 AWS 于 2021 年创建的开源项目,作为 Elasticsearch 7.10.2 的分支。这意味着它具有与 Elasticsearch 相同的基本功能,但从那时起,该项目在几个方面与 Elasticsearch 有所不同。

除了 OpenSearch 之外,Amazon 还提供了一项名为 OpenSearch 的完全托管的搜索和分析服务。它包括 OpenSearch 和 OpenSearch Dashboards(源自 Kibana 7.10 的社区驱动的开源数据可视化和用户界面套件)。用户只需为在 AWS 上运行的资源付费,无需为搜索和可视化软件支付额外费用。

作为一项完全托管的服务,OpenSearch[1] 旨在易于设置和管理。这使得公司能够大规模部署、保护和运行 OpenSearch。用户只需在 AWS 管理控制台中单击几下即可设置和配置其 OpenSearch 集群,AWS 会处理修补、升级和备份等任务。

OpenSearch 还免费提供安全功能,包括加密、用户身份验证和访问控制以及审核日志记录。它提供自动快照、高可用性和轻松扩展,使其能够处理大量数据。

3. OpenSearch 背后的戏剧性事件:Elastic 与 AWS 之间的紧张关系

继 2010 年根据开源 Apache 2.0 许可证发布后,Elasticsearch 作为全球最受欢迎的企业搜索引擎而声名鹊起,成为全球首选的企业搜索引擎。 Elasticsearch 经常与 Logstash 和 Kibana(称为 ELK 堆栈[2]的组合)一起部署,以支持日志分析用例,包括应用程序可观察性[3]、安全日志分析[4]和理解用户行为[5]。

认识到其潜力,2015 年,亚马逊利用该开源许可证推出了 Amazon Elasticsearch Service (Amazon ES)[6],这是一项基于云的托管服务,允许 AWS 客户启动可扩展的 Elasticsearch 集群,将数据源连接到集群端点,并加载、处理数据 、分析或可视化云中的数据。

但 Elasticsearch 背后的公司 Elastic NV 和亚马逊之间的紧张关系加剧, Elastic NV 的开发人员最终反对亚马逊使用其产品和商标,指控亚马逊侵犯商标权和误导性营销,并于 2019 年对这家科技巨头提起诉讼,指控其涉嫌商标侵权和虚假广告。 Elastic 和 Amazon 将在 2021 年解决诉讼,并取得两项重要进展:

2021 年 1 月,Elastic NV 宣布,从版本 7.11 开始,Elasticsearch 将根据服务器端公共许可证 (SSPL) 和 Elastic License 获得许可[7]。这一更改阻止 Amazon 和其他公司在不直接与 Elastic 合作的情况下提供 Elasticsearch 作为服务。

2021 年 4 月,亚马逊宣布将分叉 Elasticsearch 最后一个开源版本(7.10.2),推出新的开源搜索引擎项目[8]。由于"Elasticsearch"这个名称不能再使用,新项目将被称为 OpenSearch。亚马逊还将以"Amazon OpenSearch Service"的名称提供 OpenSearch 作为云服务。

除了这两种搜索解决方案的历史[9]之外,我们将仔细研究 Opensearch 和 Elasticsearch 在过去 2.5 年中的差异,以及哪一种最适合您的 AWS 日志分析[10]或企业搜索应用程序。

4. OpenSearch 与 Elasticsearch:有什么相同之处?

OpenSearch 是从 Elasticsearch 的一个相对高级的分支开发的,因此这两个应用程序中的搜索、分析和仪表板的所有基本功能都是相同的。

OpenSearch 和 Elasticsearch 都提供多租户架构和分析引擎,具有全文搜索和分布式搜索功能。因此,OpenSearch 和 Elasticsearch[11] 都可用于实现网站搜索、企业搜索和日志分析用例。

在下一节中,我们将在七个维度上探讨 OpenSearch 和 Elasticsearch 之间的主要区别:许可、社区、功能、安全性、性能、定价和支持文档。

5. OpenSearch 与 Elasticsearch:主要区别

当您比较 OpenSearch 和 Elasticsearch 时,许可、社区、功能、安全性、性能、定价和支持文档都是关键的区别。

5.1 许可

2021 年之前,Elasticsearch 在 Apache 2.0 许可证下可供公众使用。该许可证允许用户出于任何目的使用、分发或修改该软件,以及分发 Elasticsearch 的修改版本,而无需支付任何版税。

在与 Amazon 发生纠纷后,Elasticsearch 现在已获得 SSPL 和 Elastic 许可证的许可。此举在开源社区引发了争议,因为 SSPL 并未被开源促进会 (OSI) 认可为开源许可证。在此更改之后,Elasticsearch 不再被视为开源,因为许可现在要求任何向第三方提供 Elasticsearch 功能的人发布整个源代码以及第三方自行运行所需的所有 API。

OpenSearch 目前根据 Apache 2.0 许可证获得许可。

5.2 社区

OpenSearch 和 Elasticsearch 都拥有健康、活跃且专注的社区,因此这两个搜索引擎不太可能在功能提供方面远远落后或很快失去支持。

然而,查看 GitHub 上每个解决方案的代码库就会发现,与 OpenSearch 相比,Elasticsearch 代码库在过去一年中的提交数量更多。

image2
该图显示了过去 12 个月内 OpenSearch 代码库的新提交数量
image3
该图显示了过去 12 个月内 Elasticsearch 代码库的新提交数量

这并不是一个完全公平的比较,因为 Elasticsearch 代码库还包括 X-Pack Elasticsearch 插件[14]的代码,该插件在 Elasticsearch 之上提供警报、监控和机器学习功能(OpenSearch 的类似功能位于不同的代码库中) 。尽管如此,大量的提交表明与 OpenSearch 项目相比,Elasticsearch 的开发和改进速度更快。

5.3 功能

当 Amazon 最初分叉 Elasticsearch 7.10.2 来创建 OpenSearch 时,他们首先必须删除与 Apache 2.0 许可证不兼容的所有代码。这包括禁用所有遥测收集功能并删除整个 Elastic X-Pack 代码。

这些更改导致 OpenSearch 最早版本的功能严重丧失,但 Amazon 正在继续通过可以替代这些功能的外部插件/连接器提供新的 OpenSearch 功能[15]。因此,AWS 客户可以使用 OpenTelemetry Collector 插件来收集和格式化遥测数据,而不是 Elasticsearch 的原始遥测收集功能。还有一个 OpenSearch Observability[16] 插件,可用于分析来自分布式应用程序的遥测数据。

Elasticsearch 和 Kibana 通常仍然一起使用,而 Amazon 通过分叉 Kibana 开发了自己的可视化工具,称为 OpenSearch Dashboards。

5.3.1 数据摄取

Elasticsearch 和 OpenSearch 都提供强大的数据摄取功能,但它们处理此任务的方式不同。 Elasticsearch 支持各种数据类型和结构,并在索引之前使用摄取节点对文档进行预处理。它还支持批量数据摄取,使其成为大规模数据分析的不错选择。

OpenSearch 注重易用性以及与其他 AWS 服务的集成。它提供了一个用于数据摄取的托管管道,简化了将数据移入系统的过程。 OpenSearch 还与 AWS Kinesis、AWS Glue 和 AWS Lambda 等服务无缝集成,提供完整的数据处理管道。

5.3.2 客户端库

Elasticsearch 拥有多种编程语言的客户端库,例如 Java、Python、。NET、PHP、Perl、Ruby 和 JavaScript。这使得开发人员可以轻松地将 Elasticsearch 集成到他们的应用程序中,无论他们使用哪种编程语言。

OpenSearch 有自己的一组客户端库。截至撰写本文时,它提供了 Python、Java、JavaScript (Node.js)、Go、Ruby、PHP、。NET 和 Rust 的客户端。此外,OpenSearch 在技术上与 Elasticsearch 客户端兼容,因为它本质上与 Elasticsearch 是同一平台。然而,Elasticsearch 添加了许可证限制,阻止其客户端连接到 OpenSearch。

5.4 性能

Elasticsearch 和 OpenSearch 都旨在处理大量数据并提供快速、可靠的搜索结果。它们都使用相同的底层引擎(Lucene)并提供相似的功能,例如分片、复制和分布式架构以确保高性能。

如果您正在大规模执行搜索操作,您可能有兴趣了解哪些搜索引擎可以提供更快的查询。 Elastic 最近发布了一篇博客,涵盖了这个主题,标题为" Elasticsearch vs。 OpenSearch:揭开性能差距[17]"。

该博客引用了 TechTarget 企业战略小组的一项调查结果,该调查比较了 Elasticsearch 和 OpenSearch 在六个领域的性能:文本查询、排序、日期直方图、术语和范围。总体而言,我们发现 Elasticsearch 引擎比 OpenSearch 快 40-140%,同时消耗的计算资源更少。

5.5 定价

Elasticsearch 和 OpenSearch 的定价模型是另一个分歧点。 Elasticsearch 由 Elastic 管理,提供分层定价模型。它包括具有基本功能的免费层和可解锁更多高级功能的付费层。 OpenSearch 作为 AWS 管理的项目,可以免费使用所有级别的功能。但是,如果用户选择使用 AWS 服务来托管和管理其 OpenSearch 实例,则会产生费用。

Elasticsearch 和 OpenSearch 的自我管理版本可以免费下载,但用户需要使用自己的硬件和计算资源来安装、管理和操作它们。

使用这些搜索引擎的更常见方法是在云中 - 使用 Elastic Cloud(可在多个公共云提供商上使用)或使用 Amazon OpenSearch Service。标准订阅的 Elastic Cloud 起价为每月 95 美元以上,而 AWS 客户如果仍低于 AWS 免费套餐使用限制,则可以开始免费使用 OpenSearch Service。

OpenSearch 用户还可以访问完整的 OpenSearch 功能集,而某些 Elasticsearch 功能仅适用于黄金级、白金级或企业级订阅级别的用户。 Elasticsearch 和 Amazon OpenSearch Service 的实际按使用付费成本因用户而异,但这两个提供商都提供了一个可让您估算成本的工具。

5.6 支持和文档

Elasticsearch 拥有丰富的可用文档,涵盖从基本设置到高级使用场景的所有内容。它还拥有一个可以提供支持的大型活跃社区。 Elasticsearch 背后的公司 Elastic 也提供付费支持选项。

OpenSearch 是一个相对较新的项目,其文档仍在不断增长。也就是说,AWS 致力于维护 OpenSearch 的全面文档,并且现有的 Elasticsearch 文档在很大程度上仍然适用。 OpenSearch 还受益于广泛的 AWS 社区的支持。与 Elastic 一样,AWS 为 OpenSearch 提供付费支持选项。

5.7 安全

Elasticsearch 和 OpenSearch 配备了许多相同的安全功能。OpenSearch 和免费版本的 Elasticsearch 中包含密码保护和数据加密等基本安全功能。但 Elasticsearch 用户需要升级到高级订阅(黄金级、白金级或企业级)才能利用高级安全功能,包括基于角色的访问控制 (RBAC)、字段和文档级安全性以及审核日志记录。

Elasticsearch 最初仅在其付费版本中提供高级安全功能。然而,在许可变更之后,Elastic 宣布这些功能将免费提供。其中包括 SSL 加密、基于角色的访问控制和审核日志记录。

相比之下,只要您选择 OpenSearch,它就会将安全功能作为其核心产品的一部分。它提供类似于 Elasticsearch 的功能,例如加密、用户身份验证和细粒度访问控制。鉴于其由 AWS 管理,用户还可以受益于 AWS 云强大的安全性和合规性基础设施。

6. OpenSearch 和 ElasticSearch 如何选择?

在 Elasticsearch 和 OpenSearch 之间进行选择很大程度上取决于您的具体需求和情况。如果您更喜欢具有完善社区和广泛文档的成熟产品,Elasticsearch 可能是更好的选择。另一方面,如果您重视开源软件的原则并且更喜欢免费提供高级功能的工具,那么 OpenSearch 可能更适合。

考虑您的托管环境也很重要。如果您已经在使用 AWS 服务,OpenSearch 可能会提供更顺畅的集成和管理。相反,如果您使用其他云提供商或在本地托管搜索引擎,Elasticsearch 可能会提供更大的灵活性。

最后,值得考虑这两个项目的未来方向。 Elasticsearch 仍然是企业搜索领域的全球领导者,并在该领域拥有悠久的创新记录。亚马逊的 OpenSearch 的贡献者社区更加有限,而且企业赞助商的关注度也较低,因此在未来的创新方面可能会逐渐落后于 Elasticsearch。

参考链接:

https://www.chaossearch.io/blog/opensearch-vs-elasticsearch-comparison 作者:[David Bunting]{.underline}[18],2023 年 10 月 26 日

https://coralogix.com/guides/elasticsearch/elasticsearch-vs-opensearch-key-differences/

参考资料 [1]

OpenSearch: https://coralogix.com/blog/4-ways-ingest-data-aws-opensearch/

[2]

ELK 堆栈: https://www.chaossearch.io/blog/switching-from-the-elk-stack-elasticsearch-costs

[3]

应用程序可观察性: https://www.chaossearch.io/use-cases/observability

[4]

安全日志分析: https://www.chaossearch.io/use-cases/security-lake

[5]

理解用户行为: https://www.chaossearch.io/use-cases/user-insights

[6]

推出了 Amazon Elasticsearch Service (Amazon ES): https://aws.amazon.com/blogs/aws/new-amazon-elasticsearch-service/

[7]

Elasticsearch 将根据服务器端公共许可证 (SSPL) 和 Elastic License 获得许可: https://www.elastic.co/blog/licensing-change

[8]

推出新的开源搜索引擎项目: https://aws.amazon.com/blogs/opensource/introducing-opensearch/

[9]

这两种搜索解决方案的历史: https://kubeops.net/blog/elasticsearch-versus-opensearch

[10]

AWS 日志分析: https://www.chaossearch.io/blog/streaming-analytics-aws-logging-applications

[11]

OpenSearch 和 Elasticsearch: https://medium.com/@bhongaleprathamesh/elasticsearch-vs-opensearch-feature-comparison-and-considerations-cd9c990e1482

[12]

图片来源: https://github.com/opensearch-project/OpenSearch/graphs/commit-activity

[13]

图片来源: https://github.com/elastic/elasticsearch/graphs/commit-activity

[14]

X-Pack Elasticsearch 插件: https://www.elastic.co/downloads/x-pack

[15]

OpenSearch 功能: https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html

[16]

OpenSearch Observability: https://aws.amazon.com/opensearch-service/features/observability/

[17]

Elasticsearch vs。 OpenSearch:揭开性能差距: https://www.elastic.co/blog/elasticsearch-opensearch-performance-gap

[18]

[David Bunting]{.underline}: https://www.chaossearch.io/blog/opensearch-vs-elasticsearch-comparison#authorBlock


---------------------
作者:大数据杂货铺
来源:CSDN
原文:https://blog.csdn.net/wang_x_f911/article/details/138496232
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/29205.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GO RACE 测试在低版本GCC上报错误 exit status 0xc0000139

windows机器环境,go程序使用race定位时一运行就报错,写了个example如: 能看到加了race之后就不行了, 搜了一下,git上有个issue: runtime: Race detector causes exit status 0xc0000139 on Windows 11 wi…

酷开会员 | 酷开系统将艺术、回忆与浪漫融入生活

随着审美观念的改变以及技术的提升,消费者对家用电视的需求已不局限于单纯的功能性,外观设计带来的美感与视觉效果也愈发成为消费者关注的焦点。在画质和功能逐步完善的当下,电视中的壁纸模式,则能让其更好地融入家居环境&#xf…

基于WPF技术的换热站智能监控系统17--项目总结

1、项目颜值,你打几分? 基于WPF技术的换热站智能监控系统01--项目创建-CSDN博客 基于WPF技术的换热站智能监控系统02--标题栏实现-CSDN博客 基于WPF技术的换热站智能监控系统03--实现左侧加载动画_wpf控制系统-CSDN博客 基于WPF技术的换热站智能监…

船舶能源新纪元:智能管理引领绿色航运潮流

在蓝色的大海上,无数船只乘风破浪,为全球的贸易和文化交流贡献着力量。然而,随着环保意识的提升和可持续发展的要求,船舶的能源消耗和排放问题逐渐成为了人们关注的焦点。在这个关键时刻,船舶能源管理系统应运而生&…

台球灯控计费系统安装教程,佳易王桌球房计费系统的安装方法教程

台球灯控计费系统安装教程,佳易王桌球房计费系统的安装方法教程 一、软件操作教程 以下软件操作教程以,佳易王台球计时计费管理软件为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、点击计时开灯,相应的灯…

【深度学习驱动流体力学】OpenFOAM框架剖析

目录 1. applications 目录solvers:存放各种求解器。mesh:网格生成相关工具。 2. src 目录3. tutorials 目录其他主要目录和文件参考 OpenFOAM 源码文件目录的框架如下,OpenFOAM 是一个开源的计算流体力学 (CFD) 软件包,其源码文件结构设计精…

深入理解并打败C语言难关之一————指针(3)

前言: 昨天把指针最为基础的内容讲完了,并且详细说明了传值调用和传址调用的区别(这次我也是做到了每日一更,感觉有好多想写的但是没有写完),下面不多废话,下面进入本文想要说的内容 目录&#…

windows解决clion终端中文乱码

windows解决clion终端中文乱码 问题: 解决办法: 添加system("chcp 65001 > nul");

聚六亚甲基单胍(PHMB)为第三代胍类消毒剂 我国应用场景广泛

聚六亚甲基单胍(PHMB)为第三代胍类消毒剂 我国应用场景广泛 聚六亚甲基单胍全称为聚六亚甲基胍盐酸盐,简称PHMG,是一种高分子有机聚合物,易溶于水,水溶液无色无味,无毒,生物相容性良…

欢迎 Stable Diffusion 3 加入 Diffusers

作为 Stability AI 的 Stable Diffusion 家族最新的模型,Stable Diffusion 3(SD3) 现已登陆 Hugging Face Hub,并且可用在 🧨 Diffusers 中使用了。 Stable Diffusion 3https://stability.ai/news/stable-diffusion-3-research-paper 当前放出…

MapStruct对象转换

MapStruct是一个Java注解处理器,用于简化对象的转换 遇到的问题: java: Internal error in the mapping processor: java.lang.NullPointerException 解决方案:修改编辑器配置 -Djps.track.ap.dependenciesfalse

从0开始C++(一)

目录 c的基本介绍 C语言和C 的区别 面向过程和面向对象的区别 引用 引用使用的注意事项 赋值 终端输入 cin getline string字符串类 遍历方式 字符串和数字转换 函数 内联函数 函数重载overload 小练习: 参考代码 c的基本介绍 C是一种通用的高级编…

Unity基础(一)unity的下载与安装

目录 一:下载与安装 1.官网下载地址 2.推荐直接下载UnityHub 3.选择编辑器版本(推荐长期支持版) 4.在UnityHub安装选择相应的模块 二:创建项目 简介: Unity 是一款广泛应用的跨平台游戏开发引擎。 它具有以下显著特点: 强大的跨平台能力:能将开发的游…

JavaScript之内置对象

内置对象 JavaScript中的对象分为3种:自定义对象、内置对象、浏览器对象前面两种对象是javascript基础内容,属于ECMAScript;第三个浏览器对象属于我们javascript独有的,我们javascript API讲解 内置对象就是指javascript语言自带…

ssldump一键分析网络流量(KALI工具系列二十二)

目录 1、KALI LINUX 简介 2、ssldump工具简介 3、在KALI中使用ssldump 3.1 目标主机IP(win) 3.2 KALI的IP 4、操作示例 4.1 监听指定网卡 4.2 指定端口 4.3 特定主机 4.4 解码文件 4.5 显示对话摘要 4.6 显示加密数据(需要私钥&…

Spring boot 启动报:Do not use @ for indentation

一、使用maven插件动态切换配置时出现报错 二、配置文件及pom 2.1 配置文件结构 2.2 application.yml spring: # 根据环境读取配置文件(手动) # profiles: # active: dev# 根据环境读取配置文件(通过勾选maven插件)profiles…

神仙级AI大模型入门教程(非常详细),从零基础入门到精通,从看这篇开始!

一.初聊大模型 1.为什么要学习大模型? 在学习大模型之前,你不必担心自己缺乏相关知识或认为这太难。我坚信,只要你有学习的意愿并付出努力,你就能够掌握大模型,并能够用它们完成许多有意义的事情。在这个快速变化的时…

codeforces round 953 div2

A Alice and books 题目&#xff1a; 思路&#xff1a;编号最大的肯定会被读到&#xff0c;所以在编号最大的这一组书中不能存在除去最大编号的外书外页数最大的书&#xff0c;并且在另一堆中这本书的编号也应该是最大值 代码&#xff1a; #include <iostream>using…

郑州设计资质延续流程:人员社保的审核标准是什么?

郑州设计资质延续流程中&#xff0c;人员社保的审核标准如下&#xff1a; 一、社保缴纳期限 审核标准&#xff1a;人员&#xff08;技术负责人、注册人员等&#xff09;的社保考核期限恢复为3个月。需要提供相关人员至少连续3个月的社保缴纳记录。 二、社保缴纳主体 审核标准…

python 【包含数据预处理】基于词频生成词云图

基于词频生成词云图 背景目的 有一篇中文文章&#xff0c;或者一本小说。想要根据词频来生成词云图。 为什么中文需要分词 中文分词是理解和处理中文文本的关键步骤&#xff0c;它直接影响到后续的文本分析和信息提取的准确性和有效性。 无明显单词分隔&#xff1a;中文文本不…