记者:和平,责编:张红月
近期备受瞩目的 ClickBench 排行榜,出现了一匹黑马,在业界最为通行的 c6a.4xlarge, 500gb gp2 机型下,StarRocks 排名第一。要知道,ClickHouse 才是该榜单上长年稳坐第一的选手。
在揭晓黑马前,我们先认识下 ClickBench 和 ClickHouse。ClickBench 和 ClickHouse,都带有 Click,是不是有什么血缘关系?
没错,你猜对了!ClickBench 正是 ClickHouse 在 2013 年 10 月创建的分析型数据库跑分排行榜。ClickBench 通过从一周的页面点击数据中抽取 1/50,再从中抽取前 10 亿、1 亿、1000 万条的记录,来制作测试数据集。整个测试过程是在芬兰一个私人数据中心的集群上完成的,该集群为 3 节点,集群配置为 Xeon E2650v2,128GiB 内存,8x6TB HDD 硬盘 (RAID 6),10G 网络。
发起 ClickBench 的 ClickHouse 是全球知名的开源分析型数据库,最初起源于俄罗斯互联网巨头 Yandex,GitHub Star 近 2.5 万,其在 2021 年成立了商业化公司。ClickHouse 以性能彪悍而著称,在亿级数据集上比 Vertica 约快 5 倍、比 Apache Hive 快 279 倍、比 My SQL 快 801 倍,在十亿级数据库上比 Vertica 约快 5 倍,而 MySQL 和 Apache Hive 则无法在限定时间内完成。
ClickBench 测试范围包括:点击流和流量分析,网页分析,机器生成的数据、结构化日志,事件数据。典型查询场景为即席分析和实时仪表盘。测试数据集取自全球最大的网站分析平台之一的真实流量数据。在保留必要的数据分发的前提下,对所有数据进行了匿名化处理。查询并非直接来自生产环境,而是临时编辑成能反映真实负载的查询。
从 2013 年开始, ClickHouse、MonetDB、InfiniDB、Infobright、LucidDB、Vertica、Hive 以及 MySQL 均参与了测试。为了保证公平,ClickBench 榜单由一个没有 ClickHouse 经验的人主导。在 2016 年之前,这个榜单都是私底随机开展的。然而从 2016 年开始,榜单排行结果在 ClickHouse 的开源社区发布后,变成了对外公开的打榜测试。为了保证数据安全,ClickHouse 在 2019 年发布了 ClickHouse-obfuscator 工具,将隐私数据匿名处理,用安全的数据集做公开测试。后来 Greenplum、MemSQL (现在的 SingleStore)、OmniSci (现在的 HeavyAI)、DuckDB、PostgreSQL、TimescaleDB 等都参与了测试。
因为旧的测试集群天然对 ClickHouse 和网络分析数据友好,但是对其他系统和数据类型不友好,比如无符号整数(不支持标准 SQL),零字节字符串,定长字符串等。所以 2021 年的时候,ClickBench 破旧立新,建立了一个新的测试方案:
- 数据集进行规范化处理,方便简单快速加载到多数系统中。
- 规范化所有查询,来支持标准 SQL。这些 SQL 不会向 ClickHouse 倾斜好处、可以在每个系统上运行。
- 实现测试自动化,让测试变得简单。只有在最坏条件下,才需要通过复制粘贴命令来运行简短的 shell 脚本。
- 所有测试过程都可以在用户均能访问的虚拟主机上进行,并允许用户记录各类实例的运行结果。
想要在 ClickBench 测试中取得优异成绩,需要一个数据库具备出色的单机存储性能和单机执行性能。因为 ClickBench 的 SQL 都是单表的,所以对数据库的优化器能力要求不高,又因为 ClickBench 是单机部署测试,所以对数据库没有分布式能力要求。想要在 ClickBench 的 43 个 SQL 上都跑出优异成绩,需要一款数据库拥有出色的 Scan 能力、过滤能力、聚合能力、排序能力以及多核扩展能力,擅长处理应对高基数 Group By、高基数去重、正则匹配等场景。
ClickBench 是 ClickHouse 创建和使用的,但 ClickHouse 为了保证公平和对友商的尊重,多次强调自己不会在测试中做任何优化和调整。目前这套新的测试方案,对于其他友商的产品是比较容易使用的,可以在 20 分钟内完成结果复现。
近年来,因为 ClickHouse 单表查询性能享誉业界,ClickBench 榜单当前已经公布了几十家全球顶尖的分析型数据库的测试结果,包括:
说到这里,好奇心宝宝又有问题了,为什么 ClickHouse 自己作为运动员,还要充当裁判员,做一个分析型数据库跑分榜单呢?
ClickHouse 在 GitHub 上列举了一些同类跑分榜单的优缺点,比如 TPC-H、TPC-DS、TSBS、Brown University Mgbench、Mark Litwinschik’s NYC Taxi、Star Schema Benchmark 等等。优点就不多说了,ClickHouse 察觉的缺点主要包括“对于复杂查询有倾向性”、“需要官方认证”、“仅支持非常小的数据集”、“对 in-memory 数据库友好”。
ClickHouse 自己发起的 ClickBench,以可重复性(Reproducibility)、兼容性(Compatibility)、多样性(Diversity)、真实性(Realism)为目标,测试数据集来源于全球最大的网络分析平台之一,涵盖数据类型多样,所有上榜测试结果均可复现,能真实反映各大数据库在生产环境中的性能。不需要官方认证,也能支持大量和多样的数据集,没有明显的倾向性,对广泛数据库产品较为友好。测试按照机器型号分类,默认情况下,各数据库项目提交的版本会按照业界最为通行的 c6a.4xlarge, 500gb gp2 来进行测试。此外,被较多项目选择的还有 c6a.metal, 500gb gp2 等型号。此次打榜成功的黑马 StarRocks,就是在通用规模下获得了单表查询性能第一。
注:StarRocks(tuned)意为,StarRocks 开启了收集查询统计信息功能,以便更精准地查询估算与计划执行。来源:ClickBench链接
问题又来了,这匹黑马 StarRocks 是谁?
StarRocks 是刚成立 2 年的分析型数据库开源项目, 以“极速统一”作为价值主张。根据 StarRocks 中文社区的官方表述,StarRocks核心能力在于复杂查询、实时分析和数据湖分析,产品可以适用于固定报表、实时看板、实时风控、末端运营、用户画像等多场景。性能方面,单表查询性能已经领先于 ClickHouse,多表 Join 性能远超 ClickHouse。从公开的新闻报道里,包括腾讯、携程、顺丰、滴滴、京东、众安保险在内的不少大型中国企业都在使用 StarRocks,且分享了关于 StarRocks 的业务实践。StarRocks 从 2021 年开始开放源代码,目前在 GitHub 上的星数超过 3100 个、全球社区贡献者超过百位。