日志成本降低 83%:云上 Elasticsearch 和 SelectDB 的基准测试及成本分析

在可观测性场景中,Elasticsearch 常受限于写入性能与高昂成本。在《可观测性方案怎么选?SelectDB vs Elasticsearch vs ClickHouse》一文中提到, 在云上日志服务中,SelectDB 相比 Elasticsearch 展现出明显的性能和成本优势。为进一步探索,本文通过基准测试对比二者表现,验证 SelectDB 在日志场景下性能与成本上的显著优势。

1、基准目标和方法

本次测试的目的是在可观测性场景下公平比较 SelectDB 和 Elasticsearch 的实际性能和成本,并为用户提供参考数据。为尽可能做到真实和公平,我们设计了如下对比测试:

  1. 测试环境:使用 腾讯云 Elasticsearch 和 SelectDB Cloud 进行测试,未进行任何针对性调优。

  2. 测试数据:使用 Elasticsearch 的官方性能测试集http logs,以确保测试中立性(实际更偏向 Elasticsearch)。

  3. 测试内容:写入性能、查询性能、存储空间和成本的比较,这些是可观测性场景中用户最关心的指标。

  4. 测试方法:

    1. 第一阶段比较相同资源下的性能
    2. 第二阶段比较支持相同负载所需的成本。第二阶段超越了传统的性能测试,以验证性能优势是否能在实际用户需求中转化为成本优势,而不仅仅是一种推断。

2、相同资源下的性能比较

在测试的第一阶段,比较相同配置下 Elasticsearch 和 SelectDB 的性能和成本。

  • 第一步:Elasticsearch 和 SelectDB 分别购买具有相同配置(48vCPU、348GB RAM)的集群,成本分别为 18.83 元/小时 和 16.95 元/小时。

(1)腾讯云 Elasticsearch(48c) 费用:

(2)SelectDB Cloud(48c) 费用:

  • 第二步:在 Elasticsearch 中创建索引,并在 SelectDB Cloud 中创建表。为确保公平性,两个系统使用相同的模式,包括字段类型、索引类型、共享/分片数量等。需要注意的是,Elasticsearch 的索引大致对应于 SelectDB 的表。
  • 第三步:将相同的 HTTP 日志数据集导入到 Elasticsearch 和 SelectDB Cloud。Elasticsearch 耗时 225 秒,而 SelectDB Cloud 仅需 69 秒。SelectDB Cloud 比 Elasticsearch 快 3.3 倍
  • 第四步:分别在 Elasticsearch 和 SelectDB Cloud 中运行 HTTP 日志测试集的查询。Elasticsearch 中的首次运行(冷查询)耗时 2.049 秒,第二次运行(热启动)耗时 1.691 秒,SelectDB Cloud 中的首次运行(冷查询)耗时 0.599 秒,第二次运行(热启动)耗时 0.52 秒。SelectDB Cloud 在冷查询和热启动时的速度均比 Elasticsearch 快 3 倍以上
  • 第五步:分别获取 Elasticsearch 和 SelectDB Cloud 的存储空间使用情况。Elasticsearch 的存储空间使用量为 12.8GB,而 SelectDB Cloud 的存储空间使用量为 3.3GB。与 Elasticsearch 相比,SelectDB Cloud 的存储空间减少了 75%

通过本次测试可以看出,在相同配置下,SelectDB Cloud 的数据导入性能比 Elasticsearch 快 3.3 倍,查询性能快 3 倍以上,存储空间减少 75%。这意味着,在相同配置下,SelectDB Cloud 的用户将比使用 Elasticsearch 的用户获得数倍的性能提升

在可观测性场景下,用户更关心相同负载和性能下能否真正降低成本。因此,接下来的测试将验证 SelectDB Cloud 的性能优势能转化为多大的实际成本优势。

3、成本突破:从性能领先到真正的成本降低

