Elasticsearch 与 OpenSearch:6 个主要区别以及如何选择

什么是 Elasticsearch?

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

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

Elasticsearch 的主要特性之一是其分布式特性。这意味着索引可以划分为分片,每个分片都是一个独立的索引。此功能允许将数据分布在服务器群集中,从而简化对大型数据集的处理。

什么是 AWS OpenSearch?

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

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

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

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

这是关于 ELK Stack 的系列文章的一部分。

OpenSearch 背后的戏剧性:Elastic 和 AWS 之间的紧张关系

Elasticsearch 于 2010 年在 Apache 2.0 许可下发布,成为全球首选的企业搜索引擎。它通常与 Logstash 和 Kibana(形成 ELK 堆栈)一起使用,在日志分析应用程序(如监视应用程序、分析安全日志和跟踪用户行为)方面表现出色。认识到其潜力,Amazon 于 2015 年推出了 Amazon Elasticsearch Service (Amazon ES),这是一种托管云服务,允许 AWS 用户部署可扩展的 Elasticsearch 集群并管理云中的数据活动。

然而,Elasticsearch背后的公司Elastic N.V.和亚马逊之间的紧张关系加剧。Elastic N.V. 指控亚马逊侵犯商标权和误导性营销,导致 2019 年提起诉讼。这场争议在 2021 年达到了高潮:今年 1 月,Elastic N.V. 将 Elasticsearch 的许可权转移到服务器端公共许可证 (SSPL) 和 Elastic 许可证,并发布了 7.11 版本。此举旨在防止包括亚马逊在内的公司在没有与 Elastic 合作的情况下提供 Elasticsearch 即服务。

作为回应,亚马逊于 2021 年 4 月分叉了 Elasticsearch 的最后一个开源版本 (7.10.2),启动了一个新的开源项目 OpenSearch。除此之外,亚马逊还推出了Amazon OpenSearch Service,从而绕过了许可变更,并继续为其云客户提供搜索引擎解决方案。

Elasticsearch 与 OpenSearch:主要区别

虽然 Elasticsearch 和 AWS OpenSearch 具有共同的沿袭和核心功能,但它们有一些关键差异,使它们与众不同。

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

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

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

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

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

    但是,OpenSearch 具有作为完全托管服务的一部分的额外优势。这意味着它可以利用 AWS 的全球基础设施来提高性能、可扩展性和可靠性。AWS 提供性能监控工具、自动备份和灾难恢复功能作为 OpenSearch 服务的一部分,有助于确保高性能和数据安全。

  4. 许可和定价
    在许可方面,Elasticsearch 和 OpenSearch 近年来都发生了重大变化。2021 年,Elasticsearch 将其许可证从 Apache 2.0 更改为服务器端公共许可证 (SSPL)。此举在开源社区引发了争议,因为 SSPL 未被开源促进会 (OSI) 认可为开源许可证。作为回应,AWS分叉了Elasticsearch的最后一个Apache许可版本,以创建OpenSearch,该版本仍受Apache 2.0许可。

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

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

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

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

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

Elasticsearch 与 OpenSearch:如何选择?

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

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

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

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

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

相关文章

云动态摘要 2024-05-12

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新优惠与活动 [免费试用]即刻畅享自研SaaS产品 腾讯云 2024-04-25 涵盖办公协同、营销拓客、上云安全保障、数据分析处理等多场景 云服务器ECS试用产品续用 阿里云 2024-04-14 云服务器ECS试用产品续用…

【解决】Android Studio Toast点击不显示

问题描述 开发Android程序过程中,突然发现在Android studio的模拟机上,运行测试程序,Toast弹框不能使用了,但是解决方法非常粗暴和直接:重新加载一个新的虚拟机或清空当前虚拟机的数据,然后再重启。 明显&a…

mysql临时表

临时表 MySQL 什么时候会使用内部临时表? 1、如果语句执行过程可以一边读数据,一边直接得到结果,是不需要额外内存的,否则就需要额外的内存,来保存中间结果; 2、join_buffer 是无序数组,sort_b…

维修西门子PC677B工控机 IPC677D IPC677C IPC577C TP1500 TP1200

