关于数据库:TDSQL-全时态数据库系统-典型案例

47次阅读

共计 1565 个字符,预计需要花费 4 分钟才能阅读完成。

经典案例

增量抽取、增量计算等都是 T -TDSQL 的经典案例。如下以增量计算为例,来剖析 T -TDSQL 在腾讯金融业务中的典型利用。

增量计算

基于 T -TDSQL 全时态数据存储的个性,咱们能够不便的进行增量式的数据查问、抽取和计算。

对于单表的数据增量抽取 / 计算[1],T-TDSQL 首先通过快照差读办法,获取对应与给出快照范畴的增量数据集,而后依据用户定义的计算规定,组合调用零碎内置的汇集函数,如 SUM,AVG,GROUP BY 等,实现增量计算的性能。历史上任何时间段内的的数据都能够通过增量计算的技术进行“增量抽取”。

对于多表增量计算,T-TDSQL 通过“快照差连贯”反对增量计算场景。即首先失去两个快照差汇合 R 和 S,而后通过连贯操作将两表合并,之后再应用汇集函数等实现计算。

本节通过在互联网金融中罕用的对账业务来对增量计算的原理和理论利用进行介绍。

对账业务

互联网金融行业对数据的准确性要求极高,而在互联网环境中,数据不统一或数据谬误时有发生,因而,通过对账来升高账户余额等数据谬误造成的危险非常重要。

在腾讯计费业务中,采纳将账户余额表 (user) 和账户流水表 (water) 按小时 / 天为周期进行比对的形式,来发现账户余额与交易流水的不统一景象,从而及时对谬误交易进行修改。

传统的对账采纳按固定时间段(如分钟 / 小时 / 天)为单位进行对账。如现对 2018 年 4 月 11 日的交易进行对账,首先须要失去 4 月 11 日期初账户余额表和期末账户余额表,以及当天的交易流水表;而后对账户表通过按用户 ID 分组,并计算每个用户的期末余额减去期初余额,记为后果 A,对流水表按用户 ID 分组,并将交易金额分组求和,记为后果 B;最初将每个用户的后果 A 和后果 B 进行比对,如果 A =B,则交易没有问题,否则该用户在当天的交易存在谬误。

对于按固定时间段对账,次要存在以下三个问题:

  1. 时效性差:对于谬误交易,不能立刻发现并反馈,提早了以固定时间段为单位的一段时间后能力发现错误。
  2. 对账不精准:定位谬误交易较简单。例如:如果用户在一天内产生的多笔交易,其中一笔呈现了谬误,通过按天对账的形式不能间接定位到具体的哪条交易呈现谬误,而只能定位到用户级别,即依然须要人工参加,将该谬误用户的当天交易都确认一遍,能力找到具体的谬误交易。
  3. 对账不灵便:按固定时间段对账,如以天为单位,则只能等这一天内的增量数据积淀下来,能力进行对账,如果有跨天对账需要(如昨天下午至今天上午),对账所用数据须要跨多个表能力执行,这可能扭转对账业务的流程。

    对账优化

基于本文提出的数据模型和增量计算方法,能够很好的解决按天对账所存在的问题。联合 3.1.2 中的示例,咱们给出在互联网金融的对账业务中,增量计算的理论利用。

T-TDSQL 能够基于增量计算的性能将账户余额表 (user) 和账户流水表 (water) 进行精准比对,进行流水级别的细粒度对账,从而即时发现交易谬误,并能够立刻定位到谬误的那一条交易,省去繁冗的谬误交易定位过程。

优化后的对账的核心思想是:总账算摘要、细账笔笔精。

优化后的对账的成果是:总账快对、细账准确、不受时限、任意对账[1]。

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

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

正文完
 0