梧桐云原生分析型数据库向HTAP数据库演进的建议
一、背景与目标
某某大数据平台B域和O域业务采用梧桐云原生分析型数据库和HIVE支持,统计分析的结果以报表形式通过前台门户展示。而报表展示却采用OLTP数据库(Oracle)支撑,这种由于产品能力引起的业务处理流程的分离,导致了数据处理的低效率和高成本。
随着云计算和大数据技术的发展,通过整合OLTP和OLAP能力。从而提供一个高效、灵活且成本效益高的数据处理平台。
二、市场分析
2.1、客户痛点
由于目前梧桐云原生分析型数据库支持OLTP类型业务能力不足,导致整体大数据业务处理流程链条拉长,具体业务处理流程如下图所示:
痛点1: 梧桐云原生分析型数据库统计出的报表结果数据无法直接在门户展示。
痛点2: 由于异构数据库产品,数据同步需要从HDFS中转,流程复杂。
痛点3: 无法实现实时报表业务需求。
2.2、客户需求
针对上述客户的主要痛点,对梧桐数据库具体需求如下:
需求1: 报表能够直接访问梧桐云原生分析型数据库同时支持图片、视频、语音数据源的计算和存储能力。
业务场景:
第一、报表在新增需求中需要存储客户上传的excel、word等二进制文件;
第二、在发送消息时,生成的消息数据以图片形式存储在数据库中;
第三、消息网关针对发送的消息设定有发送字节数大小,超出阈值的消息将发送失败,所以在生成消息图片时,需要计算生成消息的图片是否超出阈值,如果超出则生成第二幅消息图片,分多次发送。
需求2: 梧桐云原生分析型数据库支持前台高并发小吞吐量的增删改查操作。
业务场景:
第一、门户日平均并发访问用户为400左右;
第二、用户每点击页面一个菜单或功能项,系统会自动插入日志表中,然后进行报表查询,或则配置修改操作,预估每秒并发的SQL数量为100-300条;
需求3: 支持通过CDC实时数据采集和前台实时报表展现能力。
三、现有产品评估
3.1 优势
目前梧桐云原生分析型数据库作为云原生、存算分离、国产数据库,具备以下特点:
- 高扩展
采用计算存储分离架构,利用云服务器、分布式存储,对数据基础设施的可扩展性进行深度优化,充分满足云端应用高度弹性、无限扩容的要求。 - 高性能
面向PB级大数据的复杂查询,相比MPP和SQL-on-Hadoop快一个数量级。全新设计的执行器让性能提升5~10倍,显著降低批处理和即席查询所需的时间。 - 高可用
梧桐云原生分析型数据库全域节点均采用数据冗余和备份策略,以确保在硬件故障时数据仍然可用。 - 强兼容
具备完善的SQL标准和ACID特性,支持对接访问Hive、HDFS等Hadoop原生组件,兼容基于Oracle,PostgreSQL,Greenplum开发的业务应用。
3.1 不足
梧桐云原生分析型数据库在OLAP业务场景下统计分析的能力表现较好,但是在OLTP场景下存在不足之处。
-
高并发下的查询响应较慢
由于梧桐云原生分析型数据库表存储是基于ORC格式或者HORC格式,所有表都不支持建立索引,在上千万甚至上亿条记录基数的表中,查询某几条记录的响应时间较慢,导致在高并发场景下业务系统出现夯死现象。 -
Magma存储能力
目前梧桐Magma存储支持数据和索引能力,对照Oracle的能力实现,如果能够支持以下能力,基本上能够满足现网业务场景的需求,具体能力如下:
第一、支持分区的局部索引;
第二、支持B-Tree索引;
第三、支持重建索引操作(全局索引、局部分区索引),而不是先删除再重建;
第四、分区的索引重建不能够影响其他分区索引的正常访问;
第五、Magma存储支持高可用、高并发能力。
四、竞品分析
梧桐云原生分析型数据库与OceanBase优劣对比如下表所示:
比对项目 | 梧桐云原生分析型数据库 | OceanBase |
---|---|---|
数据库架构 | OLAP MPP 存算分离 | HTAP 存算分离 |
大数据量分析 | 高 | 较高 |
表存储方式 | 列存 | 列存 |
兼容性 | 与Oracle兼容较高 | 与Oracle兼容高 |
高可用 | 不支持异地容灾 | 支持异地容灾 |
联机事务处理能力 | 一般 | 高 |
扩展性 | 高 | 较高 |
安全性 | 后续规划支持行级访问策略;支持数据传输加密;数据存储加密需要业务定制;审计记录支持文件系统 | 支持行级访问策略;支持数据传输加密;存储加密;审计记录可写入文件系统或表 |
备注:
- 1、数据传输加密
数据库在进行数据传输时,需要将传输的数据进行加密,用于确保数据的安全性和保密性。一般在网络传输层进行加密,接收方接收加密的数据后,按照约定的加密算法进行数据解密。 - 2、数据存储加密
为了保证敏感数据非授权访问,一般采用数据显示加密和数据存储加密2种方式。
第一、数据显示加密
通过定制化工具在数据展现层进行加密,数据底层存储还是明文,这种加密方式一般只能够规避使用前端工具的业务任务,而无法避免系统维护人员,如数据库管理员。
第二、数据存储加密
外部数据在进入数据库时,将明文敏感数据进行加密存储到数据库中,数据安全得到极大提升,甚至包括操作系统管理员和数据库管理员也无法通过系统文件层面和数据库层面进行敏感数据的越权访问。 - 3、数据加密算法
数据加密算法一般采用AES、DES、SHA-256等,建议同时支持FPE(Format-Preserving Encryption保形加密)加密算法,例如:SM4-FPE等。
五、技术趋势
随着CPU算力、内存容量、磁盘IO效率的提升,传统的软件架构体系在新的硬件平台和新算法基础上发生了改变,将OLTP和OLAP同时融合到一个数据库(HTAP),通过这种方式提升数据库处理能力。HTAP数据库的主要架构为:
1、主行存储+内存中列存储(Primary Row Store + InMemory Column Store)
主行存储作为实现 OLTP ,并使用内存中的列存来满足 OLAP 的负载。所有数据都持久化存储到主行存储中。行存储也经过了内存优化,以便有效处理数据更新。更新也附加到增量存储(delta store),随后将与列存储合并。
2、分布式行存储+列存储副本(Distributed Row Store + Column Store Replica)
在处理事务请求时,主节点会异步地将日志复制到从节点。主存储是行存储,一些从节点将被选为列存储服务器以加速查询。为了高可扩展性,事务以分布式方式处理;复杂查询在具有列存储的服务器节点上执行。
3、磁盘行存储+分布式列存储(Disk Row Store + Distributed Column Store)
基于磁盘的关系数据库管理系统(RDBMS)和分布式内存列存储来支持HTAP。数据库保留了OLTP工作负载的全部容量,列数据从行存储中提取到内存。
4、主列存储+增量行存储(Primary Column Store + Delta Row Store)
使用主列存储作为OLAP的基础,并使用增量行存储处理OLTP。整个数据存储在主列存储中。数据更新被追加到基于行的增量存储中。
六、产品演进方向
针对公司业务场景,梧桐云原生分析型数据库由原先的存算分离MPP数据库架构演讲为HTAP混合架构。可采用分布式行存储+列存储副本方案,或者采用不同存储架构方案进行OLTP+OLAP融合,OLTP采用分布式行存方式,OLAP采用列存方式,通过创建模型的参数选择存储方式。
七、风险与挑战
目前HTAP虽然有相应的产品,但是在大数据领域并没有相关成熟的应用案例。其承载生产系统的稳定性和处理能力还需要业务验证。
八、建议与结论
建议可以对HTAP架构演进试点进行能力验证。
九、参考文献
《HTAP Database: What is New and What is Next》