最新要闻
- 超划算!冷酸灵泵式牙膏5件套39元发车(送牙刷+漱口水)
- 天天热点!M.2 SSD秒变移动硬盘!酷冷至尊神钥Air图赏
- 焦点速讯:亚航被曝行李超重5公斤补收1807元:拍照被威胁不要上飞机
- 【全球新要闻】极氪官方二手车上线:不以盈利为目的 只收12万公里0事故车辆
- 精选!安卓“女皇”王雪红爆料苹果MR头显最快年中发布:HTC不担心竞争
- 法系车疯狂降价 12万买C级车雪铁龙C6!有销售一天卖车150多台
- 热点聚焦:豆瓣评分仅6.0:《蚁人3》周末北美票房暴跌61%
- 资讯:淄博烧烤店开门一分钟坐满大学生:组团去山东撸串火出圈
- 699元起 荣耀手表GS 3i发布:14天长续航、支持血氧监测
- 《巫师3》叶奈法玩偶推出:真人尺寸 能替换服饰
- 当前快看:北京故宫三八节门票预定时间是几点?
- 索尼推出IMX611景深传感器:实现高精度物距测量
- 天热来两件!220g重磅精梳棉:放克男士纯色T恤20元大促
- 小米手机在家就能自助检测!支持充电、网络等12项自检
- 全球快报:北京、郑州等14个省会级城市气温创今年来新高:或挑战历史最暖纪录
- 和14 Pro一样!iPhone 15全系登岛:苹果又搞了新配色
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
数据漂移问题及解决方案
什么是数据漂移?
数据漂移是 ODS 数据的一个顽疾,通常指 ODS 表的同一个业务日期数据中包含前一天或后一天凌晨附近的数据或者丢失当天的变更数据。
(资料图)
实际场景
公司主营互联网金融业务,因此有了一张数据量庞大的申请人信息记录表。这张表里的时间字段非常多,因为整个业务场景涉及到好几段流程:
客户提交申请贷款请求 → 我们接受申请贷款请求 → 进入决策引擎 → 决策引擎调用第三方数据系统 →决策引擎返回结果报告 → 匹配发送记录和返回报告 → 反馈给客户发送结果
可见每一段子流程(子域)里都会有相应的时间字段。 选择使用客户的提交申请时间来做分区字段,也是为了贴近客户的实际体验。即某一天的申请记录明细就应该是那一天客户提交给我们的所有申请信息。实际上并给如此,主要有两种场景导致了异样的发生:
1、通道延迟
我们接受到客户的申请贷款的请求后,到提交给核心信贷系统以及决策引擎系统这段时间理论上是很快的,秒级响应。但某些时候因为网络波动或者服务器故障,会导致申请积压,卡在某一环节,如果正好卡在落库之前,这时客户在 T 天提交贷款申请请求,积压解决后申请记录落库实际发生在 T+1 天。导致 T+1 天凌晨做ETL 数据同步时这批申请信息记录获取不到,最终数据平台丢失了一部分数据。
2、特殊业务场景
有一类特殊的业务场景叫”先提后审“,客户提交一种特殊的申请贷款请求后,需要客服审核内容,审批通过后才可实际发送。如果客户在客服下班时间段提交了这种申请贷款请求,那么实际要到第二天客服上班后才会实际被提交,落库也发生在客服审批之后。同上一种情况,也会发生丢失数据的情况。
解决方案
1、延迟重传
某些公司采用了很粗暴的解决方案,T+1 天允许 T 这天的数据存在数据漂移的现象。但是在 T+7 天,对 T天数据进行重传,恢复这些丢失数据,保证最终状态的数据是完整的。这种方式跟公司业务也是跟契合的,因为申请贷款的状态会在 7 天内做更新(因为决策引擎系统返回的状态报告也会有几天的延迟,约定 7 天内不返回报告计为未知状态不再更新)。这种方式本意是用作数据更新的,结果顺带缓解了数据漂移。(不算解决是因为 T+1 天到 T+7 天,数据仍然有丢失,不完美)
2、更合理的时间切分字段
既然按照申请贷款时间戳切分,会出现数据漂移,那么就考虑换一个业务场景的时间戳。在申请贷款这个业务场景下,选择放款时间作为时间切分字段。放款一旦发生,就不会变化;放款作为核心关键功能,除非巨大故障也极少发生延迟现象。(当然真的发生了后期再补数据,因不可抗拒因素产生的问题是无解的,只要做到可补救即可)。如果系统有一个统一的放款服务,这个字段的一致性也是有保证的。
但公司没有采用这种切分方式,我的理解是有两个原因:1)存在月结客户,并不是所有客户的业务都是先申请再放款的,一些特殊业务大客户是先放款再申请的。针对这些客户,并不存在真正的放款操作。2)目前放款服务是散落在系统的各个地方的,并没有统一管理起来,导致放款这个操作本就不具备业务逻辑上的统一性。
针对问题 1),其实是有解的,对月结客户仍然可以走一遍放款流程,记录下一个“伪放款时间”,甚至真放款也无不可,无非额度扣成负数。当然公司目前没有这么操作,针对月结客户,额度是直接锁死的。月结客户的还款计划依赖月度的离线计算脚本。这样的操作同时带来了数据不统一的问题,在线客户的账单来自交易记录(放款,系统操作),而月结客户的账单来自申请记录统计(离线统计,脚本计算)。因为这种数据源的不统一,公司的核心账务计算一直不如意,实在是一个遗憾。
针对问题 2),公司的线上申请贷款业务发展了*年,这么多年里新增了许许多多的业务模块、功能、乃至针对大客户的特权特殊服务。放款操作并不统一,甚至存在一小部分客户是非系统操作,而是由计算脚本放款的。不统一的放款服务也带来了一定的混乱局面,实为另一个遗憾。所幸这个问题以及在推进解决中,公司已经在规划一个放款整体的服务,作为各业务线的中台应用,解决这个历史顽疾。当然放款时间作为切分字段,针对申请贷款业务来说是很合适的。可惜并不是所有业务场景下都能找得到这样的业务时间。很多公司的情况有很多许多业务功能,使用单一的业务时间会遗漏很多其他过程的变化记录,比如很常见的电商业务,就有下单、支付、退款、售后等过程,并不适合以某一单一业务时间做切分字段。
3、前后冗余
既然取一天的数据会有数据漂移现象且发生在凌晨,那么自然而然就有一种方式:我们多向前一天要一部分数据,也向后一天多要一部分数据。根据经验,一般是15 分钟。保证数据只多不少,切分时按照需要的业务时间再过滤,这样可以解决那些因为延迟造成的数据漂移,但同时也带来了问题:如果多获取了 T+1 天的一些更新变化,会导致 T 天的最终状态没有被保留,最终存储在 T 天的数据实际是T+1 天凌晨的状态。这对下游的相关统计会造成一些误差。另外,上边提到的特殊业务场景也并没有解决。
4、多时间字段共同限制
这一部分的感受不是很深刻,按照一些文章的说法:根据日志时间冗余前后数据,然后用修改时间过滤非当天数据,这一步几乎和之前描述一样,保证系统原因的遗漏不发生;根据日志时间冗余后一天数据的部分,按照主键以日志时间升序取第一条,为了获取最接近 T 天状态的数据;将 1,2 步骤的数据做全外连接,限制业务时间来获取 T 天数据。
相对而言,贷款申请业务是一种比较单一、简单的业务场景。而简单的业务场景,解决方案自然也比较简单粗暴。目前**某些公司采用的 T+7 重传,很好地解决了数据更新与数据漂移的问题。虽然我认为统一的放款时间做时间切分会更合理,对财务计算更更友好。
数据漂移问题及解决方案
全球新资讯:(数据库系统概论|王珊)第十章数据库恢复技术-第三节:故障种类
今日热搜:一次Java服务内存过高的分析过程
超划算!冷酸灵泵式牙膏5件套39元发车(送牙刷+漱口水)
天天热点!M.2 SSD秒变移动硬盘!酷冷至尊神钥Air图赏
焦点速讯:亚航被曝行李超重5公斤补收1807元:拍照被威胁不要上飞机
【全球新要闻】极氪官方二手车上线:不以盈利为目的 只收12万公里0事故车辆
精选!安卓“女皇”王雪红爆料苹果MR头显最快年中发布:HTC不担心竞争
环球视点!统一日志输出打印POST请求参数
法系车疯狂降价 12万买C级车雪铁龙C6!有销售一天卖车150多台
热点聚焦:豆瓣评分仅6.0:《蚁人3》周末北美票房暴跌61%
资讯:淄博烧烤店开门一分钟坐满大学生:组团去山东撸串火出圈
699元起 荣耀手表GS 3i发布:14天长续航、支持血氧监测
《巫师3》叶奈法玩偶推出:真人尺寸 能替换服饰
全球速看:stegsolve与zsteg的使用
环球即时:用线性二次模型建模大型数据中心,基于 MPC 进行冷却控制
环球头条:2023,大前端技术趋势及小程序未来分析
全球球精选!如何使用JDBC将Cordova应用程序连接到MySQL数据库?
当前快看:北京故宫三八节门票预定时间是几点?
索尼推出IMX611景深传感器:实现高精度物距测量
天热来两件!220g重磅精梳棉:放克男士纯色T恤20元大促
小米手机在家就能自助检测!支持充电、网络等12项自检
全球快报:北京、郑州等14个省会级城市气温创今年来新高:或挑战历史最暖纪录
和14 Pro一样!iPhone 15全系登岛:苹果又搞了新配色
全球通讯!旖旎是什么意思
当前滚动:hutool XML反序列化漏洞(CVE-2023-24162)
焦点热讯:【MRTK】解决 Unity.IL2CPP.Building.BuilderFailedException: Lump_libil2cpp_vm.cp
记录--uni-app中安卓包检查更新、新版本下载、下载进度条显示功能实现
焦点信息:基于datax抽取mysql数据到HDFS
阅读并手撸JS版Naive Ui Admin骨架
京东客服确认:百亿补贴商品不支持价保!
世界消息!“点对点”自动驾驶 红旗发布E702官图:百公里人工接管小于0.5次
速讯:2499元 荣耀观影眼镜发布:轻至80g、500nit入眼亮度
世界实时:荣耀最强旗舰!一图了解荣耀Magic5至臻版:6699元
环球焦点!超薄+四种体验:冈本Okamoto金装系列1.7元/枚大促
要闻:拖胆选号怎么玩_拖胆选号
Django-2
当前观点:【建议收藏】超详细的Canal入门,看这篇就够了!!!
当前快看:3.6 C提高3day
本地硬盘文件映射公网 cpolar轻松做到
顶象中标GovHK香港政府一站通数字化项目
每日播报!《消费者报告》公布最不可靠的10款电动车:特斯拉双车上榜
微头条丨荣耀Magic 5系列亮相:曲面屏也能拥有直屏体验
天天精选!女子算命核桃树挡姻缘 家人将树砍掉:当事人称要相信科学
安装Redis6.2.7主从哨兵集群教程
当前视点!NTP对时服务器(NTP电子时钟)重要参数指标表
焦点速讯:接口安全性问题02——jwt身份验证与授权
短讯!熬夜后心里咯噔一下要注意:有三大风险
全球快讯:浪费人才?酒店回应去一本院校招聘洗碗工:2千工资对应发展空间广
环球观热点:努比亚Z50 Ultra缩小系统固件:仅8个不可卸载应用
【天天快播报】特斯拉失控、单踏板风波不断 为何还买?吉利李书福:建议大家买国产新能源汽车
2月XGP最佳游戏玩家投票:俄罗斯3A大作《原子之心》荣获第一
A/B 实验避坑指南:为什么不建议开 AABB 实验
观速讯丨.NET7依赖注入
3月6日译名发布:乔治·桑托斯
黄鳝吃什么东西
看点:699元 小米米家首款智能钢琴灯发布:雷达感应自动开关灯
天天微资讯!降低水产品检测标准!日本坚决核污水排海 100%移除放射性元素做不到
专家呼吁每天省杯咖啡提前规划养老:背后商业版图显现 网友无语满嘴跑火车
一个摄像头就能让虚拟人唱跳rap:抖音即可玩
有哪些值得收藏的运营思维导图?
环球速看:在工作中最容易犯的3个大忌
环球头条:1-基础入门
每日热门:网络安全(中职组)-B模块:Windows操作系统渗透测试
当前资讯!你也能成为“黑客”高手——趣谈Linux Shell编程语言
每辆都是碰撞测试车 特斯拉全球首创真实碰撞测试系统
当前热点-惊蛰习俗有哪些?专家科普:吃梨、吃“懒龙”了解下
【世界报资讯】33万买奥迪A7L!上汽回应“内购价最高优惠16万”:正严查信息外泄
马斯克:曾对加密货币感兴趣 现在钟情于AI
《数据万象带你玩转视图场景》第一期:avif图片压缩详解
每日热讯!计算两个字符串的相似度
2023年兔年金银币价格表(2023年03月06日)
199元!小米推出米家分体露营灯:Type-C接口 满电亮100小时
高速公路“见缝插针”超车致事故 司机:我莽撞了
每日动态!魅族史上最大规模!魅族20系列发布会定点上海梅赛德斯奔驰文化中心
全球滚动:预计上涨0.16元/升!国内油价将于17日24时起再调整
全球视讯!《卧龙:苍天陨落》捏人系统受盛赞 胸部拉到最大也不违和
关于情侣的四字成语有哪些?关于情侣个性签名大全
专业人才入库证书有什么作用?从专业人才走向管理心得体会
花羊羊是谁的妈妈?花羊羊为什么没和村长在一起?
海麻线是什么东西?海麻线的营养价值及功效
MySQL安装入门第一篇
【SpringBoot】AOP默认的动态代理
前端设计模式——工厂模式
电脑怎么设置休眠模式?休眠和待机有什么区别?
洗衣机不进水是哪里的问题?洗衣机不进水怎么处理?
电脑mac地址怎么更改?电脑mac地址查询方法
网件路由器怎么恢复出厂设置?网件路由器哪款性价比高?
全球头条:鼠标是无法识别的usb设备_鼠标成为无法识别的USB设备 怎么办
苹果笔记本好用吗?苹果笔记本换电池需要多少钱?
百度地图怎么看实时街景?百度地图怎么看历史导航轨迹?
全球短讯!极氪汽车被指销售欺诈 有车主坐在体验店门口集体维权
雷军大会发言:小米汽车预计明年上半年量产 一定把车造好!
极致豪华!长城魏牌蓝山内饰官图发布:35万选它还是理想L8
每日资讯:一文看懂2023年CPU如何选:AMD锐龙7000X3D游戏性能封神
阿里拍卖上线湾流G450公务机!博主:近几年最具性价比的一架
全球观天下!055期暗皇福彩3D预测奖号:组选6码参考
焦点报道:【个人杂谈】大体重程序员如何减肥?(个人总结向)
Python、C++、Swift或任何其他语言会取代Java吗?为什么?
速递!koreanDollLikeness_v10模型下载及使用