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

news2024/11/28 10:45:32

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 多平台发布

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

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

相关文章

顺序表的实现(迈入数据结构的大门)(2)

目录 顺序表的头插(SLPushFront) 此时:我们有两个思路(数组移位) 顺序表的头删(学会思维的变换)(SLPopFront) 顺序表的尾插(SLPushBack) 有尾插就有尾删 既然头与尾部的插入与删除都有,那必然少不了指定位置的插入删除 查找…

Python嵌套绘图并为条形图添加自定义标注

论文绘图时经常需要多图嵌套,正好最近绘图用到了,记录一下使用Python实现多图嵌套的过程。 首先,实现 Seaborn 分别绘制折线图和柱状图。 绘制折线图import seaborn as snsimport matplotlib.pyplot as pltimport warningswarnings.filterw…

【日常开发之插件篇】IDEA plugins 神器助我!!

文章目录 Tabnine 代码自动补全图例 Rainbow Brackets图例 Translation 翻译配置 LombokAlibaba Java Coding Guidelines 阿里巴巴的编码规约检查插件 今早因为老代码的一些bug让我突然觉得Idea的一些插件特别好用,我准备将我平时所用到的一些插件做个推荐以及记录。…

全国智能网联汽车行业产教融合共同体成立, 经纬恒润当选常务理事单位

近日,全国智能网联汽车行业产教融合共同体(以下简称“共同体”)全体成员大会在湖南株洲隆重召开。湖南省教育厅职成处副处长殷劭,国家智能网联汽车创新中心常务副主任、国汽(北京)智能网联汽车研究院有限公…

可以录屏的软件推荐3款,让你的录制更高效!

在信息时代,数字化学习、远程办公等场景越来越普及,录屏软件已经成为了人们生活中不可或缺的一部分。一款好的录屏软件可以帮助用户轻松录制屏幕内容,以便随时回顾或与他人分享。本文将详细介绍三款可以录屏的软件,帮助读者了解它…

百度百科怎么创建自己

百度百科是一个向所有互联网用户开放的平台,人人都可以创建词条。以下是创建自己百度百科的步骤和注意事项。 创建步骤 注册百度账号:首先,你需要注册一个百度账号。如果已经有百度账号,可以直接登录。 选择百科类型:…

FPGA+海思ARM方案,可同时接收HDMI/VGA 两种信号,远程控制

FPGA海思ARM方案,可同时接收HDMI/VGA 两种信号,通过配置输出任一图像或者拼接后的图像 客户应用:无线远程控制 主要特性: 1.支持2K以下任意分辨率格式 2.支持H264压缩图像 3.支持WIFI/4G无线传输 4.支持自适应输入图像分辨率 …

4. 分布式链路追踪客户端工具包Starter设计

前言 本文将从零搭建分布式链路追踪客户端工具包的Starter,并将在后续文章中逐步丰富支持的场景。这里首先将搭建一个最基础的Starter,能提供的功能和1. 看完这篇文章我奶奶都懂Opentracing了一文中的示例demo类似。 相关版本依赖如下。 opentracing-…

三、四线城市也能开店做真人手办定制?会不会亏?

时下,真人手办定制项目加盟热,消费端需求伴随网络效应指数心增加,作为真人手办定制底层技术供应商,博雅仔在与一些创业中的伙伴的沟通过程中了解到,位于一、二线城市的伙伴朋友很有信心,他们坦言&#xff0…

教你免费通配符/泛域名SSL证书怎么申请

申请免费的通配符SSL证书可以让您的主域名及其所有二级子域名都受到安全套接层(SSL)的加密保护,提高网站的整体安全性和用户信任度。以下是一个基于通用流程的简明教程,以JoySSL为例,因为他提供全类别的免费SSL证书。 1、创建证书服务商账号…

STM32自制雾化器

1.1 介绍: 108KHZ雾化器,由驱动模块和雾化器组成,主要作用是把水雾化加湿;它的使用方法有两种;方式1.电源接口供电DC3-4.5V,按下按键,开启雾化器,再按住关;方式2.单片机控制低电平2…

Linux实验 系统管理(二)

实验目的: 了解RPM软件包;掌握使用rpm命令查询、安装、更新、卸载、验证软件包的方法;掌握使用yum命令查询、安装、更新、卸载软件包的方法;了解TAR软件包;掌握使用tar命令创建(并压缩)、查询、…

SSM校园疫情防控系统JAVA计算机毕业设计项目【附源码】

SSM校园疫情防控系统JAVA计算机毕业设计项目 🍅 作者主页 网顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制系统 &#x1…

python+cv2+gstreamer 推流<500ms低延迟的处理策略

1.一份可用的推流配置 self.out cv2.VideoWriter(appsrc is-liveTrue stream-type0 emit-signalsFalse max-latency1 \ ! videoconvert ! video/x-raw, formatI420 \ ! x264enc speed-presetultrafast bitrate1200 tune"zerolatency" key-int-m…

吉林事业编报名照要求<50kb怎么压缩

吉林事业编报名照要求<50kb怎么压缩

美港通正规股票炒股市场超100亿元!北上资金爆买A股!

查查配今日早盘,A股震荡上扬,上证指数再创年内新高,创业板指、科创50、沪深300等指数均涨超1%。 盘面上,新能源产业全线走强,锂电池、光伏、高压快充、储能等板块涨幅居前,ST、公共交通、通信设备、酿酒等板块小幅调整。 美港通证券以其专业的服务和较低的管理费用在市场中受…

2024年想要开一家抖音小店,需要多少钱?一篇详解!

大家好,我是电商糖果 随着抖音卖货的持续火爆,抖音小店也成了电商行业讨论度最大的项目之一。 不少朋友都想知道,如果今年开抖音小店大概需要多少钱。 糖果做小店的时间也比较长,也经营了多家小店。 对于开一家抖音小店需要多…

【深度学习】【Lora训练0】StabelDiffusion,Lora训练,kohya_ss训练

文章目录 环境数据自动标注kohya_ss BLIP2kohya_ss WD14 后续 资源: (1)训练ui kohya_ss: https://github.com/bmaltais/kohya_ss (2)kohya_ss 的docker 其他docker https://github.com/ashleykleynhans…

书生第三课作业

视频:https://www.bilibili.com/video/BV1QA4m1F7t4/ 教程:https://github.com/InternLM/Tutorial/blob/camp2/huixiangdou/readme.md 作业:https://github.com/InternLM/Tutorial/blob/camp2/huixiangdou/homework.md 项目地址:h…

基于Opencv的车牌识别系统(毕业设计可用)

系统架构 图像采集:首先,通过摄像头等设备捕捉车辆图像。图像质量直接影响后续处理的准确性,因此高质量的图像采集是基础。 预处理:对获取的原始图像进行预处理,包括灰度化、降噪、对比度增强和边缘检测等。这些操作旨…