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

打印 上一主题 下一主题

主题 633|帖子 633|积分 1899

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

  
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]

  
该图表现了过去 12 个月内 OpenSearch 代码库的新提交数目。

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宝塔山

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表