“开源”vs“商业”,差别到底有多大?这篇测试一目了然

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 Tair(兼容Redis),内存型 2GB
简介: 来自用户的声音…开源就能搞定,还要选商业方案吗?我是小白用户,开源方案上手快吗?性能有极致要求,开源能满足吗?追求性价比,哪种方案更适合我?我对MySQL很熟悉,数据分析场景适合吗?上述问题如何解?看阿里云帮你对比分析!

近些年来在数据分析领域,涌现出很多开源的技术方案,例如Presto、Spark、Impala等。面对多种选择,我们往往会比较困惑、无从下手。此外,MySQL生态非常火热,但对于数据分析类场景,使用此类关系型数据库是否合适呢?阿里云近期,基于常见的开源数据分析产品和数据库与阿里云自研的分析型数据库MySQL版进行了对比性能测试,希望从中能帮你找到答案。

01、测试标准:TPC-H

本次对比测试,是使用TPC-H标准。TPC-H(商业智能计算测试)是美国交易处理效能委员会(TPC,Transaction Processing Performance Council) 组织制定的用来模拟决策支持类应用的一个测试集。目前在学术界和工业界普遍采用它来评价决策支持技术方面应用的性能。这种商业测试可以全方位评测系统的整体商业计算综合能力,对厂商的要求更高,同时也具有普遍的商业实用意义。TPC-H 是根据真实的生产运行环境来建模,模拟了一套销售系统的数据仓库。其共包含8个基本关系,数据量可设定从1G~3T不等。其基准测试共包含了22个查询,主要评价指标各个查询的响应时间,即从提交查询到结果返回所需时间。其测试结果可综合反映系统处理查询时的能力。

02、测试方案

测试基于阿里云基础环境,在同等(或接近)的硬件配置下,对比分析型数据库MySQL版与MySQL、Presto、Spark、Impala在同等数据规模(100G)下,标准TPC-H的测试结果对比。测试环境如下表:

111.jpg
222.jpg

03、测试结果

如下表可以看出,分析型数据库MySQL版比MySQL8.0性能提升100多倍,比其他开源数据分析产品也有6~10倍的性能提升。

改动.jpg

*表格中对比数据为性能提高倍数,计算方法为(开源-ADB)/ADB。

*测试中Impala、Presto因语法或资源问题,无法全部完成测试。

04、解读数据

44444.jpg

在与关系型数据库典型产品-MySQL对比中,分析型数据库MySQL版实现了百余倍的提升。虽然MySQL采用了最新的8.0版本,在复杂SQL处理能方面有了长足的进步,但与专业数据分析类产品对比,差距明显。

在实际使用中,对于查询不太复杂、数据规模不大、响应时间要求不高的情况下,使用原生MySQL是可以接受的。对于稍显复杂的场景,还是建议选择专业的分析类产品。

对Presto、Spark、Impala的对比中,分析型数据库MySQL版也实现了6~10余倍的性能提升。同样作为分布式数据分析类产品,分析型数据库MySQL版经过多年技术积累,在存储架构、优化器、执行引擎等多领域的创新性成果,可大幅提高海量数据的实时查询性能。测试中除分析型数据库MySQL版外,其余产品都进行部分调优工作(包括参数调整、数据结构调整、语句改写等);而只有分析型数据库MySQL版真正实现了“开箱即用”,零优化、免维护、无开发。除在TPC-H提供的建表语句中增加对分布键的定义外(原有测试标准未考虑到分布式数据库场景),其余未做任何调整。

05、如何选择

回到文章之初的问题,我们如何来选择?这里简单整理了几点:

极致性能

对比测试结果来看,分析型数据库MySQL版在性能上优势明显。这也是依赖于多年技术积累所致。

语法兼容

从测试过程来看,分析型数据库MySQL版对MySQL生态兼容很好,语句无需修改即可使用。其他产品在兼容性方面还需进一步加强。

技术基础

如果你的技术比较薄弱,选择分析型数据库MySQL版的商用方案无疑是很合适的。如果你已经在其他大数据栈有了多年积累,可快速解决问题,则可以选择其他产品。

高性价比

上述测试中,未算考虑经济投入。在使用同样云端资源的情况下,分析型数据库MySQL版较其他产品,具有明显的经济优势。同时,分析型数据库MySQL版也提供了丰富的规格选择,进一步为客户降低成本。例如之前推出的基础版规格,将大数据分析门槛大幅降低;新推出的大存储规格,则面向具备海量数据体量用户;其未来还将有更为丰富且具有弹性的规格推出。

简单易用

零维护、免优化,这是分析型数据库MySQL版给很多人的直观印象。其将数据分析这一原本门槛较高的领域,变得触手可得。

06、写在最后

