【思考点滴】

作者 : 杨考  微信号 : devin_cn_hd_09_16

做结算的,不做余额快照,那是不能的事情

仅将自己的实践分享出来,希望能帮到更多结算的工作人员和对结算感兴趣的人员

目标:用余额快照完成资金的无缝对接+财务报表秒级提取

按指定的时间段【日、月、年、或者任意时间段】、指定账户、指定子账户、指定城市、指定订单类型【业务】、指定交易类型统计相应的金额数据、交易频次、出入账金额。

1. 快照类比简介

似水流年,回忆过去,照片里有我们年轻的身影,照片可以帮我们找回曾经的记忆。

这里的照片就是当时的一个快照。

账户的余额是实时在变化,我们怎么制作账户余额的快照呢?

2. 业务、数据和需求

2.1 【业务】特征介绍

2.1.1 外卖商户端账户特征

2.1.2 账单

账单包含 : 账户,户名,交易日期,交易机器标号、交易类型、起始金额、发生金额、交易完成后金额 ...

2.2 【需求】对账关注维度

2.3 【紧急需求】实时的、隔日的、月度的余额随时导出

3. 设计

3.1 常见余额快照设计方案

3.2 余额快照准确性的践行之路

一步留神,初始设计就选择了方案1,指定时间对账户的余额直接进行SUM

3.3 余额快照制作思路

可以选择制作期初余额,或者期末余额

如下是以”期初余额制作”图示,相应的”期末余额制作”方法相似。

余额快照准确性校验,”T时刻期初余额”+”N秒内交易入账金额”-”N秒内交易出账金额”=“T+N时刻期初余额”

3.4 余额快照制作注意点

3.5 多维度信息存储-数据库动态字段扩展设计

3.5.1 基本信息【含账户、账期、子账户金额、城市 ...】

3.5.2 动态可扩展字段【一种格式化的json数据】

如上的detail_info字段,其中包含了最细的统计维度【trade_type交易类型、flow_type出入账类型】和基础数据【金额、交易笔数】

3.5.3 可扩展性说明

1、格式化的detail_info,以json方式存储,存储了交易类型金额、交易类型数量、当日总的出账金额、当日总的入账金额

2、为格式化的json提供了一套生成深层次信息的lib函数,同时也提供了一个将深层次json扁平化的lib函数。

例如上如上的 $detailInfo[‘trade_type’][29][‘amount’]   完成到 $detailList[‘trade_type_29_amount’] 的互转

3、统计维度可扩展

和trade_type, flow_type 并列的统计维度,直接加入一个类似的信息即可

属于 trade_type, flow_type 的上一级,即直接在将这几个维度再归类到不同的维度下,如加入订单类型维度,按订单类型,可以导出某种订单类型下的指定交易类型的数据

4. 发现的问题

4.1 T日期初余额和T-1日期末余额对不齐

4.2 账单中子账户类型错误

4.3 原始数据错误,金额更新有问题

4.4 余额更新没有按照实际的交易次序进行更新【先交易先更新余额的原则】

4.5 余额更新跨日,且更新延时严重

5.收益

5.1 通过余额快照数据准确性,发现了深层次的业务设计问题

5.2 余额快照的数据现在已经完全准确,余额快照的准确性已经成为结算的一张王牌。

5.3 余额快照统计的维度,更贴近于财务报表的维度,现在大部分的导数已经停用了,线上秒级完成定制的余额账务信息导出,比传统的财务报表导出快很多【N天】

5.4 余额快照可以对线上业务进行监控

