什么是 OpenSearch?

OpenSearch 的定义

OpenSearch 是一款开源搜索与分析引擎,用于对来自多种数据源的数据进行索引、查询和分析。

OpenSearch 基于 Apache Lucene 构建,最初派生自另一款搜索与分析引擎 Elasticsearch,提供了可扩展的分布式架构,适用于实时搜索、可观测性日志分析和安全分析等使用场景。

OpenSearch 包含 OpenSearch Dashboards,用于数据可视化应用程序监控。它还拥有丰富的插件、应用程序编程接口 (API) 和客户端生态系统,支持现代数据环境中的分析工作流

由于 OpenSearch 是以社区驱动的路线图进行开发的开源项目,组织可以在没有许可限制或供应商锁定的情况下使用它。它与早期版本的 Elasticsearch 兼容,再加上可扩展的插件框架,使得团队能够将 OpenSearch 作为灵活的分析引擎,用于运维工作负载、机器学习流水线和搜索应用。

OpenSearch 的主要功能有哪些?

当今的组织会产生海量数据,这些数据只有在被索引、可搜索并实时可用时才有巨大价值。OpenSearch 通过专为规模、成本效益和互操作性设计的开源搜索架构来提供这一功能。

在实践中,OpenSearch 提供了:

开源治理

公司可以完全了解 OpenSearch 的代码库和路线图,从而能够根据内部需求定制平台。

兼容性与迁移灵活性

OpenSearch 保持与开源版 Elasticsearch 的 API 和查询语法兼容,使得组织无需大量重写即可采用或现代化其工作负载。

可扩展性与分布式

其集群架构通过节点、副本和分片支持高可用性,能够在大型数据集上实现低延迟搜索(更多详情请参见《OpenSearch 工作原理》)。

支持实时可观测性

OpenSearch 能够大规模采集日志、指标和追踪数据,为故障排查和分析所用的运维仪表板提供支持。

安全与分析集成

借助内置的身份验证和访问控制,团队可以在安全工作负载中应用搜索能力。

高成本效益的部署

作为开源软件,OpenSearch 可以部署在本地、各类云平台上,或通过托管服务提供。

OpenSearch 简史

OpenSearch 最初是社区对 Elasticsearch 和 Kibana(一个流行的可视化层)许可变更的回应。早期版本的 Elasticsearch 采用 Apache 2.0 许可证发布,但后续版本采用了服务器端公共许可证 (SSPL) 和 Elastic 许可证。这些许可证限制了开源软件的重复使用,给依赖可自由部署和再分发的搜索软件的组织带来了挑战。

为了维护开放的搜索生态系统,Amazon Web Services (AWS) 复刻了(即独立复制了)Elasticsearch 和 Kibana 的最后一个 Apache 2.0 版本,创建了 OpenSearch 项目。该项目在开放治理模式下引入了新特性和增强功能,并扩展了与 Elasticsearch API 和客户端库的兼容性,以简化迁移。

自那时起,OpenSearch 项目独立发展。它具有社区驱动的路线图、来自多个贡献者的贡献以及一个托管在 GitHub 上且不断增长的插件生态系统。虽然它仍然与许多 Elasticsearch 模式兼容,但 OpenSearch 已通过插件扩展了其功能集,支持向量搜索异常检测和高级可观测性工具。

OpenSearch 与 Elasticsearch 相同吗?

虽然这两个项目同源,但它们的发展路径已经分化。Elasticsearch 继续在 SSPL 和 Elastic License 下发展,采用专有功能开发策略。相比之下,OpenSearch 仍然采用 Apache 2.0 许可证,优先考虑开放性、可扩展性和运维可见性。因此,在两者之间进行选择的组织现在不仅评估功能,还评估治理模式、许可条款和长期生态系统方向。

兼容性仍然是这两个项目之间的重要桥梁:OpenSearch 仍然支持早期版本中的许多 Elasticsearch API、查询模式和客户端库,帮助团队以最少的重构进行迁移。它还保留了相似的存储库结构和索引格式,为从 Elasticsearch 迁移过来的用户保持熟悉感。

OpenSearch 是如何工作的?