开源技术方案与商业方案之间的选择是一个长期的命题。面对多种选择时,我们需要从自身的场景需求、技术条件和经济实力等方面综合考虑,这些因素给每个人带来的选择也不尽相同。希望以上的测试结果能够为大家在选择数据库产品时有一个综合维度的参考,帮助大家找到合适自己的方案。

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
6月前
|
资源调度 测试技术 Linux
一款接口自动化神器—开源接口测试平台Lim(Less is More)
一款接口自动化神器—开源接口测试平台Lim(Less is More)
333 2
|
22天前
|
编解码 人工智能 自然语言处理
迈向多语言医疗大模型:大规模预训练语料、开源模型与全面基准测试
【10月更文挑战第23天】Oryx 是一种新型多模态架构,能够灵活处理各种分辨率的图像和视频数据,无需标准化。其核心创新包括任意分辨率编码和动态压缩器模块,适用于从微小图标到长时间视频的多种应用场景。Oryx 在长上下文检索和空间感知数据方面表现出色,并且已开源,为多模态研究提供了强大工具。然而,选择合适的分辨率和压缩率仍需谨慎,以平衡处理效率和识别精度。论文地址:https://www.nature.com/articles/s41467-024-52417-z
41 2
|
8天前
|
开发框架 安全 .NET
.NET使用Moq开源模拟库简化单元测试
.NET使用Moq开源模拟库简化单元测试~
|
17天前
|
NoSQL 测试技术 Go
自动化测试在 Go 开源库中的应用与实践
本文介绍了 Go 语言的自动化测试及其在 `go mongox` 库中的实践。Go 语言通过 `testing` 库和 `go test` 命令提供了简洁高效的测试框架,支持单元测试、集成测试和基准测试。`go mongox` 库通过单元测试和集成测试确保与 MongoDB 交互的正确性和稳定性,使用 Docker Compose 快速搭建测试环境。文章还探讨了表驱动测试、覆盖率检查和 Mock 工具的使用,强调了自动化测试在开源库中的重要性。
|
3月前
|
测试技术 Android开发 iOS开发
Appium 是一个开源的自动化测试框架,它支持多种平台和多种编程语言
Appium是一款开源自动化测试框架,支持iOS和Android多平台及多种编程语言。通过WebDriver协议,开发者可编写自动化测试脚本。在iPhone上实现屏幕点击等操作需安装Appium及其依赖,启动服务器,并设置所需的测试环境参数。利用Python等语言编写测试脚本,模拟用户交互行为,最后运行测试脚本来验证应用功能。对于iPhone测试,需准备真实设备或Xcode模拟器。
117 1
|
3月前
|
运维 Kubernetes 监控
|
5月前
|
数据可视化 前端开发 Java
自动化测试框架的选择与实践: Selenium vs. TestComplete
【6月更文挑战第18天】在软件开发的海洋中,自动化测试是一艘能够确保产品质量和效率的坚固船只。本文将深入探讨两种流行的自动化测试框架——Selenium和TestComplete,从它们的优势、局限性到适用场景进行对比分析。我们将通过实际案例来揭示如何根据项目需求选择最合适的测试工具,并提供一些实用的实施建议。文章旨在为读者提供清晰的指导,帮助他们在自动化测试的旅程中做出明智的决定。
121 3
|
5月前
|
NoSQL 关系型数据库 MySQL
软件测试之【基于开源商城系统fecmall功能测试项目实例】
软件测试之【基于开源商城系统fecmall功能测试项目实例】
308 0
软件测试之【基于开源商城系统fecmall功能测试项目实例】
|
4月前
|
Java jenkins 持续交付
Jenkins是开源CI/CD工具,用于自动化Java项目构建、测试和部署。通过配置源码管理、构建触发器、执行Maven目标,实现代码提交即触发构建和测试
【7月更文挑战第1天】Jenkins是开源CI/CD工具,用于自动化Java项目构建、测试和部署。通过配置源码管理、构建触发器、执行Maven目标,实现代码提交即触发构建和测试。成功后,Jenkins执行部署任务,发布到服务器或云环境。使用Jenkins能提升效率,保证软件质量,加速上线,并需维护其稳定运行。
130 0
|
6月前
|
运维 数据可视化 测试技术
Lag-Llama:第一个时间序列预测的开源基础模型介绍和性能测试
2023年10月,我们发表了一篇关于TimeGPT的文章,TimeGPT是时间序列预测的第一个基础模型之一,具有零样本推理、异常检测和共形预测能力。 虽然TimeGPT是一个专有模型,只能通过API访问。但是它还是引发了对时间序列基础模型的更多研究。到了2024年2月,已经有了一个用于时间序列预测的开源基础模型:laglllama。
368 2