导语:全时态数据为数据安全、数据重演、数据挖掘和AI技术的施展提供了物理基础。这篇入选VLDB 2019的论文介绍,基于腾讯云TDSQL扩展而来的全时态数据库系统(T-TDSQL),在保证OLTP性能的前提下提供了轻量级的全时态数据管理功能和全时态数据的事务处理能力、以及集当前态数据于生产系统集历史态数据于分析型系统的集群架构,构成了全时态数据的完备解决方案。
前言
腾讯与中国人民大学于2017年起,依托于腾讯TEG计费平台部丰富的实战经验和中国人民大学数据工程与知识工程教育部重点实验室的多年学术积累,在数据库前沿研究领域开展了深入合作,研究成果已经连续两年入选国际顶级会议VLDB。(TDSQL带你走进数据库顶会VLDB 2018 | 论文纵览)。
VLDB 会议是国际公认的数据管理与数据库领域顶尖的三大学术会议(SIGMOD、VLDB、ICDE)之一,旨在展示和推广领域内最新的研究成果和核心科技。自1975年开办至今,VLDB会议已经成功举办了44届,每年的VLDB能在全球范围内吸引到大量优秀的研究人员、企业代表以及行业精英到场参会,是一场不容错过的学术盛会。VLDB 2019会议于当地时间2019年8月26日至8月30日在美国洛杉矶召开,届时团队将会对本次研究成果进行公开展示,尽请期待。
继去年在VLDB2018上通过DEMO论文展示了合作成果MSQL+后 (基于TDSQL的插件式近似查询工具),今年腾讯与中国人民大学最新联合研究成果“ALightweight and Efficient Temporal Database ManagementSystem in TDSQL”成功被VLDB2019 IndustryTrack接收并将通过长文形式发表。该研究成果由腾讯TEG计费平台部TDSQL数据库团队与中国人民大学数据工程与知识工程教育部重点实验室深度合作完成。论文介绍了一款基于TDSQL扩展而来的全时态数据库系统,该系统在保证OLTP性能的前提下,提供了轻量级的时态数据管理功能。本文将对论文研究成果进行详细的分析解读。
图1 VLDB官网截图
腾讯TEG计费平台部拥有多年的数据库实战研发经验,其推出的金融级分布式数据库TDSQL,承载了腾讯90%的金融、交易、计费类业务。从2014年开始,通过腾讯金融云平台,TDSQL对外提供稳定可靠的云数据库服务,目前在公有云上服务金融机构500余家,为44余家银行及政企(包括中国银行、微众银行等)提供专有云服务,在业内享有较好的口碑。中国人民大学数据工程与知识工程教育部重点实验室在数据库基础研究领域底蕴深厚,作为国内最早开展数据库相关研究的实验室,目前已经获得了国家科学技术进步二等奖、教育部科技进步一等奖等殊荣。
研究背景
时态数据主要指随时间推移不断发生变化的数据,例如温度、账户余额等数据。时态数据在现实生活中非常普遍,而在金融场景下,在数据库层面时态数据管理尤为重要。例如,金融审计时需要获取2018年11月08日至2018年11月10日的账户余额变动情况。如果通过传统数据库(RDBMS)中的普通关系表进行账户余额管理(如图1所示),账户余额变动不会被维护,因而上层应用需要通过日志等形式来额外记录余额的每次变动,这会大大提高应用复杂度;而采用如表2所示的时态数据表,余额的变迁被原生维护在数据库中,即可准确获取到余额变动数据(表中标红数据)。
系统简介
结合TDSQL系统的特点,研究团队提出并实现了一个轻量且高效的全时态数据库系统,该系统可以在保留原有TDSQL强劲的OLTP处理性能的同时,通过巧妙的系统设计,提供了内建的时态数据管理能力(如图2所示)。
图2 系统概览
TDSQL全时态数据库系统创新性地采用了一种混合存储模式,来对时态数据进行管理。系统将时态数据拆分为当前数据和历史数据,针对不同的数据类型,分别采用不同的存储策略。当前数据管理模块,采用了基于MVCC(多版本并发访问控制协议)设计的数据库所普遍采用的段页式结构,并且专门开辟回滚段,来对更新或删除操作产生的旧版本进行暂存。在回滚段中暂存的数据会在数据库进行资源回收操作(如MySQL中的Purge和PostgreSQL中的VACUUM等)时,迁移到历史数据管理模块,这个过程被称为数据转储。这是一种异步的转储策略,因而几乎不会造成性能损耗。历史数据存储模块,通过k-v格式来进行组织,可以大幅度缩小存储开销。由于一个数据项会存在多个历史版本,而这些历史版本会在某些属性上存在一样的值,例如表一中的James被重复四次。因此,在历史数据存储模块中,系统将每一个版本转化为一条k-v,并且只存储相较于上一个版本发生变化的属性值。
系统对时态查询处理逻辑进行了针对性设计与优化。通过专门的时态查询编译器,部分时态查询条件(如有效时间查询)会被重写并拼接到WHERE条件中。而对于事务时间查询,系统将其查询条件转化为了内嵌的可见性判断过程,从而使得时态查询所获取的数据满足事务一致性的要求,保证数据的准确性,这点在金融场景下显得尤为重要。另外,通过持久维护事务状态,系统可以快速获取到事务的执行状态,结合时态数据,即可原生支持事务级数据闪回等实用操作。对于历史数据,系统利用k-v存储的特性,可以根据时间条件快速定位到所需数据版本,具备了较好的时态查询性能,且在SQL语句的写法上方便用户直接使用SQL语句进行查询。
系统体现了HTAC(HybridTransaction / Analytical Cluster,混合事务/分析集群)这一新型的系统架构设计理念,如图3。TDSQL全时态数据库系统分为OLTP集群和OLAP集群,OLTP集群负责事务型业务,OLAP系统处理分析型业务,提供历史数据的查询分析等功能。通过统一路由模块根据查询语句、查询操作的语义将SQL发送到对应集群进行处理。由于时态数据查询等负载需要占用大量系统资源,这种拆分的系统设计可以尽量影响减小生产系统受到的性能影响。其次,历史数据量级较大,OLAP集群通过扩展存储的方式,即可实现历史数据的无限存储。
图3 T-TDSQL全时态数据库系统架构图
论文贡献
系统测试
通过TPCC测试基准,论文展示了时态数据管理对原有系统性能的影响情况。如图3所示,在256、512、1024个数据仓库的场景下,基于TDSQL实现的全时态数据库系统的系统性能相较于原始TDSQL下降率不到10%,领先于其他基于传统关系数据库实现的时态数据库系统。
图3 TPCC测试结果
另外,基于真实的批处理业务场景,论文展示了系统在实际业务场景下的表现。如图4所示,通过连续30天对比原始系统和新型全时态数据库系统(T-TDSQL)在处理该业务时所需的执行时间,实验结果展示腾讯全时态数据库系统在简化业务应用开发的同时,可以缩短近一半的业务执行时间。
图4 实际业务场景测试
对于该论文,VLDB评审委员会做出如下点评:This paper extends the TDSQL system from Tencent for temporal datamanagement. A new temporal data model is proposed with optimizedimplementation. Extensive experimental study has been conducted to compare theperformance with existing temporal database systems over benchmarks and realdata.
TDSQL全时态数据库的价值和意义
TDSQL全时态数据库核心价值观是“历史数据富有价值”,核心理念是“为数据赋能”,因而系统提供了如下特性:
TDSQL全时态数据库的意义主要体现在功能和成本两个方面。从功能角度看,TDSQL全时态数据库(用T-TDSQL表示)可以支持如下功能特性:
致谢
本项目在腾讯TEG计费平台部立项,研究内容和实现过程得到中国人民大学数据工程和知识工程教育部重点实验室和腾讯公司的参与和支持,特别向项目参与人、支持者表示感谢。