从Amazon OpenSearch无服

使用 Amazon OpenSearch 无服务器提取 30TB 时间序列工作负载的洞察

关键要点

在数据驱动时代,企业需要处理和分析大量数据,以提取洞察并做出明智决策。使用 可以简化这一过程,降低基础设施管理的复杂性。最近,OpenSearch Serverless 增加了对每个 AWS 区域 30TB时间序列数据的支持,并提升了计算能力,允许每个账户最多使用 500 个 OpenSearch 计算单元 (OCUs),从而助力数据分析,帮助企业识别业务问题和优化性能。

在本文中,我们将讨论如何使用 OpenSearch Serverless 分析 30TB 的时间序列数据集。

技术创新与优化以支持更大数据规模和更快响应

在处理大量数据并进行深入分析时,足够的磁盘、内存和 CPU 资源至关重要。这些资源不仅有益而且对我们的操作至关重要。在时间序列集合中,OCU磁盘通常包括不常访问的旧分片,称为热分片。我们引入了一项名为热分片恢复预取的新功能。此功能会主动监控分片中最近查询的数据块,并在分片移动(如分片平衡、垂直扩展和部署活动)时优先处理这些数据块。这加快了自动扩展速度,使我们系统的性能显著提升。后续部分将详细介绍这些改进的结果。

一些早期采用的客户在我们正式推出之前与我们合作进行测试。在这些试验中,我们观察到在某些客户工作负载下,热查询性能提升了多达 66%。此外,我们还增强了协调节点与工作节点之间的并发能力,随着 OCUs 的自动扩展,能够处理更多请求。这一提升使热查询和冷查询的性能提高了约 10%。

我们的系统稳定性已得到增强,能够有效处理高达 30TB的时间序列集合。我们团队致力于提升系统性能,这通过我们不断改善的自动扩展系统得以体现。这些改进包括优化分片分布以在数据滚动后实现最佳放置、基于队列长度的自动扩展策略,以及动态分片策略,根据数据摄取速率调整分片数量。

接下来,我们将分享一个我们内部使用的 30TB工作负载的测试设置示例,详细说明所用和生成的数据,以及我们的观察和结果。性能会根据具体工作负载的不同而有所变化。

数据摄取

您可以使用以下 中共享的负载生成脚本,或使用自己的应用程序或数据生成器来创建负载。您可以运行这些脚本的多个实例,以生成集中的索引请求。如以下截图所示,我们进行了测试,目标是发送约 30TB 的数据,时间跨度为 15 天。我们使用负载生成脚本将流量发送到单个索引,并使用 保留数据 15 天。

删除)

测试方法

我们将部署类型设置为“启用冗余”,以在可用区之间启用数据复制。这种部署配置将导致热存储(OCU 磁盘内存)中保留 12 到 24 小时的数据,其余数据存储在 中。根据预定的搜索性能和之前的摄取预期,我们将索引和搜索的最大 OCU设置为 500。

在测试过程中,我们观察了自动扩展的行为,并对其进行了图形化处理。索引稳定化大约花费了 8 小时,达到了 80 OCU。

删除)

在搜索方面,稳定大约耗时 2 天,达到 80 OCU。

删除)

观察结果:

摄取

摄取性能始终保持在每天超过 2TB。

查询

查询有两种类型,时间范围从 15 分钟到 15 天。

json {"aggs":{"1":{"cardinality":{"field":"carrier.keyword"}}},"size":0,"query":{"bool":{"filter":[{"range":{"@timestamp":{"gte":"now-15m","lte":"now"}}}]}}}

例如:

json {"aggs":{"1":{"cardinality":{"field":"carrier.keyword"}}},"size":0,"query":{"bool":{"filter":[{"range":{"@timestamp":{"gte":"now-1d","lte":"now"}}}]}}}

下图提供了聚合查询的不同百分位性能。

删除)

第二个查询为:

json {"query":{"bool":{"filter":[{"range":{"@timestamp":{"gte":"now-15m","lte":"now"}}}],"should":[{"match":{"originState":"State"}}]}}}

例如:

json {"query":{"bool":{"filter":[{"range":{"@timestamp":{"gte":"now-15m","lte":"now"}}}],"should":[{"match":{"originState":"California"}}]}}}

下图提供了搜索查询的不同百分位性能。

删除)

以下表格总结了不同查询时长的响应时间。

时长查询P50 (ms)P90 (ms)P95 (ms)P99 (ms)
15分钟{“aggs”:{“1”:{“cardinality”:{“field”:”carrier.keyword”}}},”size”:0,”query”:{“bool”:{“filter”:。如需亲身体验 OpenSearch Serverless,请参与 研讨会,该研讨会提供逐步指导,帮助您配置和设置 OpenSearch Serverless 集合。

如果您对本文有任何反馈,请在评论区分享。如果您对本文有任何问题,请在 开启新线程,或 。


关于作者

删除)SatishNandi 是 Amazon OpenSearch Service 的高级产品经理,专注于 OpenSearchServerless,拥有多年的网络、安全和 AI/ML 经验。他持有计算机科学学士学位及创业MBA,业余时间喜欢飞行和骑摩托车。

删除)MilavShah 是 Amazon OpenSearch Service 的工程部领导,专注于 OpenSearch客户的搜索体验。他在数据库、实时流处理和分布式计算领域有丰富经验。在业余时间,他喜欢骑自行车、徒步旅行和下棋。

删除)QiaoxuanXue 是 AWS 的高级软件工程师,负责 Amazon OpenSearch Serverless项目的搜索和基准测试领域。他热衷于为大规模分布式系统中复杂挑战寻找解决方案。业余时间喜欢木工、骑自行车、打篮球和与家人及宠物共度时光。

删除)PrashantAgrawal 是 Amazon OpenSearch Service的高级搜索专家解决方案架构师,密切协助客户将其工作负载迁移到云中,并帮助现有客户调优其集群以提升性能,降低成本。加入 AWS 之前,他帮助多个客户使用 OpenSearch 和 Elasticsearch进行搜索和日志分析。在不工作时,他喜欢旅行和探索新地方,总的来说,他享受并践行“吃→旅行→重来”的生活方式。

加载评论…

Leave a Reply

Required fields are marked *