mysql 备份数据库结账_用余额快照秒级导出实现财务报表相关推荐

  1. mysql 备份数据库结账_年度结转问题综合解答(转)

    1:备份还 是备份(用的很多操作是没有办法反结帐或反操作的,可以用恢复有方式返回到前一个操作状态) 备份方法: 1:用用友自带工具备份: 系统管理--admin(或帐套主管)注册-- 帐套--输出(选 ...

  2. mysql 备份数据库结账_简单的结账功能(可用于各种结账)

    只要消费就要进行结账,自己写的结账功能. 这个也是要连接数据进行修改的,比如购买了东西,写入了数据库,结账结束后,自然要把数据库进行清空,将结账的钱写入数据库,进行保存. 和上一个随笔相连,同样做一个 ...

  3. mysql 备份如何使用_如何使用命令来备份和还原MySQL数据库

    数据库在使用当中都会有数据库备份工作,当数据库发生严重错误无法启动,或者数据丢失时可以及时有效地恢复数据.那么多备份就简单介绍如何使用命令来备份和还原MySQL数据库. 备份数据库 使用mysqldu ...

  4. mysql备份数据库语句6_13.4 MySQL用户管理;13.5 常用sql语句;13.6 MySQL数据库备份恢复...

    扩展 : SQL语句教程 什么是事务?事务的特性有哪些? 根据binlog恢复指定时间段的数据 mysql字符集调整 使用xtrabackup备份innodb引擎的数据库  innobackupex  ...

  5. mysql备份数据库某表格_MySQL备份:使用自动轮换表格备份,轻松恢复部分/完整数据库...

    MySQL备份:按表自动轮换备份,易于恢复部分/完整数据库 这是一个MySQL备份脚本,可以采用压缩格式的表格备份(每个数据库的每个表的单个备份文件). 它还提供了自动轮换旧的备份文件. 备份脚本分别 ...

  6. mysql备份数据库怎么还原数据库文件_mysql如何备份和还原数据库文件

    MySQL使用命令备份和还原数据库 这篇文章主要介绍了MySQL使用命令备份和还原数据库,本文使用Mysql内置命令实现备份和还原,比较简单,需要的朋友可以参考下 数据库在使用当中都会有数据库备份工作 ...

  7. mysql 备份数据库原则_MySQL数据库备份方法说明

    MySQL数据库备份方法说明 更新时间:2007年07月29日 17:52:57   作者: 在数据库表丢失或损坏的情况下,备份你的数据库是很重要的.如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最 ...

  8. mysql 点赞数据库设计_基于redis实现的点赞功能设计思路详解

    点赞其实是一个很有意思的功能.基本的设计思路有大致两种, 一种自然是用mysql等 数据库直接落地存储, 另外一种就是利用点赞的业务特征来扔到redis(或memcache)中, 然后离线刷回mysq ...

  9. mysql 导入数据库sql语句_mysql中导入数据与导出数据库sql语句

    本文章来详细介绍关于mysql中导入数据与导出数据库sql语句,在mysql中常用的导入与导出数据的命令有source与mysqldump大家可参考. 1.例1:连接到本机上的MYSQL 首先在打开D ...

最新文章

  1. SAP SD基础知识之输出控制(Output Control)
  2. ubuntu source
  3. idea的logback的getter和setter方法失效
  4. Github标星59.7k:用动画的形式呈现解LeetCode题目的思路
  5. 字符数据类型转换代码
  6. .Net Core 读取文件时中文乱码问题的解决方法
  7. 【Flink】flink highavailabilityservices 源码解析
  8. java csv 单元格格式_Java读写CSV格式的文件
  9. SQL_drop删除表、数据库
  10. 数据库sql脚本--省市县生成
  11. 小程序加入人脸识别_微信小程序怎么实现人脸识别
  12. 神经猫java代码_纯HTML5制作围住神经猫游戏-附源码下载
  13. WEB服务器的配置与管理
  14. 计算机初学者先学什么语言,计算机语言入门先学什么?
  15. 安卓蓝牙操作+蓝牙工具类
  16. 行业分析-全球与中国3D自动X射线检测(AXI)市场现状及未来发展趋势
  17. 工业物联网案例:城市供水管网渗漏监测预警系统
  18. 博科 SAN交换机配置文件备份和恢复(华为SNS系列交换机为例OEM博科)
  19. 再度公开少林内修心法 易筋经和洗髓经 欢迎转载 让全人类共享学习 过得更健康
  20. 【NOIP2014模拟11.2A组】福慧双修

热门文章

  1. 【clickhouse】clickhouse Exception: Table is in readonly mode
  2. [Flink] Flink运行报错Container released on a *lost* node
  3. 60-30-012-使用-Kafka不停机删除topic数据(自动建立topic)md
  4. 【Yarn】Yarn 命令详解
  5. Spring boot : @PostConstruct @PreDestroy
  6. java之GC日志该怎么看
  7. 用了这么久 IDEA,你真熟悉它的自动补全功能吗?
  8. 从0到1带你手撸一个请求重试组件,不信你学不会!
  9. 记一次线上Redis高负载排查经历
  10. 后端接口如何提高性能?从MySQL、ES、HBASE等技术一起探讨下!