在国产分析型数据库技术研究报告(上)篇内容中,我们主要阐述了分析型数据库的发展脉络,并从技术维度对其进行了研究。在今天的文章里,我们将围绕分析型数据库的挑战与趋势继续进行阐述。
三、分析型数据库的挑战与趋势
1.挑战
探索分析型数据库迁移的难度、打造快速迁移的能力
目前,国内进入数据平台替换的加速期,越来越多的企业客户身处在替换或准备替换的过程中。但数据平台迁移仍存在异构平台适配、大数据量搬迁以及数据核对这些难题需要突破。
异构平台适配涉及到DDL和SQL任务适配,如何才能做到平滑迁移?大数据量搬迁如何做到准确的、快速的进行迁移?数据核对如何对PB级的数据量进行全量或增量数据核对?这些都是在数据平台迁移过程中需要考虑的问题。
目前,各数据库提供商做了一些产品工具用于异构数据库迁移,但在实践过程中,还存在着亟待解决的问题,如:对象、SQL适配不兼容、需要进行人工修改;数据迁移采用JDBC的方式,导致迁移过程慢;数据核对采用记录数的方式,很难做到字段内容的校验等等。如何通过工具化或产品化、架构设计等思路“降低迁移难度、实现快速迁移”成为数据库厂商或集成商需要集中探索的问题。
减少对数据的移动,实现一套系统对HTAP场景的支持
随着企业业务的扩展以及市场需求的变化,越来越多的企业对HTAP业务场景提出了新的要求。传统的方案是通过ETL的方式把OLTP和OLAP进行组合,以实现对HTAP场景的支持。但二者存在时延,无法满足实时场景,且同时管理两套平台运维成本也较高。
现阶段出现了两种新的方案:一种是通过行、列存储来实现事务处理和分析,如开源的分析型Greenplum、事务型TiDB是当前主流的解决方案,但其资源管控能力相对较弱;另一种则是通过单一存储引擎进行事务处理和分析,如OceanBase,但性能方便还有待提高。
在实践应用中,无论是只使用行存储引擎还是只使用列存储引擎,都无法实现性能最优,未来如何才能达到最优解,仍需要进一步的探索。
(图源:艾瑞咨询)
多应用资源管理的支持亟需解决
数据平台承载的应用种类较多,因此对数据库的处理要求很高,比如数据平台支持的常规需求:ETL批处理、固定报表查询、多维报表查询、adhoc、集市供数等,各类应用对资源要求不同,如何合理分配资源,对国产数据库来说挑战非常大。
目前来看使用较多的方案是通过数据库内置的资源管理模块来解决,通过对CPU、内存管控,可以做到各应用的资源管控,但大数据量IO操作还是影响用户体验;还有一种解决方案是通过虚拟集群来管理,但目前来看,二者都没有达到理想的使用效果。未来的技术趋势是否是通过虚拟计算集群+多副片的方式来进行资源隔离,还需要等待时间来验证。
(图源:网络)
实现更加灵活管控的工作负载能力
工作负载管理对多任务处理非常有用,这也是DBA(Database Administrator,数据库管理员)日常管理数据库的挑战之一。如何有效的对系统资源进行管理以实现不同业务场景的业务目标,需要数据库提供商有一套较为成熟的工作负载管理解决方案。这方面能力较强的是Teradata Dynamic Workload Manager和Oracle Database Resource Manager,二者虽然实现的模型不同,但都提供了强大的产品化支持和精细化对资源(CPU、IO、并发等)的管控,以及后续动态执行过程中的管控,如降级、会话中止等。
(图源:Oracle官网、Teradata官网)
2.趋势
分析型数据库向湖仓一体发展
数据仓库上支持数据湖:一般是通过在数仓中建外部表来实现,如何更加灵活,以数仓为核心,支持访问数据湖。以Snowflake为代表,作为新生代的云上数仓的主导者之一,同时也是云数仓的主要推动者,目前已经实现了基于多公有云架构的云上数仓服务。
数据湖中支持数据仓库:一般是通过功能性开发,比如多版本并发控制、自适应schema、提供文件级事务等来实现传统数仓的功能。以Databricks为代表,它在2016年推出的Delta Lake,旨在在数据湖上支持类似 DBMS的数据管理功能。
例如,Databricks最初是一家数据湖公司,但其发展过程中一直在添加数仓功能。Snowflake 是一家数仓公司,却一直拥抱数据湖功能。这也从侧面说明湖仓一体化目前已经成为不可逆的重要趋势。同时我们也相信下一代的分析型数据库必然会朝着增强分析性能、提升易用性、降低使用成本的方向发展。
未来多场景需求和融合同时存在
2014年,Gartner在《混合事物/分析处理促进重大商业创新》报告中提出一种应用架构HTAP混合事务/分析处理(Hybrid Transactional/Analytical Processing),目标是实现一套引擎既支持事务处理又支持分析处理,以此避免在传统架构中,在线与离线数据库之间大量的数据交互。
目前交易型数据库和分析型数据库都有支持HTAP的尝试,二者有融合的趋势,例如AnalyticDB PostgreSQL是分析型数据库,现在也支持事务处理;而TiDB是事务型数据库,同时也支持分析处理。
但需要注意的是,HTAP的价值在于更加简单通用,对于绝大部分中等规模的客户,其数据量不会特别大,因此只需要一套系统即可。企业可以依据业务需求去选择合适(偏交易、分析)的HTAP数据库,但对于超数据量的企业,HTAP数据库的分析性能可能不如专用的OLAP数据库或大数据平台好用。
从云托管到云原生存算分离架构的发展
云计算技术的不断发展催生出将数据库部署在云上的需求,因此通过云服务形式提供数据库功能的云数据库应运而生。云与数据库的融合,减少了参数的重复配置,具有快速部署、高扩展性、高可用性、可迁移性、易运维性和资源隔离等特点。此外,云数据库具体有两种形态,一种是基于云资源部署的传统数据库,称为云托管数据库;另一种是基于容器化、微服务、Serverless等理念设计的存算分离架构的云原生数据库。
运用AI技术实现数据库的管理自治
面对大规模数据和不同的应用场景,传统数据库组件存在业务类型不敏感、查询优化能力弱等问题。目前有研究通过将传统数据库组件用机器学习算法替代,来实现更高的查询和存储效率,自动化处理各种任务,主动实现数据库智能调优。
机器学习算法可以分析大量数据记录,标记异常值和异常模式,帮助企业提高安全性,防范入侵者破坏,还可以在系统运行时自动、连续、无人工干预地执行修补、调优、备份和升级操作,尽可能减少人为错误或恶意行为,保障数据库持续稳定、高效运行。