OpenSearch 构建在专为规模和实时性能设计的分布式架构之上。其核心组件包括集群、节点、 索引、分片和文档——所有这些组件共同协作,高效地存储和检索 数据。

节点

节点是执行索引、查询和存储操作的服务器或容器化实例。常见的节点类型包括:

  • 主节点:管理集群状态、协调分片放置并维护元数据。

  • 数据节点:存储文档和分片,并执行索引和搜索操作。

  • 客户端(协调)节点:路由搜索查询、聚合结果并支持负载均衡,但不存储数据。

集群

 

集群是一个或多个节点的集合,这些节点协同工作以管理数据和执行查询。集群提供冗余和负载均衡,使得节点故障不会影响整体性能。每个集群维护有关索引、分片和路由信息的元数据

索引

索引是一个逻辑命名空间,类似于关系数据库中的表。它包含定义 JSON 文档结构的映射以及对存储这些文档的分片的引用。“索引”一词也用作动词,描述用数据填充索引的行为。

文档

文档是表示单个记录的 JSON 对象。简单来说,就是被存储和搜索的数据。当被索引时,每个文档中的字段会被分析、分词并存储在倒排索引中。

分片

分片是 OpenSearch 中存储文档的基本存储单元。每个索引由主分片和可选的副本分片组成。

  • 主分片存储数据的初始副本。

  • 副本分片提供冗余并提高读取吞吐量。

由于每个分片都是一个独立的 Lucene 实例(一个自包含的搜索引擎库),OpenSearch 将分片分布到各个节点上,以并行化搜索操作并扩展性能。

那么,这一切是如何协同工作的呢? 当文档被索引时,OpenSearch 会分析其内容,并应用文本分析器和分词器。处理之后,它将词条写入相应的分片。

索引操作由数据节点处理,并可跨集群分布以提高速度和可靠性。 查询随后被提交给协调节点,该节点确定包含相关数据的分片,将查询转发到这些分片,并聚合结果。

可以把它想象成一个设有不同工作站的餐厅厨房。索引就像准备食材并将其送到正确的工位,以便订单到来时一切就绪。当查询到达时,协调节点就像传菜员——报出所需菜品,汇集每个工位的出品,最后端上一份完整的菜肴。

AI Academy

数据管理是生成式 AI 的秘诀吗?

深入了解为什么高质量数据对于成功使用生成式 AI 至关重要。

OpenSearch 的功能

OpenSearch 内置了搜索、分析和可观测性功能。插件和扩展增强了其功能,使团队能够针对专门的工作负载定制平台。

核心平台功能

  • 全文搜索与相关性评分:支持短语查询、相关性调优和过滤器,基于 Apache Lucene。

  • 分布式索引与检索:将数据存储在主分片和副本分片上,支持并行索引和低延迟查询。

  • 聚合与分析查询:实时汇总和分析数据,用于趋势检测和运维监控。

  • SQL 查询语法:使用熟悉的结构化查询语言 (SQL) 结构查询索引数据,并以 JSON 或表格格式返回结果。

  • 管道处理语言 (PPL):一种管道式语法,用于探索日志、指标和其他运维数据集。

  • 索引状态管理 (ISM):自动执行索引生命周期操作,如滚动和保留。

  • Data Prepper(采集管道):在索引之前对数据进行过滤、丰富转换,用于可观测性和安全场景。

  • 仪表板与可视化:基于日志、指标和链路追踪创建可视化图表、运维面板和报告。

  • 身份验证与访问控制:提供对索引、文档和字段的细粒度访问控制,支持 Lightweight Directory Access Protocol (LDAP)、Security Assertion Markup Language (SAML) 和 Active Directory。

  • 可观测性原语:内置对用于监控分布式系统的关键可观测性数据的支持。

基于插件的功能

以下常用扩展可实现高级分析机器学习  (ML) 和可观测性场景(未尽列):

  • 异常检测:使用随机切割森林算法检测日志和指标中的异常模式。

  • k-NN 与向量搜索:支持语义搜索和相似性搜索,以及基于近似最近邻 (k-NN) 技术的推荐工作负载。

  • ML Commons:直接在 OpenSearch 内运行机器学习模型,支持训练和推理。

  • 性能分析器:提供跨集群的详细资源和性能指标,帮助团队优化 CPU 和查询吞吐量。

  • 跨集群复制:跨集群复制索引,以支持灾难恢复、冗余和工作负载隔离。

  • 链路追踪分析:可视化分布式系统中的链路追踪,帮助团队了解服务依赖关系和延迟路径。