SIMATIC Panel PC 677B 主要亮点是: 得益于最新的英特尔技术,高系统性能可满足要求苛刻的可视化、计算和控制任务 英特尔 移动处理器:Core 2 ​​Duo(双核)或 Celeron M DDR2 667 内存高达 4 GB RAM PCI Express (PCI…

中国电子学会(CEIT)2022年12月真题C语言软件编程等级考试三级(含详细解析答案)

中国电子学会(CEIT)考评中心历届真题(含解析答案) C语言软件编程等级考试一级 2022年12月 编程题五道 总分:100分一、鸡兔同笼(20分) 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至…

重生奇迹mu战士攻略有哪些

1、生命之光:PK前起手式,增加血上限。 2、雷霆裂闪:眩晕住对手,战士PK战士第一技能,雷霆裂闪是否使用好关系到胜负。 3、霹雳回旋斩:雷霆裂闪后可以选择用霹雳回旋斩跑出一定范围(因为对手下一招没出意外…

Vue的diff算法

Vue.js 的 diff 算法是其性能优化的关键部分,它用于比较新旧虚拟 DOM 树并计算出最小的变更集,以便将这些变更应用到真实的 DOM 上。这种比较和计算的过程被称为“diff”或“差异化”。 以下是 Vue.js diff 算法的一些核心特性和概念: 基于…

指针的奥秘(四):回调函数+qsort使用+qsort模拟实现冒泡排序

指针 一.回调函数是什么?二.qsort函数使用1.qsort介绍2.qsort排序整型数据3.qsort排序结构体数据1.通过结构体中的整形成员排序2.通过结构体中的字符串成员排序 三.qsort模拟实现冒泡排序 一.回调函数是什么? 回调函数就是一个通过函数指针调用的函数。 …

You Only Cache Once:YOCO 基于Decoder-Decoder 的一个新的大语言模型架构

这是微软再5月刚刚发布的一篇论文提出了一种解码器-解码器架构YOCO,因为只缓存一次KV对,所以可以大量的节省内存。 以前的模型都是通过缓存先前计算的键/值向量,可以在当前生成步骤中重用它们。键值(KV)缓存避免了对每个词元再次编码的过程&…

C/C++常用的编译器分类

1.GCC家族 GNU GCC、GNU C、Mingw、Dev-C(Mingw)、Cygwin、DJGPP gcc 原名GNU C Collection,后因支持多种编程语言,改名为GNU Compiler Collection,是大多数类Unix(如Linux)的标准编译器,且适用于Windows(借助其他移植项目实现&…

Zookeeper笔记,MIT6.824

ZooKeeper旨在提供一个简单和高性能的内核,使得客户端可以构建更复杂的协调原语。 它将组消息传递、共享寄存器和分布式锁等服务整合到一个重新分配的、集中的服务中。 由ZooKeeper暴露出来的接口在共享寄存器方面具有无等待的特性,使用类似于分布式文件…

.NET应用程序中实现安全性的最佳实践

在.NET应用程序中实现安全性是一个复杂但至关重要的任务。 以下是一些关于身份验证、授权、加密和数据保护的最佳实践: 一、身份验证 使用强密码策略:确保用户创建复杂的密码,并定期更改。多因素身份验证:除了用户名和密码外&a…

[力扣题解]1005. K 次取反后最大化的数组和

题目:1005. K 次取反后最大化的数组和 思路 贪心法; 用绝对值大小排序,自己写一个比较函数, static bool compare(int a, int b) {return abs(a) > abs(b); }注意这样写出来是降序排列; 2次贪心: &a…

全学科知网普刊征稿中!即日提交,月内即可见刊!

在当前的学术环境下,论文发表的压力日益增大。当您需要评职称、申请学位、结项课题或完成其他有期限的学术要求时,快速发表普刊能够确保您及时满足这些需求,提升您的职业竞争力,为您的职业发展需求打下坚实基础。 我处普刊现积极…

我的全新官网

科技语者-探索未来的语言和沟通 (chgskj.cn) 另外我还开放了一个网站科技语者-介绍页 (null.fit)

无锡哲讯在SAP实施方面的有哪些优势?

无锡哲讯在SAP实施领域展现出的专业性、技术实力和客户服务等方面的优势,使其成为众多企业在SAP相关项目中的优选合作伙伴。下面就从行业经验、解决方案、技术实力、服务范围和客户口碑几大方面介绍无锡哲讯在SAP实施领域的优势: 丰富的行业经验&#xf…

iOS 音量键拍照(延时拍照)

写在前面 下面有两种方法可以实现,一种简单,一种复杂,简单的方法曾经遇到过无法实现的问题,目前不确定为什么。 这是复杂实现的demo,使用很简单,就不做文字解释了 一. 思路 首先需要监听音量键的点击&a…

Java反射(含静态代理模式、动态代理模式、类加载器以及JavaBean相关内容)

目录 1、什么是反射 2、Class类 3、通过Class类取得类信息/调用属性或方法 4、静态代理和动态代理 5.类加载器原理分析 6、JavaBean 1、什么是反射 Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得…

速盾:高防服务器和高防cdn的区别

高防服务器和高防CDN是两种常用的网络安全解决方案,用于保护网站免受恶意攻击和DDoS攻击的影响。虽然它们都有类似的目标,但在保护机制、性能表现和适用场景等方面有一些区别。 首先,高防服务器是一种物理硬件设备,通常是一台具备…

java基础之面向对象的思想

一、面向对象和面向过程的编程思想对比 面向过程:是一种以过程为中心的编程思想,实现功能的每一步,都是自己实现的(自己干活)。 面向对象:是一种以对象为中心的编程思想,通过指挥对象实现具体的…