在测试的第二阶段,SelectDB Cloud 将缩小至其原始规模的 1/6,与使用 6 倍资源的 Elasticsearch 进行性能比较

  • 第一步:将 SelectDB Cloud 48vCPU 的集群规模缩减至 8vCPU,成本也大幅降低至 2.93 元/小时。
  • 第二步:在仅有 8vCPU 的 SelectDB Cloud 集群中创建相同的表。
  • 第三步:将相同的 HTTP 日志数据集导入到具有 8vCPU 的 SelectDB Cloud 集群中。这一过程耗时 140 秒,速度仍比 48vCPU 的 Elasticsearch 云集群快 1.6 倍。
  • 第四步:在 8vCPU 的 SelectDB Cloud 集群中运行来自 HTTP 日志测试集的查询。第一次运行(冷查询)耗时 1.389 秒,第二次运行(热启动)耗时 1.246 秒。8 vCPU 的 SelectDB Cloud 在冷查询时比 48vCPU 的 Elasticsearch 还快 47.5%
  • 在第五步中,获取 8vCPU SelectDB Cloud 集群中的存储空间使用情况。SelectDB Cloud 的存储空间使用量仍为 3.3GB,比 Elasticsearch 低 75%。

通过本次测试可以看出,在将 SelectDB Cloud 的资源缩减至 Elasticsearch 的 1/6 后,成本仅为 2.93 元/小时,比 Elasticsearch 的 18.83 元/小时 节省了 85% 的费用 。尽管成本大幅降低,但性能仍保持显著优势:数据导入性能快 1.6 倍,冷查询性能快 47.5%,存储空间减少 75%

这意味着,对于从 Elasticsearch 切换到 SelectDB Cloud 以支持相同负载的用户来说,SelectDB Cloud 将实现实打实的 83% 成本降低,并提供更好的性能。

4、为什么 SelectDB 能如此显著地降低成本

SelectDB Cloud 出色的性能和成本优势得益于针对可观测性场景进行的广泛优化。

  1. SelectDB 针对日志场景优化倒排索引降低空间占用,数据和索引均采用列式存储,并使用 ZSTD 压缩算法,实现了高压缩率,可大幅减少存储空间。此外,SelectDB 将所有数据存储在低成本的对象存储中,热数据在 SSD 等本地磁盘上进行缓存和加速,利用可观测性数据冷热分层的特点降低存储空间单价。这些特性使 SelectDB 的存储成本比 Elasticsearch 降低了接近一个数量级。
  2. SelectDB 采用存储与计算分离的架构。在写入数据时,计算层仅存在一次计算消耗,避免了 Elasticsearch 存储与计算一体化架构所需的多副本。此外,SelectDB 为日志和追踪等时间序列数据设计了时间序列压缩策略,将后台数据合并的写入放大从 3 降低到 1,大幅节省计算和 IO 资源消耗。
  3. SelectDB 专为实时分析而设计,这意味着它支持高性能聚合操作,这些操作常用于可观测性领域。在搜索查询方面,SelectDB 以一种针对日志搜索和topn查询(如SELECT * FROM log WHERE message MATCH 'error' ORDER BY time DESC LIMIT 100)进行优化的方式实现了倒排索引。结果是,SelectDB 在搜索查询方面速度快 2 倍,在聚合查询方面速度快 10 倍。

结论

在 HTTP 日志基准工作负载下,SelectDB Cloud 与 Elasticsearch 相比实现了 83%的成本降低。在实际生产环境中,许多用户已经在 PB 规模下用 SelectDB 或 Apache Doris 取代了 Elasticsearch,实现了显著的成本节约。您可以阅读来自网易MiniMax领创集团中信信用卡中心的用户故事来了解更多

我们建议您根据实际业务场景设计测试,亲自验证 SelectDB 在成本与性能上的表现。欢迎申请SelectDB Cloud 试用验证。

相关推荐
NCIN EXPE17 小时前
redis 使用
数据库·redis·缓存
MongoDB 数据平台17 小时前
为编码代理引入 MongoDB 代理技能和插件
数据库·mongodb
极客on之路17 小时前
mysql explain type 各个字段解释
数据库·mysql
rADu REME17 小时前
探索Spring Cloud Config:构建高可用的配置中心
大数据·elasticsearch·搜索引擎
代码雕刻家17 小时前
MySQL与SQL Server的基本指令
数据库·mysql·sqlserver
lThE ANDE17 小时前
开启mysql的binlog日志
数据库·mysql
yejqvow1217 小时前
CSS如何控制placeholder文字的颜色_使用--placeholder伪元素
jvm·数据库·python
oLLI PILO17 小时前
nacos2.3.0 接入pgsql或其他数据库
数据库
m0_7436239218 小时前
HTML怎么创建多语言切换器_HTML语言选择下拉结构【指南】
jvm·数据库·python