偏好托管式体验的组织还可以使用 Amazon OpenSearch Service,该服务可在 AWS 上自动为 OpenSearch 集群进行扩缩容、备份、节点替换和运维管理。

什么是 OpenSearch Dashboards?

OpenSearch Dashboards 是 OpenSearch 的可视化与分析界面。它提供了一个交互式环境,用于探索索引数据、构建可视化图表以及创建用于可观测性、安全分析和应用程序监控工作流的运维仪表板。例如,团队可以利用 Dashboards 近乎实时地可视化指标趋势并调查异常。

OpenSearch Dashboards 支持创建图表、表格、地图、笔记本和自定义面板。它还包含旨在简化分析的功能。笔记本允许用户将可视化图表和文本整合到一个完整的叙述中。运维面板则将使用管道处理语言创建的可观测性可视化图表组织到统一的展示界面中。

由于 OpenSearch Dashboards 与 Kibana 在用户界面 (UI) 上同源,许多数据团队会觉得其工作流程很熟悉。不过,它是按照自己的路线图开发的,并包含了反映 OpenSearch 更广泛功能集的能力。

OpenSearch 用例

OpenSearch 支持跨行业的多种用例,包括:

  • 日志分析与运维智能
  • 可观测性工作流
  • 安全分析与威胁检测
  • 搜索引擎应用程序
  • 数据可视化与报表
  • 机器学习增强的分析

日志分析与运维智能

团队对来自应用程序、基础设施和云服务的日志进行索引,以分析性能问题并排查故障。OpenSearch 支持高容量采集和实时分析,使其适用于分布式生产系统,例如跨国电商网站。

可观测性工作流

凭借对指标、日志和链路追踪的支持,OpenSearch 提供了一个集成的可观测性平台。链路追踪分析可视化服务交互,而应用分析则关联遥测数据以理解系统行为并定位延迟或故障点。Dashboards 和 PPL 查询使团队能够快速调查问题,并创建可复用的运维视图。

安全分析与威胁检测

OpenSearch 的异常检测和 ML Commons 算法使组织能够在安全运维中应用搜索和分析技术。团队使用它来检测身份验证日志或应用程序行为中的异常模式,并在满足条件或达到阈值时触发通知。

搜索引擎应用程序

组织将 OpenSearch 用作网站、产品目录和企业内容系统背后的搜索引擎。全文搜索、自动补全、短语匹配和向量搜索支持多种用户体验和推荐用例。

数据可视化与报表

OpenSearch Dashboards 提供交互式可视化、报表和笔记本,帮助团队探索数据、监控趋势、跟踪关键绩效指标并与利益相关者分享洞察。

机器学习增强的分析

借助 ML Commons,团队可以在 OpenSearch 内部运行模型驱动的操作,例如聚类分类预测。这些功能支持欺诈检测、需求预测、客户细分以及下游数据管道丰富等用例。

作者

Tom Krantz

Staff Writer

IBM Think

Alexandra Jonker

Staff Editor

IBM Think

相机、音量旋钮和剪贴板等图标排成螺旋状的 3D 渲染图
相关解决方案
IBM® watsonx.data AI Enterprise Search

借助由受治理且互联的数据驱动的、具备上下文感知能力的 AI 智能体,获取值得信赖的答案,无需重构平台,亦无锁定风险。

了解 watsonx.data AI Enterprise Search
数据管理软件和解决方案

设计一项数据战略,消除数据孤岛,降低复杂性并提高数据质量,以实现卓越的客户和员工体验。

探索数据管理解决方案
数据和 AI 咨询服务

通过制定适当的战略、数据、安全和治理措施,成功实现 AI 的规模化应用。

深入了解数据和 AI 咨询服务
采取后续步骤

利用由受治理、互联的业务数据驱动的智能体式 AI,从您的组织内部提供可信、上下文感知的答案。

  1. 了解 watsonx.data AI Enterprise Search
  2. 深入了解数据管理解决方案