近几年,在数据库领域诞生了很多新技术、新思想,让这个传统、古老的领域重新焕发生机。接下来从六个方面讨论当下数据库技术的发展趋势。
资源解耦在云数据库架构上的体现是“计算与存储分离”,每一部分都可以独立缩扩容,从而满足用户的按需使用、按量付费的诉求,降低使用门槛,利用“极致弹性”满足互联网时代下企业业务的快速发展需求。对于无状态的计算资源,云原生数据库可以做到分钟级编排与升级,极大地缩短了运维导致的业务不可用时间。对于有状态的存储资源,借助分布式文件系统、分布式一致性协议、多模态副本等关键技术,实现存储资源池化、数据安全与数据库强一致需求。可扩展的通信资源,确保计算和存储间有“足够的”带宽,满足高吞吐、低延迟的数据传输需求。
对于云数据库而言,基于资源解耦的高可用性是其基本特征。通过冗余的计算节点,结合基于云基础设施的节点“探活”及高可用切换技术,实现计算资源整体的高可用。通过多副本及分布式一致性协议,在实现数据存储高可用的同时,确保数据多副本间的一致性。面对任意规模的数据,云数据库应该具备快速备份恢复能力,并能根据备份策略,恢复到特定时间段的任意时间点。面对高并发与大数据处理需求,云数据库应该具备水平扩展与分布式处理能力,包括但不限于负载均衡、分布式事务处理、分布式锁、多租户下的资源隔离与调度、CPU混合负载和大规模并行处理等。
云数据库旨在为用户提供简单、易用的数据库系统,帮助用户用最短的时间、最低的成本快速实现业务功能。随着信息技术的发展,大数据已经成为事实,对数据库的一个核心诉求是在面对海量数据的同时,依然保持相同的性能和可接受的响应时间。大数据与数据库一体化的需求越来越强烈,对用户来说,就是能直接使用SQL基于云数据库对海量数据进行分析处理。要使云数据库具备大数据处理能力,一方面需要借助云基础设施的快速弹性、分布式并行处理特性,打造强劲的内核引擎,实现计算与存储资源效能的最大化,以可接受的性价比对外输出海量数据分析处理能力。另一方面,需要有与大数据分析处理相配套的生态工具,主要涉及三类工具。一是数据的流转迁移工具,保证数据链路畅通,数据自由流动,从性能上看,此类工具主要有实时性和吞吐率两大指标;从功能上看,需要能够打通上下游各类数据源。二是数据集成开发工具,用户需要能自由地对海量数据进行处理,包括数据集成、数据清洗、数据转换等,甚至需要能够提供一个完整的集成开发环境,支持开发流程的可视化建模,以及任务的发布、调度等。三是数据资产管理能力。“业务数据化、数据资产化、资产应用化、应用价值化”反映了由业务数据驱动业务创新的递进过程。数据资产化是数据融合应用的重要一环。云数据库作为业务数据生产、存储、处理和消费的重要云基础设施,在数据的资产化过程中扮演着重要角色。基于云数据库的资产管理工具,是云数据库打通“端到端”,帮助客户实现业务价值的重要保障。
新硬件的发展为数据库技术注入了更多的可能性,充分发挥硬件性能成了所有数据库系统提升效率的重要手段。云原生数据库拆解了计算、存储,并利用网络发挥分布式的能力,在这三个层面都充分结合新硬件的特性进行设计。首先,数据库的SQL计算层需要做大量的代数运算,如连接、聚集、过滤和排序等操作,利用异构计算设备GPU加速这些计算操作,可以充分发挥其并行能力。还可以利用FPGA可编程的能力,固化一些特定密集计算操作(压缩/解压缩,加/解密),减轻CPU负担。在存储方面,持久内存(NVM)的出现为数据库带来了想象空间,可字节寻址和持久化的能力,相对固态硬盘I/O性能有数量级的提升,很多数据库的设计者开始思考如何重新设计架构来利用这些特性,比如为持久内存设计的索引结构,减少日志或取消日志。因为计算和存储分离带来的执行路径变长问题,很多云数据库开始采用高性能网络(RDMA、InfiniBand等),结合用户态网络协议栈(DPDK)等技术,可以将网络延时带来的负面影响大大降低。在数据库系统理论日臻成熟、难以突破的今天,更多地利用硬件发展带来的红利是必然的趋势。
随着互联网业务多样化的发展,需要处理的数据类型也越来越丰富。关系数据库对于模式的严格定义,以往在提供数据规范化管理方面是一种优势,但此时成了快速变化业务的束缚。处理灵活的、半结构化和非结构化的数据也成为广泛存在的需求。新数据库也顺应了这种趋势,利用数据库原有强大丰富的数据操作能力,完备的ACID语义等优势,提供更多数据模型的处理能力,比如图(Graph)、键值(Key-Value)、文档(Document)、时序(Time Series)和时空(Spatial)等,以及图片、流媒体等非结构化数据。对于应用而言,在一个系统中处理如此多种的数据模型,甚至可以对异构数据做归一化、联合处理,能够挖掘出更多的应用价值。
随着数据的规模化发展,云数据库的使用场景和使用频率越来越高。传统的以数据库管理员为核心的数据库运维方式逐渐无法满足需求。受限于人的体力和能力上限,传统的数据库运维方式无法满足云时代的运维需求。智能化运维技术是云数据库安全稳定运行的重要支撑。启发式机器学习技术可能是一种潜在的解决方案。一种可行的思路是将机器学习技术和数据库专家经验相结合,结合云基础设施的运行数据采集能力,基于云数据库海量运行数据,形成智能化运维模型,实现云数据库自感知、自修复、自优化、自运维和自安全的云服务,帮助用户消除数据库管理的复杂性及人工操作引发的服务故障,有效保障数据库服务的稳定、安全和高效。
在云环境下,数据库的安全问题也是重中之重。“可靠、可控、可见”是云数据库安全可信的核心原则。在可靠性方面,在云基础设施本身安全的基础上,云数据库重点会确保链路安全与数据存储安全。在通常情况下,云数据库还能结合云基础设施的密钥管理功能,实现重要数据的加密存储,并根据行业、地域需求,提供不同强度的加密算法。可控是指密钥访问可控及数据权限管理。在通常情况下,云数据库依托云计算基础设施的密钥管理服务,支持用户自带密钥实现敏感数据的加密存储,即使是云服务提供商,在没有密钥的情况下,也无法访问加密存储的数据,最大限度地保证了数据安全。在数据权限管理方面,除了传统数据库支持的库表级别的访问控制,云数据库结合生态工具,还能实现列级别和行级别(基于内容的访问控制)的访问控制,并支持按需配置,满足不同行业对访问控制的诉求。可见是指数据库不再是“黑盒”,能够提供完整的日志审计能力,确保云数据库操作都有记录,且管理控制权在用户。云数据库安全可信技术覆盖“事前鉴权、事中保护、事后审计”的完整数据访问过程。