近些年来在数据分析领域,涌现出很多开源的技术方案,例如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的测试结果对比。测试环境如下表:
03、测试结果
如下表可以看出,分析型数据库MySQL版比MySQL8.0性能提升100多倍,比其他开源数据分析产品也有6~10倍的性能提升。
*表格中对比数据为性能提高倍数,计算方法为(开源-ADB)/ADB。
*测试中Impala、Presto因语法或资源问题,无法全部完成测试。
04、解读数据
在与关系型数据库典型产品-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、写在最后
开源技术方案与商业方案之间的选择是一个长期的命题。面对多种选择时,我们需要从自身的场景需求、技术条件和经济实力等方面综合考虑,这些因素给每个人带来的选择也不尽相同。希望以上的测试结果能够为大家在选择数据库产品时有一个综合维度的参考,帮助大家找到合适自己的方案。