OpenSearch 与 Elasticsearch:7 个主要差异及如何选择

OpenSearch 与 Elasticsearch:7 个主要差异及如何选择 image1

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
image2

图片来源[12]

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

image3
image3

图片来源[13]

该图显示了过去 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

本文由 mdnice 多平台发布

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

国产猫粮哪家强?福派斯三文鱼猫粮成新宠!

1️⃣ 品质保证:福派斯三文鱼猫粮是一款由国内知名宠物食品品牌生产的猫粮产品。该品牌有着严格的品质控制,确保每一粒猫粮都符合国家相关标准和规范,为猫咪提供安全、健康的食品。 2️⃣ 营养丰富:福派斯三文鱼猫粮采用新鲜三文鱼…

B/S模式的web通信(高并发服务器)

这里写目录标题 目标实现的目标 服务器代码(采用epoll实现服务器)整体框架main函数init_listen_fd函数(负责对lfd初始化的那一系列操作)epoll_run函数do_accept函数do_read函数内容补充:http中的getline函数 详解do_re…

ipv4手动设置网络的相关知识

基本知识 1.IP地址 IP地址 网络地址 主机地址(又称:主机号和网络号组成) 192.168.100.168(IP地址) 192.168.1.0 (网络地址) 0.0.0.168(主机地址) 2.家庭网络基础组成 3.子网掩码 作用:告诉计算机哪…

芝加哥量子曼哈顿项目:200 亿美元的量子计算园区

内容来源:量子前哨(ID:Qforepost) 文丨王珩 排版丨沛贤 深度好文:1000字丨5分钟阅读 摘要:芝加哥商业媒体称,伊利诺伊州政府正在大力推动耗资200亿美元、占地150英亩的芝加哥量子计算园区建设…

5月游戏市场迎来新的体验,网易两款游戏重磅出炉

易采游戏网5月9日消息,随着科技的飞速发展,手机游戏已经成为人们休闲娱乐的重要方式。在这个领域,网易作为国内领先的游戏开发商,一直致力于为玩家带来高品质的游戏体验。近日,网易携手国际大厂Square Enix&#xff0c…

ESP32引脚入门指南(四):从理论到实践(PWM)

引言 ESP32 作为物联网领域的明星微控制器,除了强大的Wi-Fi和蓝牙功能,还内置了丰富的外设资源,其中就包括高级的PWM(脉冲宽度调制)功能。本文将深入探讨ESP32的PWM引脚,解析其工作原理,并通过…

OV SSL比DV SSL更好吗

直接说结论,OV证书相较于DV证书而言,性能更加强大,加密等级以及加密方式也更优,从安全的角度上来说,OV证书会比DV证书拥有更多的优势。 不同于DV SSL证书申请只需要验证域名所有权,申请OV SSL证书除了会验…

Java的事件处理机制

Java事件处理机制 Java事件处理是采取“委派事件模型”。当事件发生时,产生事件的对象,会把此“信息”传递给“事件的监听者”处理,这里所说的“信息”实际上就是java.awt.event事件类库里某个类所创建的对象,把它称为“事件的对…

基于Springboot+Vue的Java项目-电影院购票系统开发实战(附演示视频+源码+LW)

大家好!我是程序员衣一帆,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

国内护眼台灯品牌哪些实用?推荐五款物美价廉的台灯品牌

近年来,我们注意到儿童近视的现象呈现出增多且趋于低龄化的趋势。这一变化,部分原因可以归咎于孩子们越来越多地使用电子产品,另一部分则与他们面临的学业压力增加有关。鉴于此,家长们在挑选儿童学习用品时变得格外谨慎&#xff0…

华为OD机试【城市聚集度】(java)(200分)

1、题目描述 一张地图上有N个城市,城市和城市之间有且只有一条道路相连,要么直接相连,要么通过其他城市中转相连(可中转一次或多次)。城市与城市之间的道路都不会成环。 当切断通往某城市i的所有道路后,地图上将分成多个连通的城…

百融云创回购计划加速落实 机构看好中长期吸引力

单日回购近400万港元B类股份,一站式服务的AI科技领航者百融云创(百融云-W,6608.HK)的回购计划正在加速落实。 此前,在百融云创2023年年度业绩公告的同时,该公司一并披露将在2024年不时在公开市场购回总金额不超过2.5亿…

【C++】C/C++中新const用法:const成员

欢迎来到CILMY23的博客 本篇主题为: C/C中新const用法:const成员 个人主页:CILMY23-CSDN博客 系列专栏:Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux 感谢观看,支持的可以给个一键三连,点赞…

阿里巴巴杭州全球总部正式启用,创新“减碳大脑”科技减碳 | 最新快讯

来源:封面新闻 封面新闻记者付文超 5 月 10 日,记者获悉,位于未来科技城的阿里巴巴杭州全球总部新园区正式启用,这是阿里巴巴目前最大的综合性办公园区。从空中俯瞰,园区正中央呈现阿里标志性的笑脸 logo,这…

【大学物理】双语笔记

7.5 angular momentu(角动量)_哔哩哔哩_bilibili 6.4Energy in Rotation Motion 有质量有速度的物体有动能,是不是很有道理 international system(from French systeme international,acronym,SI)of ineria kg*m^2 转…

uniapp——弹出键盘遮挡住输入框 textarea,处理方法

案例 在写输入框的时候会遇见 键盘遮挡住部分textarea框的一部分&#xff0c;使用cursor-spacing处理即可 修改后&#xff1a; 其他问题&#xff1a; 调起键盘输入时&#xff0c;不希望上方的内容被顶上去 代码 <view class"commentBox" :style"botto…

上亿用户面临风险!小米、WPS等知名安卓应用竟藏有“文件覆盖”漏洞

Google Play商店中的几款热门安卓应用程序容易受到与路径遍历相关的漏洞攻击&#xff0c;该漏洞的代号为“Dirty Stream”攻击&#xff0c;恶意应用程序可能会利用此漏洞覆盖易受攻击的应用程序主目录中的任意文件。 微软威胁情报团队的Dimitrios Valsamaras在周三发布的一份报…

实现C++ Vector

手写C Vector&#xff0c;参考QVector 类声明 template<typename T >class IteratorVector;template<typename T >class IteratorVectorConst;template<typename T >class Vector final :public ContainerBase{public:explicit Vector()noexcept;explicit V…

如何使用Reqable脚本功能提高API开发效率

Reqable支持使用Python脚本对API开发和调试进行辅助&#xff0c;今天写一篇实战教程&#xff0c;由浅入深地演示下如何使用Reqable的脚本功能。 首先&#xff0c;电脑上需要安装Python软件包。一般情况下&#xff0c;系统都会预安装Python软件包&#xff0c;如果系统没有安装或…

大语言模型LLM应用篇

大模型席卷全球&#xff0c;彷佛得模型者得天下。对于IT行业来说&#xff0c;以后可能没有各种软件了&#xff0c;只有各种各样的智体&#xff08;Agent&#xff09;调用各种各样的API。在这种大势下&#xff0c;笔者也阅读了很多大模型相关的资料&#xff0c;和很多新手一样&a…