在可观测性场景中,Elasticsearch 常受限于写入性能与高昂成本。在《可观测性方案怎么选?SelectDB vs Elasticsearch vs ClickHouse》一文中提到, 在云上日志服务中,SelectDB 相比 Elasticsearch 展现出明显的性能和成本优势。为进一步探索,本文通过基准测试对比二者表现,验证 SelectDB 在日志场景下性能与成本上的显著优势。
1、基准目标和方法
本次测试的目的是在可观测性场景下公平比较 SelectDB 和 Elasticsearch 的实际性能和成本,并为用户提供参考数据。为尽可能做到真实和公平,我们设计了如下对比测试:
- 测试环境:使用 腾讯云 Elasticsearch 和 SelectDB Cloud 进行测试,未进行任何针对性调优。
- 测试数据:使用 Elasticsearch 的官方性能测试集http logs,以确保测试中立性(实际更偏向 Elasticsearch)。
- 测试内容:写入性能、查询性能、存储空间和成本的比较,这些是可观测性场景中用户最关心的指标。
- 测试方法:
- 第一阶段比较相同资源下的性能
- 第二阶段比较支持相同负载所需的成本。第二阶段超越了传统的性能测试,以验证性能优势是否能在实际用户需求中转化为成本优势,而不仅仅是一种推断。
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 出色的性能和成本优势得益于针对可观测性场景进行的广泛优化。
- SelectDB 针对日志场景优化倒排索引降低空间占用,数据和索引均采用列式存储,并使用 ZSTD 压缩算法,实现了高压缩率,可大幅减少存储空间。此外,SelectDB 将所有数据存储在低成本的对象存储中,热数据在 SSD 等本地磁盘上进行缓存和加速,利用可观测性数据冷热分层的特点降低存储空间单价。这些特性使 SelectDB 的存储成本比 Elasticsearch 降低了接近一个数量级。
- SelectDB 采用存储与计算分离的架构。在写入数据时,计算层仅存在一次计算消耗,避免了 Elasticsearch 存储与计算一体化架构所需的多副本。此外,SelectDB 为日志和追踪等时间序列数据设计了时间序列压缩策略,将后台数据合并的写入放大从 3 降低到 1,大幅节省计算和 IO 资源消耗。
- 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 试用验证。



