为数据赋能:腾讯TDSQL分布式金融级数据库前沿技术 (4)

对账步骤1—总账对账:首先读取给出对账时间段[s_start,s_stop]内的所有账户表数据块,对每个数据块内数据采用与传统对账方式类似的公式来确认账户情况,即进行“总期末余额-总期初余额=总交易变动”试算[2],总期初余额代表s_start时的总余额,总期末余额代表s_stop时的总余额,总交易变动代表每块内账户对应产生的流水,如果有数据块内的总账不平,意味着有细账错误,因此要进行步骤2、3所描述的精准对账。

对账步骤2—精准对账—对账过程:执行如下SQL,将账户余额块和对应账户流水块进行“快照差连接”,返回结果集中每条记录将含有{交易前余额,交易后余额,交易变动}。对应的执行效果图下图所示:

img

img

精准对账示意图

对账步骤3—精准对账—精准之意:对步骤2结果里的每一条返回记录进行“交易后余额-交易前余额=交易变动”的试算[3](After-Before=Change),即可确认交易是否有误。如果有不满足此等式的情况存在,即为错误交易。

错误交易主要分为账户表错误和流水表错误两种。例如,上图中,结果集中第2条元组,不满足试算公式,表明流水ID为2的交易进行了错误的帐户余额更新或流水记录的交易变动值出错。结果集中的第4条元组,Change字段的值为NULL,代表该条交易的流水缺失。通过上图中的表,我们对各种错误情况进行总结,这些错误,都需要在对账过程中进行报警。

3.有效时间的时态类应用

基于T-TDSQL的全时态核心技术,本次分享还从双时态的角度对典型应用做了介绍。如下图所示。

img

img

4.数据安全类应用

基于历史状态查询这一特性,T-TDSQL系统在数据订正、历史追踪等方面,提供灵活强大的数据安全保障功能,可以大大简化和加快审计、对账等业务。

查询时间段内插入的数据,用于数据统计和追踪,如统计新开账户、异常记录何时被添加等。

查询时间段内删除的数据,在安全保障和数据统计等方面作用显著,如恢复误删的数据、统计销户人数等。

查询时间段内更新的数据,能够追踪数据异常的发生时间和发生异常前的数据,用于数据异常的修复。

综合查询所有状态的历史态数据,在数据重演方面,可以辅助灾后恢复,或用于线下演练;数据统计方面,因支持任意时空节点的数据计算,对对账等业务大有裨益;安全保障方面,简化了错误数据、误删数据的追踪和恢复。

如下是一些安全方面的示例:

img

除此之外,基于全时态态数据,实现数据重演、更有价值的数据分析和挖掘、使用AI技术对系统自动调优等成为可能。

五、T-TDSQL的核心理念,为数据赋能

为什么T-TDSQL要去实现全时态数据库?

原创技术的背后,是什么在驱动着T-TDSQL团队做出这样的一个全时态数据库系统?

这些问题,其实更为重要。挖掘这些问题的原因,为倡导原创而努力,当是TDSQL团队致力于技术分享时更看重的价值因素。

在TDSQL团队看来,“数据富有价值,历史数据富有价值”。在业务当中,挖掘数据的价值是非常重要的一环,这也是很多人在思考的内容,认为任何数据都有价值是很有意义的。

因此,T-TDSQL项目的思考之后的观点是“Historical data are valuable. Business is a sword, Technology is only ashield.”。那么,什么是盾?什么是剑?盾和剑之间有什么关系呢?

在TDSQL看来,技术只是一个防守工具,用于把梦想变成现实。梦想是技术人想利用各种高大上、高精尖的技术解决现实问题的美好愿景,诸如分布式、一致性、快照、RDMA、NVM、AI、全数据挖掘等各种技术的炫酷使用。业务只是一个进攻的工具,用于发现梦想。TDSQL并不倡导业务为王的观点,而是左手盾右手剑,两手都要硬。但仅是左手盾右手剑,行走在技术的江湖,这只能成就技术人行侠仗义的梦想。其背后,还缺少灵魂的支柱。

img

而历史数据富有价值,在(金融/腾讯/互联网/一切…)业务中,挖掘数据的价值,更是富有意义。

但是,百尺竿头更进一步。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyzggg.html