《奇点云:OLAP数据库引擎选型白皮书(2022)(18页).pdf》由会员分享,可在线阅读,更多相关《奇点云:OLAP数据库引擎选型白皮书(2022)(18页).pdf(18页珍藏版)》请在三个皮匠报告上搜索。
1、O L A P 数 据 库 引 擎 选 型 白 皮 书1.1 OLAP数据库引擎概述1.2 OLAP数据库引擎选型过程中存在的问题1.3 如何更好地对数据库引擎进行选型?1.4 报告特色2.1 测评结果表 2.2 引擎评述2.3 选型指南评分标准 011141.0 背景2.0 测评结果附录010414目 录C o n t e n t s1.0背景 OLAP(Online Analytical Processing,联机分析处理),主要应用于大规模数据分析及统计计算,为决策提供数据支持。OLAP数据库引擎贯穿于数据时代发展的 3个阶段。无论在哪一阶段,当企业需要积累数据并进
2、行数据分析时,就会面临 OLAP数据库引擎的选型问题。1.1 OLAP数据库引擎概述*.02O L A P 数 据 库 引 擎 选 型 白 皮 书目前市面上可选择的数据库类型越来越多,数据库呈多元选择趋势。在进行数据库引擎选型时,可选项繁多,而目前市面上可参考的选型标准较少,选型流程长,耗费成本高。1.选项繁多,选型流程长开源数据库的成熟度开始逐渐超过商业数据库。虽然避免了高昂的服务费及license费用,但开源数据库在易用性、配套能力等方面存在一定缺陷,会产生额外的开发、部署、迁移等成本。因此,在选型过程中,除了考虑性能之外,运维成本、数据安全、生态影响力等维度也需要纳入考虑范围。2.开源逐
3、渐成为大趋势,选型时需进一步考虑的维度增加在选型过程中,针对不同的业务场景和环节,分维度对不同数据库引擎进行测试和比对,能有效提升数据库引擎选型的效率。选型时需要综合考虑业务需求、性能、维护成本、数据安全等多种维度的信息。具体而言,至少需要考虑以下三个层面:1.3 如何更好地对数据库引擎进行选型?测试业务场景要与企业的实际业务场景类似,这样提供的信息才能有效有效辅助决策者做出适合业务的决策;1.充分考虑业务相关性中国数据库行业研究报告(2021年)显示,2020年中国数据库市场总规模达 247.1亿元,同比增长16.2%。2020-2022中国数据库市场预计将呈高增长态势。数据库行业持续发展的
4、同时,在数据库引擎选型的过程中也存在着以下问题:1.2 OLAP数据库引擎选型过程中存在的问题数据库引擎采购常见流程调研企业内部业务需求结合内部需求,对市场上的供应商进行调研及初筛调研结合初筛结果触达供应商商务触达供应商演示解决方案企业结合演示情况进行进一步筛选二次评估部分企业会通过POC项目进一步验证供应商的产品及实施能力POC采购03本次测评在数据构造及测试过程中充分考虑到泛零售的业务场景,数据构造方案来源于真实客户业务场景,评测维度充分考虑了引擎的易用性及可维护性。有以下特色:1.4 报告特色奇点云深耕泛零售领域,曾服务泛零售行业近 50%头部客户,在该领域有非常丰富的项目实施经验。测评
5、过程中构造数据时,充分考虑了泛零售行业客户在选型时关注的主要业务场景,如泛零售数据计算、BI报表、不同规模数据即席查询等;1.来自最佳实践除基本的性能测评外,本次测评还关注到了数据安全、运维成本、元数据等维度;2.关注更多维度通过客观的数据建模方式进行计算,整体结论客观中立;3.客观中立整体指标及选型模型设计时更加贴合 OLAP场景。4.专注于 OLAP构造的数据集过于规则容易测试出较高的指标。但真实的环境,数据是有瑕疵和倾斜的。因此,在数据构造阶段需要充分理解客户的业务场景,并可尽量模拟出贴近真实应用场景的数据。3.保障测试数据真实有效基准测试一般有多个度量指标,不同业务场景关注的指标会有较
6、大区别。在设计指标时候,需要充分考虑业务关注点;2.根据实际业务场景选择合适度量指标如何通过测试比对,找到最适合的数据库引擎?指标多维性数据真实性业务相关性04O L A P 数 据 库 引 擎 选 型 白 皮 书2.0测评结果测评结果如下图,共 11个分析维度2.1 测评结果表全表scan性能MySQLClickHouseStarRocks维度引擎事实表查询性能宽表查询性能TP查询性能AP计算性能数据批量同步速率高并发数据安全运维成本生态影响力元数据TiDBPresto+KuduImpala+Kudu以上评分从高到低依次为:GABCD05基本介绍:MySQL是目前最流行的开源数据库,其本身属
7、于是 OLTP引擎,但是也具备一些 OLAP计算的能力。协议被众多其他引擎采用,被广泛地应用在Internet上的中小型网站中。总评:MySQL在即席查询性能和数据批量同步维度表现较好,其他维度表现一般,不支持统一元数据管理。整体而言,MySQL体积小、速度快、成本低,开源。单机版易操作,单机性能好,适合中小型表,业务量低于亿级别,对计算和查询性能都有一定需求的客户可以选择 MySQL。2.分析引擎评述2.2 引擎评述全表scan性能MySQL维度引擎事实表查询性能宽表查询性能TP查询性能AP计算性能数据批量同步速率高并发数据安全运维成本生态影响力元数据全表scan性能事实表查询性能宽表查询性
8、能TP查询性能AP计算性能数据批量同步速率高并发数据安全运维成本生态影响力元数据1.测评结果2.2.1 MySQL优点:1.支持事务;2.低成本易上手:体积小,部署方便,资源占用少。技术成熟,使用标准SQL数据语言形式,易上手;3.兼容性较好,适配性强:支持 Linux、Mac OS、OS/2 Wrap、Solaris、Windows等多种操作系统,BI软件基本都支持 MySQL数据源。缺点:1.开发运维成本高:对存储过程和触发器支持不够良好,开发和维护存储过程比较难。且不支持热备份;2.海量数据处理的时候效率不高,单机连接并发数上线较低,单表数据量千万查询性能下降,复杂 SQL执行效率低;3
9、.版本更新慢。06O L A P 数 据 库 引 擎 选 型 白 皮 书1.测评结果2.2.2 TiDB基本介绍:TiDB由 PingCAP公司开发和支持,是一个开源的 NewSQL数据库,支持混合事务和分析处理(HTAP)工作负载,与 MySQL兼容,并且可以提供水平可扩展性、强一致性和高可用性。TiDB是一个综合性的引擎,兼顾 OLAP和 OLTP,本次测评时主要考虑 TiDB的 OLAP场景。总评:TiDB事实表查询、宽表查询、即席查询和 AP计算性能方面表现亮眼,运维成本较低,无统一元数据管理。TiDB解决了 MySQL单机和中小型数据库表的瓶颈,高并发、AP、TP、即席查询性能均衡。
10、2.分析引擎评述优点:1.支持一键水平扩容或者缩容,支持高可用;2.云原生的分布式数据库;3.兼容 MySQL 5.7 协议和 MySQL 生态;4.自带运维监控系统。缺点:1.布署成本高,集群模式决定了需要更多的硬件成本;2.不支持分区,存储过程。全表scan性能维度引擎事实表查询性能宽表查询性能TP查询性能AP计算性能数据批量同步速率高并发数据安全运维成本生态影响力元数据全表scan性能事实表查询性能宽表查询性能TP查询性能AP计算性能数据批量同步速率高并发数据安全运维成本生态影响力元数据TiDB071.测评结果2.2.3 ClickHouse 基本介绍:ClickHouse是用于联机分析
11、处理的开源列式数据库,允许分析实时更新的数据,以高性能为目标。该引擎为 OLAP查询而设计,常见应用场景有服务器日志分析等。该项目于 2016年 6月开源。总评:ClickHouse在全表 scan、事实表查询、TP查询、AP计算、数据批量同步速率性能方面表现亮眼,支持统一元数据并且有落地场景,运维成本相对低。该引擎在并发和 TP查询维度一般,DataX集成速度快,适合大规模批处理计算场景。2.分析引擎评述优点:1.列式数据库管理系统:写入速度快,在一些其他系统中也可以将不同的列分别进行存储;2.数据压缩:数据压缩空间大,减少 IO,处理查询高吞吐量,每台服务器秒级数十亿行;3.资源利用率高,
12、适合在线查询;4.实时的数据更新,支持近似计算;5.不依赖 Hadoop复杂生态。缺点:1.不支持事务;2.不擅长根据主键按行粒度查询;3.不擅长按行删除数据。全表scan性能维度引擎事实表查询性能宽表查询性能TP查询性能AP计算性能数据批量同步速率高并发数据安全运维成本生态影响力元数据全表scan性能事实表查询性能宽表查询性能TP查询性能AP计算性能数据批量同步速率高并发数据安全运维成本生态影响力元数据ClickHouse08O L A P 数 据 库 引 擎 选 型 白 皮 书1.测评结果2.2.4 StarRocks基本介绍:StarRocks主要应用于实时分析场景,于 2018年在Ap
13、ache社区开源。是一款面向多种数据分析场景、兼容 MySQL协议的分布式关系型列式数据库。总评:StarRocks在数据查询处理性能方面整体表现亮眼,支持统一元数据管理,运维成本相对低。该引擎 load接口不稳定,常出现删除数据库空间无法释放的情况,并发性能中等,其他表现不弱于TiDB。2.分析引擎评述优点:1.StarRocks 并不依赖于大数据生态,但其外表联邦查询可兼容大数据生态;2.提供了多种不同模型,能够支持不同维度的数据建模;3.支持在线弹性扩缩容,可以自动负载均衡;4.支持高并发分析查询,在单表查询及多表 join方面综合性能均较优;5.实时性好,支持数据秒级写入;6.兼容 M
14、ySQL5.7 协议和 MySQL 生态。缺点:1.周边生态比较不完善;2.部分 SQL语法不支持。全表scan性能维度引擎事实表查询性能宽表查询性能TP查询性能AP计算性能数据批量同步速率高并发数据安全运维成本生态影响力元数据全表scan性能事实表查询性能宽表查询性能TP查询性能AP计算性能数据批量同步速率高并发数据安全运维成本生态影响力元数据StarRocks091.测评结果2.2.5 Impala+Kudu基本介绍:Impala是 Cloudera主导开发的查询系统,Impala并没有自己的存储引擎,不提供数据存储服务,但底层可集成多个数据源。Kudu 是针对 Apache Hadoop
15、 研发的列式存储管理器,支持横向扩展和高可用。Impala和 Kudu深度集成,数据可实时写入 Kudu,Impala提供 BI分析 SQL查询。总评:在即席查询场景下,Impala的稳定性和速度已在工业界经过广泛验证。Impala+Kudu架构支持随机读写,有良好的 Scan性能,对 Spark等流式计算框架有官方客户端支持,为实时数据仓库存储提供了良好的解决方案。适用于数据量不大、有一定的并发量、需要快速响应的场景。2.分析引擎评述全表scan性能维度引擎事实表查询性能宽表查询性能TP查询性能AP计算性能数据批量同步速率高并发数据安全运维成本生态影响力元数据全表scan性能事实表查询性能宽
16、表查询性能TP查询性能AP计算性能数据批量同步速率高并发数据安全运维成本生态影响力元数据Impala+Kudu优点:1.Impala SQL语法与和 Hive SQL高度相似,学习成本低;2.Impala具备超大数据规模 SQL解析能力,能够高效利用 CPU与内存,快速返回结果;3.Impala与 Hue深度集成,提供可视化的 SQL操作以及 work flow;4.Kudu能完成与关系型数据库类似的操作,数据可以存储在 Kudu里并随时更新。缺点:1.Impala基于内存计算,整体而言对内存依赖性比较大;2.Impala基于 C+编写,引擎维护难度较大;3.Impala不支持 ANSI SQ
17、L,在 SQL聚合等方面功能相对较弱;4.Kudu提高读性能的同时牺牲了写性能。其表必须设置主键,对于非主键列的过滤条件,只能进行全表扫描,性能较差。10O L A P 数 据 库 引 擎 选 型 白 皮 书1.测评结果2.2.6 Presto+Kudu基本介绍:Presto是用于大数据场景的高性能分布式 SQL查询引擎,用户能基于该架构查询各种数据源,并且可以在单个查询中查询来自多个数据源的数据。Presto本身不存储数据,通常配合存储管理器使用(本次测试与 Kudu配合使用)。总评:Presto支持 GB到 PB级数据的秒级查询场景,通过使用分布式查询,可以高效完成海量数据的查询,擅长对海
18、量数据进行复杂分析,在遍历全表、元数据管理维度表现较好。Presto可以接入多种数据源,支持跨数据源的级联查询。2.分析引擎评述优点:1.数据源支持丰富:支持的数据源包括传统关系型数据库、图数据库、Hive、Redis等;2.支持连接多个数据源,并且能够进行跨数据源连表查询,可以在一条查询中对来自多个数据源的数据进行合并分析;3.Presto根据场景进行聚合运算,基于内存运算,根据场景聚合运算(如 Count,Avg等),边读数边计算,再清内存,再读数据计算。和传统的MapReduce相比,消除了延迟和磁盘IO开销。缺点:1.Presto支持 ANSI SQL,但在对 DML的支持方面相对较弱
19、;2.跨数据源连表查询时有可能产生大量临时数据,查询时占用存储多,查询速度会变慢。全表scan性能维度引擎事实表查询性能宽表查询性能TP查询性能AP计算性能数据批量同步速率高并发数据安全运维成本生态影响力元数据全表scan性能事实表查询性能宽表查询性能TP查询性能AP计算性能数据批量同步速率高并发数据安全运维成本生态影响力元数据Presto+Kudu11客户选型流程BI工具适配离线场景CDP场景学习成本实时场景成本:硬件、软件CDP在项目交付实施过程中,我们总结出了进行 OLAP数据库引擎选型的通用流程。参考下方流程,基本可选出符合业务需求的 OLAP数据库引擎。2.3 选型指南企业通常已有正
20、在使用的 BI工具,在进行 OLAP选型的时候需要首先考虑对 BI的支持度。BI使用OLAP主要用于探索性报表、报表深度分析等。1.首先考虑BI工具是否能够顺利连接到该OLAP引擎;2.在能够顺利连接的基础之上,看哪一个引擎对该BI工具支持得最好,查询数据响应最快。建议重点关注的指标有:全表 scan性能、事实表查询性能、宽表查询性能、TP查询性能、AP计算性能。1.引擎与 BI工具是否适配1.硬件成本:泛零售领域对硬件成本控制比较严格,因此需要重点考虑部署引擎的硬件成本(本次测评暂不涉及硬件成本数据,如对相关信息感兴趣,可联系奇点云相关人员 );2.运维成本:考虑运维便利程度,如交付后续客户
21、无法自主运维,则还需要后续的运维支出。建议关注指标:运维成本,运维成本指标等级越高,运维便利性越好。2.成本:包含硬件成本、运维成本等全表scan性能MySQLClickHouseStarRocks维度引擎事实表查询性能宽表查询性能AP计算性能TiDBPresto+KuduImpala+KuduTP查询性能引擎MySQLClickHouseStarRocks维度TiDBPresto+KuduImpala+Kudu运维成本BI工具适配场景建议关注指标成本场景建议关注指标12O L A P 数 据 库 引 擎 选 型 白 皮 书流计算场景对数据返回实时性要求比较高,关注瞬时流量带宽,及最长延时的底
22、线。典型场景有注册发券、订单同时等。以注册发券场景为例,用户进行注册之后根据用户所选偏好、基础信息、当前行为等信息立刻推送优惠券,该场景下需要对用户的行为数据进行快速查询计算,数据返回延时低。选型考虑以下方面:1.引擎与消息队列的兼容性:首先考虑引擎是否能对接 Kafka之类的消息队列;2.进一步关注事实表查询性能、宽表查询性能;批处理场景对时效性要求并不高,但需处理的数据量极大,因此对查询性能及数据同步速率等有要求。典型的应用场景有人群计算、产出标签和产出报表等。1.优先考虑即席查询相关指标,包括事实表查询性能、宽表查询性能、高并发。OLAP本身就面向即席查询,因此即席查询相关的性能越高越好
23、。2.在即席查询相关指标满足业务需求的基础上,进一步考虑TP查询性能、数据批量同步速率;3.进一步考虑全表scan性能。4.流计算场景(实时计算)3.批处理场景(离线计算)MySQLClickHouseStarRocks维度引擎TiDBPresto+KuduImpala+Kudu宽表查询性能事实表查询性能MySQLClickHouseStarRocks维度引擎TiDBPresto+KuduImpala+Kudu事实表查询性能宽表查询性能高并发全表scan性能MySQLClickHouseStarRocks维度引擎TiDBPresto+KuduImpala+Kudu数据批量同步速率MySQLCl
24、ickHouseStarRocks维度引擎TiDBPresto+KuduImpala+KuduTP查询性能批处理场景建议关注指标(1)批处理场景建议关注指标(3)批处理场景建议关注指标(2)流计算场景建议关注指标(1)13学习成本指的是,选型时需要考虑到引擎的生态影响力及学习难度:1.生态影响力:生态影响力包含了商业化程度、热度等,生态影响力大的引擎,引擎的周边配套软件多。在行业内应用会较多,学习渠道及素材多,使用过程中出现的问题会有相应的解决方案;6.学习成本如客户需要对接 CDP产品(如 DataNuza),则需要考虑 CDP产品与 OLAP引擎的兼容性及对接成本。5.CDP产品兼容性AP
25、计算性能MySQLClickHouseStarRocks维度引擎TiDBPresto+KuduImpala+Kudu数据安全元数据MySQLClickHouseStarRocks维度引擎TiDBPresto+KuduImpala+Kudu生态影响力运维成本流计算场景建议关注指标(2)MySQLClickHouseStarRocks维度引擎TiDBPresto+KuduImpala+Kudu生态影响力生态影响力指标基础能力项指标3.此外流计算场景(实时计算)还需关注AP计算性能指标。2.学习成本:考虑是否支持 SQL、是否需要学习额外的语言等(如 ClickHouse需要学习额外语法)。在各项指
26、标中,数据安全、运维成本、生态影响力、元数据等指标为引擎的基础能力项,其等级越高,引擎本身的安全及易用性越高。在满足业务场景所需达到的性能且成本允许的前提下,建议尽可能选择基础能力等级较高的引擎。14O L A P 数 据 库 引 擎 选 型 白 皮 书1.测试后根据以下评分表对每个细项进行评分,得出原始指标评分标准附录分数角度/指标50(G)40(A)30(B)20(C)10(D)0遍历全表遍历全表平均小于1s平均小于3s平均小于10s平均小于30s平均大于30sNA查询能力亿级别事实表小于200ms小于300ms小于500ms小于1000ms大于1000msNA十亿级别事实表小于1s小于3
27、s小于6s小于10s大于10sNA二十亿级别事实表小于2s小于5s小于10s小于20s大于20sNA宽表(3E)小于1s小于3s小于5s小于10s大于10sNAOLTPupdatecase平均小于5scase平均小于20scase平均小于50scase平均小于100scase平均大于100sNAgroup bycase平均小于30scase平均小于100scase平均小于300scase平均小于500scase平均大于500sNAjoin查询case平均小于10scase平均小于30scase平均小于100scase平均小于200scase平均大于200sNAOLAPselectcase平均小
28、于30scase平均小于80scase平均小于200scase平均小于500scase平均大于500sNAwithcase平均小于30scase平均小于80scase平均小于200scase平均小于500scase平均大于500sNA实时计算框架NA支持Flink、SparkNA支持Flink或SparkNA不支持DataX导入(5并发)大于20M/s大于15M/s大于10M/s大于5M/s小于5M/sNA存储计算存储空间:小于1T存储空间:小于1.5T存储空间:小于2T存储空间:小于2.5T存储空间:小于3T3T存储空间:大于高并发selectqps:平均1万+qps:平均5000+qps:
29、平均1000+qps:平均大于500qps:平均小于500NAselect joinqps:平均100+qps:平均30+qps:平均10+qps:平均3+qps:平均小于3NA事务事务NA支持NANANA不支持云平台兼容性云平台兼容性NA主流云平台全部兼容NANA主流云平台存在不兼容不支持云平台安全数据权限分级支持库、表、行、列、字段NA支持库、表、行、列NA支持库、表NA用户权限分级支持库、表、行、列、字段NA支持库、表、行、列NA支持库、表NA数据审计NA系统支持NA外部支持NA不支持自主可控国产&商业&开源&底层自研国产&商业&开源国产开源国产商业化NA国外信创认证NA已认证NANAN
30、A未认证存取控制资源、SQL、数量、字段资源、SQL、数量资源&数量资源NA不支持运维部署&升级&修改部署简单、升级简单&修改可以配置无需重启部署难度一般、升级难度一般&修改可以配置无需重启部署难度一般、升级难度一般&修改可以配置需重启部署难度繁杂、升级繁杂&修改可以配置无需重启部署难度繁杂、升级繁杂&修改需要重启服务NA迁移命令和工具一键迁移NA数据同步迁移NA需要导出重新导入NASQL协议完全支持主体支持NA只支持部分协议NA不支持稳定性高可用多节点部署,自动分发NA多节点部署,不支持自动分发NA多节点部署,节点小于10个单节点伸缩性弹性伸缩,热配置NA配置伸缩,需要重启NA部署伸缩,需要
31、停服务不支持容灾恢复故障自动恢复,自动保存灾前数据NA自动保存灾前数据NA手动恢复不支持监控引擎自带,监控齐全无需配置引擎自带,监控需要配置NA安装第三方NA无合适的监控自动备份定时自动备份、故障自动备份NA故障自动备份定时自动备份NA无商业化商业化周边配套软件多,专利数多周边配套软件多有周边配套软件有周边配套软件NA无元数热度据元数据支持,并有落地场景支持,并有落地方案支持NANA不支持百度热度结果数大于1E,日指数大于1万结果数大于1E,日指数大于5000结果数大于3千万,日指数大于1000结果数大于1千万,日指数大于300结果数大于1千万,日指数小于300NAgithub热度github
32、项目数大于50万github项目数大于10万github项目数大于1万github项目数大于1000github项目数小于1000NA152.将原始指标在每个维度下进行加总平均,平均分即为每个维度下的分数。得分=维度下的原始指标分数总和/维度下的原始指标数量,例如,事实表查询性能分数=(亿级别得分+十亿级别得分+二十亿级别得分)/3角度遍历全表查询能力OLTP遍历全表亿级别事实表十亿级别事实表二十亿级别事实表宽表(3E)updategroup byjoin语句TP查询性能TP查询性能TP查询性能事实表查询性能事实表查询性能事实表查询性能高并发selectselect join高并发/百度热度g
33、ithub热度生态影响力生态影响力宽表查询性能OLAPselectwith实时计算框架DataX导入(5并发)AP计算性能AP计算性能AP计算性能数据批量同步速率运维部署&升级&修改迁移存储计算SQL协议运维成本运维成本运维成本运维成本安全数据权限分级用户权限分级数据审计自主可控数据安全数据安全数据安全数据安全数据安全数据安全信创认证存取控制稳定性高可用伸缩性容灾恢复监控运维成本运维成本运维成本运维成本自动备份运维成本全表scan性能事务事务/云平台兼容性云平台兼容性运维成本商业化商业化生态影响力元数据热度元数据元数据原始指标分析维度(因素)16O L A P 数 据 库 引 擎 选 型 白 皮 书3.将上表结果中每个维度的得分换算为等级,得到最终评级等级分数段40,5030,40)25,30)20,25)(0,20)0无全表scan性能MySQLClickHouseStarRocks维度引擎事实表查询性能宽表查询性能TP查询性能AP计算性能数据批量同步速率高并发数据安全运维成本生态影响力元数据TiDBPresto+KuduImpala+Kudu