mysql 备份数据库结账_用余额快照秒级导出实现财务报表
【思考点滴】
作者 : 杨考 微信号 : 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 备份数据库结账_用余额快照秒级导出实现财务报表相关推荐
- mysql 备份数据库结账_年度结转问题综合解答(转)
1:备份还 是备份(用的很多操作是没有办法反结帐或反操作的,可以用恢复有方式返回到前一个操作状态) 备份方法: 1:用用友自带工具备份: 系统管理--admin(或帐套主管)注册-- 帐套--输出(选 ...
- mysql 备份数据库结账_简单的结账功能(可用于各种结账)
只要消费就要进行结账,自己写的结账功能. 这个也是要连接数据进行修改的,比如购买了东西,写入了数据库,结账结束后,自然要把数据库进行清空,将结账的钱写入数据库,进行保存. 和上一个随笔相连,同样做一个 ...
- mysql 备份如何使用_如何使用命令来备份和还原MySQL数据库
数据库在使用当中都会有数据库备份工作,当数据库发生严重错误无法启动,或者数据丢失时可以及时有效地恢复数据.那么多备份就简单介绍如何使用命令来备份和还原MySQL数据库. 备份数据库 使用mysqldu ...
- mysql备份数据库语句6_13.4 MySQL用户管理;13.5 常用sql语句;13.6 MySQL数据库备份恢复...
扩展 : SQL语句教程 什么是事务?事务的特性有哪些? 根据binlog恢复指定时间段的数据 mysql字符集调整 使用xtrabackup备份innodb引擎的数据库 innobackupex ...
- mysql备份数据库某表格_MySQL备份:使用自动轮换表格备份,轻松恢复部分/完整数据库...
MySQL备份:按表自动轮换备份,易于恢复部分/完整数据库 这是一个MySQL备份脚本,可以采用压缩格式的表格备份(每个数据库的每个表的单个备份文件). 它还提供了自动轮换旧的备份文件. 备份脚本分别 ...
- mysql备份数据库怎么还原数据库文件_mysql如何备份和还原数据库文件
MySQL使用命令备份和还原数据库 这篇文章主要介绍了MySQL使用命令备份和还原数据库,本文使用Mysql内置命令实现备份和还原,比较简单,需要的朋友可以参考下 数据库在使用当中都会有数据库备份工作 ...
- mysql 备份数据库原则_MySQL数据库备份方法说明
MySQL数据库备份方法说明 更新时间:2007年07月29日 17:52:57 作者: 在数据库表丢失或损坏的情况下,备份你的数据库是很重要的.如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最 ...
- mysql 点赞数据库设计_基于redis实现的点赞功能设计思路详解
点赞其实是一个很有意思的功能.基本的设计思路有大致两种, 一种自然是用mysql等 数据库直接落地存储, 另外一种就是利用点赞的业务特征来扔到redis(或memcache)中, 然后离线刷回mysq ...
- mysql 导入数据库sql语句_mysql中导入数据与导出数据库sql语句
本文章来详细介绍关于mysql中导入数据与导出数据库sql语句,在mysql中常用的导入与导出数据的命令有source与mysqldump大家可参考. 1.例1:连接到本机上的MYSQL 首先在打开D ...
最新文章
- SAP SD基础知识之输出控制(Output Control)
- ubuntu source
- idea的logback的getter和setter方法失效
- Github标星59.7k:用动画的形式呈现解LeetCode题目的思路
- 字符数据类型转换代码
- .Net Core 读取文件时中文乱码问题的解决方法
- 【Flink】flink highavailabilityservices 源码解析
- java csv 单元格格式_Java读写CSV格式的文件
- SQL_drop删除表、数据库
- 数据库sql脚本--省市县生成
- 小程序加入人脸识别_微信小程序怎么实现人脸识别
- 神经猫java代码_纯HTML5制作围住神经猫游戏-附源码下载
- WEB服务器的配置与管理
- 计算机初学者先学什么语言,计算机语言入门先学什么?
- 安卓蓝牙操作+蓝牙工具类
- 行业分析-全球与中国3D自动X射线检测(AXI)市场现状及未来发展趋势
- 工业物联网案例:城市供水管网渗漏监测预警系统
- 博科 SAN交换机配置文件备份和恢复(华为SNS系列交换机为例OEM博科)
- 再度公开少林内修心法 易筋经和洗髓经 欢迎转载 让全人类共享学习 过得更健康
- 【NOIP2014模拟11.2A组】福慧双修
热门文章
- 【clickhouse】clickhouse Exception: Table is in readonly mode
- [Flink] Flink运行报错Container released on a *lost* node
- 60-30-012-使用-Kafka不停机删除topic数据(自动建立topic)md
- 【Yarn】Yarn 命令详解
- Spring boot : @PostConstruct @PreDestroy
- java之GC日志该怎么看
- 用了这么久 IDEA,你真熟悉它的自动补全功能吗?
- 从0到1带你手撸一个请求重试组件,不信你学不会!
- 记一次线上Redis高负载排查经历
- 后端接口如何提高性能?从MySQL、ES、HBASE等技术一起探讨下!