【金融业分布式数据库选型及HTAP场景实践】作为数据基础设施的重要组成部分,数据库在其中扮演着重要的角色。近些年来,数据库整体发展也呈现出较之以往很大的不同。其一、是开源数据库受到更为广泛的关注,从多家机构的最新报告来看,开源数据库无论从产品数量还是受关注程度都超过商业数据库。开源这一新模式,正成为未来数据库发展的主流。其二、是云计算成为未来主要资源供给方式得到普遍共识。已经有越来越多的企业选择在云上构建基础环境,包括云上数据库的发展速度也远高于非云环境。据乐观估计,在未来5~10年云数据库将占据整体数据库市场的七成以上。此外,对迁移到公有云、使用多云环境等问题,也普遍被企业所接受。其三、是数据融合趋势,针对数据多场景应用,使用融合技术简化访问,提升效率。作为数据使用高地,金融行业一方面对数据库有着极高的要求,一方面又面临很多来自数据新的挑战,诸如海量规模、高并发、数据安全、实时分析等诉求亟待解决。分布式数据库的出现,迎合这一发展趋势,对于金融企业解决上述问题带来新的解决思路。本文从金融用户角度入手,对如何选择分布式数据库及选型后的最优实践进行阐述。

1. 金融业数据库选型背景
随着企业数字化转型深入,对于数据使用场景也呈现多元化趋势,正有越来越多数据被企业利用起来。金融行业作为数据库应用“高地”,这一趋势表现更为明显。同时我们也看到,近些年来数据库领域也发展迅速,有分布式数据库、多模数据库、云数据库为代表的产品不断涌现。这些新兴数据库在特定场景有很好的使用前景。基于上面两种趋势,金融行业很多企业都在面临选择数据库的问题。
1).选型技术层面要素分析
从技术角度来看,在数据库选型中有哪些要素需要考虑呢?下面以近期比较关注的分布式数据库的选型为例,说明下重点考量的技术要素。
分布式事务
分布式架构,自然会带来分布式事务的问题。由于需要跨节点的网络交互,因此较单机事务会有很多损耗。随之带来的是事务处理时间较长、事务期间的锁持有时间也会增加,数据库的并发性和扩展性也会受到影响。针对单笔事务来说,分布式事务执行效率是肯定会有降低的,分布式带来的更多是整体处理能力的提升。
性能
由于分布式数据库通常使用的二阶段提交和各节点之间的网络交互会有性能损耗,分布式数据库优势不是单个简单SQL的性能,而是大数据量的SQL查询,每个节点会将过滤之后的数据集进行返回,会提升性能,并且分布式数据库的优势是并发,大量的SQL并发也会比单机数据库强大,应用需要做分布式架构的适配,将串行执行机制尽量都改造成并发处理。对于含有需要节点间数据流动的SQL语句的事务,OLTP类的分布式数据库处理效率一般较差,事务处理时间会较长,事务期间的锁持有时间也会增加,数据库的并发性和扩展性也会受到影响。建议尽量改造存在跨节点数据流动的SQL语句(主要是多表关联)的事务。
数据备份
分布式数据库的一致性保证通过内部时钟机制所提供的全局时间戳,所有节点都会遵循该机制,所以备份恢复的增量也是基于全局时间戳,但是分布式数据库的备份解决方案最重要的标志为是否支持物理级的备份,物理级的备份会比逻辑的备份性能吞吐大很多,还有就是是否支持一些分布式备份方案,比如S3协议接口,是否支持压缩等功能。分布式数据库基本都具备备份和恢复方案,通常从备节点进行连续备份(全量+日志),恢复的时候指定节点进行恢复到指定时间点,整个过程可配置自动任务、自动执行。
高可用
分布式数据库大多都是基于多数派协议,同城双中心不适合多数派的要求,同城数据级多活建议采用三中心部署。如果同城主备可以采用集群级的异步复制,异地建议采用集群级的binlog异步复制,建议实例的主备节点设置在同城两个双活数据中心,仲裁节点三机房部署;异地灾备单独启实例与本地实例进行数据库间同步,也可以将本地备份文件T+1恢复到异地灾备。
数据一致性
分布式数据库大多都是通过获取全局时钟时间戳,采用二阶段提交,可以实现一致性的保证,分库分表架构对于事务的一致性,需要应用层考虑,比如通过合理的分区键设计来规避。部分分布式数据库对于跨节点事务目前还是实现的最终一致,对于全局一致性读,一般通过引入类似全局时间戳的组件统一管理全局事务,在数据库选型时可以重点关注厂商对这一块的实现。如果目前暂时无法提供全局一致性读的分布式数据库,对于要依赖分布式事务“中间状态”的业务,优先进行业务改造进行规避,其次通过合理的数据分片设计让其在单节点内完成。
数据分析
分布式数据库,多采用存算分离架构。针对数据分析场景,需要对数据从下层存储节点上移到计算节点,这对分布式数据库提出了更高的要求。一方面可通过算子下推等技术,减少需传输到计算节点的数量;一方面针对汇聚后的结果需要通过流式处理等方式,规避诸如OOM的问题;此外也可采用如MPP等并行处理技术,加速数据分析过程。
2).选型过程问题痛点分析
在选型过程中,会遇到来自以下几方面的痛点。
一是由于分布式数据库整体架构还比较新,也是近十年来逐步发展完善的。针对新型架构的诸多特点,包括厂商和用户还都在不断摸索积累之中,还需要有个长期实践的过程。此外,新架构也需要有个逐步成熟完善的过程。
二是大量产品来自国内数据库厂商,其发展周期相对较短,还需要在产品成熟度、稳定性、周边生态等方面不断完善。对于用户来说,一方面需面临产品多、技术栈多的现状;另一方面还需面对成熟度不足等问题,存在较多痛点。
三是近些年金融行业发展迅速,各种新的业态产品不断涌现,这些对作为底层数据基础的数据库也提出了更高的要求。
四是随着内外部环境的变化,自主可控等问题受到更多的关注。金融行业首当其冲,针对上述问题也需要引起足够的重视。在数据库选型问题上,也需要考虑这一因素。这无疑对用户选择带来一定困难。

2. 数据库选型技术架构
1).分布式路线分析
针对分布式数据库的发展路线,大体可分为两种:
分布式中间件
这种架构是从中间件路线演进而来。其采用存储与计算分离架构,底层采用标准单机数据库,副本间基于数据库主从复制机制。上层承担计算,并可将部分计算下推到存储节点执行。这种架构在分布式事务、全局MVCC等方面,往往存在一定难点,各厂商也有各自解决之道。
原生分布式
这种架构正是受到Google论文影响演进而来。其采用存储与计算分离架构,底层采用单机库(不一定是关系型),副本间采用分布式一致性协议完成复制,支持多数派提交。上层承担计算,并可将部分计算下推到存储节点执行。
2).重点需求满足情况
针对上述遇到的痛点,两类产品实现逻辑也所有不同。

3). 路线场景分析
从数据使用场景来讲,可大致按下面进行划分:

针对不同的场景,不同分布式数据库路线产品各有所长。
针对事务类场景下,强调高并发联机交易、对分析能力要求不高的场景比较适合分布式中间件路线产品。
针对事务类及事务/分析混合类场景,既要满足常规联机交易场景的同时,还需满足分析类的一部分能力,这种情况比较适合原生分布式产品。基于原生分布式的 HTAP 数据库,用一个数据平台应对规模化交易和实时分析,提升业务决策的时效性,降低数据技术栈的复杂性,越来越多的混合负载需求推动了 HTAP 在金融场景的落地。
3. 金融业 HTAP 应用场景实践
1). 金融场景下 HTAP 的分析
在金融企业数字化转型的过程中,各类业务对“海量、实时、在线”的数据需求变得愈发迫切。在金融企业运营场景中,实时推荐、精准营销是企业提升竞争力的一大因素。在企业风险控制场景中,实时风控、反欺诈等业务开展可以更早地识别和阻断风险可以让企业减少损失,HTAP正是基于上述背景诞生出的需求,为各类实时数据处理需求提供了解决方案。
2).某金融用户 HTAP 的架构设计和实践
随着金融市场同业业务的蓬勃发展,业务部门对于交易数据的实时统计分析和展现有了急切的需求。基于大数据技术栈的 T+1 报表模式,已无法满足业务部门通过实时分析交易发生情况来防范风险以及提供决策的需求,迫切的需要找到一种能让数据实时变现的解决方案。结合金融行业特点,在技术选型过程中,重点考察待选产品如下能力:包括承载业务复杂查询处理、海量数据容量存储、应用透明无侵入、开发协议可适配及混合负载下的表现等。经过测试,选择 TiDB 作为基础数据库平台。通过一段时间上线使用,满足业务场景,基于其 HTAP 的特性,打造金融市场实时数据平台,目前已投产了灵活报表和交易对手分析等功能。整个处理流程包括:
Flink 消费交易系统产生的实时增量数据,对部分事实表进行拉宽处理并写入TiDB
维表和其他明细表直接写入 TiDB
BI 工具直接连接 TiDB,提供秒级的实时计算和分析能力

这一案例中,构建千万及以上数据规模、超过五张表的复杂关联实时查询能力,让业务人员在极短的时间内(大部分报表执行时间为几十到几百毫秒、个别报表秒级别)获得实时交易的详情。
3).未来 HTAP 的场景发展
实时数据处理技术还以某些具体的应用场景为主,从现状来看以事件驱动类、流式管道数据计算类为代表的场景,已经开始使用 HTAP 场景的。未来随着 HTAP 计算能力进一步的提升,实时全量数据的计算将带来更多场景。

4. 面向未来的架构趋势
1).云原生
从未来的发展趋势来看,云方向是一个大的趋势。

从上图可见,云数据库的发展经历了几个阶段,从云托管、云服务、云原生之路。
云托管,是最接近传统数据库系统的部署模式。本质是将原本部署于IDC机房内物理服务器上的传统数据库软件部署在了云主机上。这种模式下,云平台提供诸如高可用、异地灾备、备份恢复、数据安全、SQL审计、性能优化和状态监测等企业级数据库管理能力,用户可减少运维投入即可享受之前同等的服务水平。
云服务,之前的托管架构中,受限于传统数据库架构的局限,未能完全发挥云计算的优势。在诸如弹性扩展、高性能、高可用等方面,均有不足。到了云服务时代,充分利用云基础设施的底层能力,提供定制化的数据库产品。
云原生,与之前的云服务架构不同,这一阶段产品将更为充分地利用云基础设施的能力,通过多层资源解耦,可享受云带来的弹性扩展、按需供给、超大规模能力。真正做到了数据库与云的深度结合。从长期来看,金融机构逐渐把业务和技术向云原生演进,实现传统应用迁移上云和云原生改造是重要的方向。在这个过程中需要考虑分布式数据库对 K8s、微服务应用的支持,提供高效、弹性调度能力,同时需要兼顾开发运维和敏捷度。
2).多云方向
云作为未来主流的资源供给方式,多云必然是企业不得不考虑的问题。多云通常指金融机构同时采用多种不同的云环境组合来满足业务需求的多样性和金融业监管的要求。如何围绕数据打造面向未来的多云 IT 架构,满足在多云之间提供数据服务能力,摆脱单一供应商的弊端,是必须考虑的问题。多云架构对分布式数据库的考察重点聚焦于跨地域、跨公有私有云、跨本地 IDC 和 K8S 的部署、服务提供与统一运维能力等。

#每日一善[超话]#[微风]#每日一善# [微风]#阳光信用#

我们必须修身律己,慎终如始,时刻自重自省自警自励,做到慎独慎初慎微慎友。
人生最好的状态,是每天醒来面朝阳光,嘴角上扬。不羡慕谁,不讨好谁,默默努力,活成自己想要的模样。

不管有没有人爱,我们也要努力做一个可爱的人。不埋怨谁,不嘲笑谁,也不羡慕谁,阳光下灿烂,风雨中奔跑,做自己的梦,走自己的路。

看到这样一段话,觉得很有道理:

一个人最好的状态莫过于,眼里写满了故事,脸上却不见风霜,不羡慕谁,不嘲笑谁,也不依赖谁;只是悄悄地努力,吞下委屈,喂大格局,活成自己喜欢的样子。

生活不需要太多事参与,故事不需要讲给太多人听,一个人安安静静努力,慢慢靠近自己想要的生活,就足矣。

生活越来越舒服,人生越过越成熟,自己越活越坦然的六个迹象,来看看你中了几条?

1

第一,明白赚钱的重要性,但不把攒钱当作唯一目的。

你不必特别有钱,但一定不能特别缺钱。钱不是万能的,但手里多一点钱,真的能叫自己少吃些苦。

不过,我也希望你别把攒钱当作唯一目的,银行卡上的数字不应该成为你全部的安全感来源。

这世界上,除了柴米油盐,还有诗和远方的田野。不要总是低着头朝前走,偶尔停下脚步,抬头看看漫天的繁星,想想自己当下最期待的生活是什么样的,不要忘记自己的初心。

人只活一辈子,对自己不要太苛刻。在能力范围之内给自己更好的,也是对生命的一种馈赠。

2

第二,不害怕接近爱,也不盲目付出爱。

人活在世上,总免不了经历点头之交、擦肩陌路,相遇和离别每天都在上演。

以前总想着让认识的人都喜欢自己,想和更多的人成为朋友,但随着年岁渐长,越来越不愿意做一些违心的事。

待人友善是修养,独来独往是性格。你不懂我,我不怪你,淡然远之,各自安好就是。

不害怕与人相处,不惧于接受谁的好感和爱意,也不会因为年龄或一些本心之外的东西选择将就一段生活。

明白自己的感情很贵,不是谁都能给,如果不值得,那就算了。余生很贵,照顾好值得的人,不要将就,更别浪费。

3

第三,比起无聊的消遣,更愿意独处和读书。

看剧久了就有种消极的空虚感,网购多了也容易觉得生活无趣。很多快速的东西往往都很短暂,偷走了当下的时间,却不能在心里留下深刻的印象。

偶尔的放纵可以让人感到愉悦和放松,但如果把堕落当成一种快乐,时间久了,只会让自己越来越难于开始自律。

没事早点睡,有空多读书。一个人的时候别浮躁,沉下心去磨一磨自己的脾气和性子,在书里见天地,便能见众生,更见自我。

要让自己成为一块有棱角但不锋芒外露,有骨气但外表温凉柔润的美玉。

你读过的书、走过的路、爱过的人,都会成为你人生路上的指路牌。那些也许你已经忘记了的书里的片段,其实都在指引你前行的方向,它们一定会在未来的某一个时刻,帮助你表现得更出色。

4

第四,懂得自律才是自由的前提,并愿意为之付出努力。

看过这样一段话:生活中的不如意总比如意多,而对此的恪守、热情,恰恰也缘于自身的坚韧。时刻提醒自己,要自律,要保持内在的从容与安静。

无论在人生的哪个阶段都不能放弃成长,没有人能限制你人生的高度,只要你不让心受限,一切都有可能。

康德说:自律即自由。自律,就是要懂得隐忍和克制,放弃一些不重要的,坚持一些优秀的,而后才能成为自己想要的样子,获得真正的自由。

坚持一件能让自己变好的事的确不容易,打磨自己的过程也总是充满了艰难和迷茫,但只要你在朝前走,即使最后失败,也是最难能可贵的经历。

要相信,勇于大步向前走的人,总能够找到属于自己的亮光。

5

第五,有些事得过且过,有些人该放就放。

人生就像一条路,开始时,我们常因懵懂而无法抉择,待到结束前,回望一生又总觉得有诸多悔恨。

时光飞逝,我们必须抓紧今日,珍惜现在拥有的人和事,感恩生命馈赠的一切,得不到的不要去想它,已经失去的就赶紧放下吧。

有些事得过且过,有些人该忘就忘,别因为一时的失意就沉沦放纵,也别把悲伤和难过郁结在心里。

生活不易,但你可以为自己寻找出路。保持健康的身体,培养积极的心态,从每一个当下开始,期许新的生活。

6

最后,爱别人,也要爱自己。

无论遇见什么,人生都在照常运转;无论离开了谁,生活也不能停滞不前。

不懂得爱自己的人,就算把自己感动得痛哭流涕,也无法真正拥有别人的爱。

爱别人,也爱自己,才能为了开心而保持微笑,为了幸福而变得坚韧。

希望你也成为这样的人:

眼里长着太阳,笑里全是坦荡,余生漫漫,且行且成长。


发布     👍 0 举报 写留言 🖊   
✋热门推荐
  • 姐姐平时上班,周末采购,有采购视频,保证正品,赚良心钱,价格公道,大致涉猎母婴用品 保健品 护肤美妆 鞋服 ugg 施华洛世奇,有需要澳洲产品的朋友可以私信我。
  • 小四说,自己养鹦鹉已经有很多年了,对鹦鹉的饲养比较有经验,就目前情况来看,饲养鹦鹉的笼舍是东西朝向,鹦鹉直晒不到太阳是最大的问题,这对于在北方生长的热带动物来
  • 『关于花的文案』 ▫️花替它的土地好好的开着 ▫️我喜欢花 但我更喜欢会结果的树 ▫️无人问津的巷口总是开满鲜花 ▫️初春时 少女的裙摆和满片温柔的花
  • 此封信件中展现了球员们自救的决心,但还得需要看中国足协如何回复,毕竟留给天海的时间不多了,而且未来在俱乐部运营过程中还有很多问题需要解决,如果球员们接手仍然面临
  • 一睁眼头痛 胃痛 眼睛痛 实实在在的喝趴了 最大的愿望不是世界和平了 我只要爱我的人开开心心 永远能做自己就好了 不要有压力有担忧 一辈子就一次 你务必务必
  • 只有努力做好自己的工作才能是一个尽职尽责的好员工,莫名其妙又多发了200元,是涨工资了吗,难怪我昨天晚上做梦梦到抓了好多鱼,一般我梦见鱼就有好运。还能提前发工资
  • 每天给自己找快乐的事,就会战胜心中的痛苦。恨别人的人是最傻的人,只有放下才会去除内心的恨。
  • 其中有两座博物馆主要为人们展示人与山脉的艺术作品,它们分别是设在西格蒙斯克龙城堡的Sigmundskron Castle,和位于科隆普拉茨山脉的Corones。
  • 一之日于貉,取彼狐狸,为公子裘。同我妇子,馌彼南亩,田畯至喜。
  • #金厉旭[超话]# 려욱이의 아지트✨Ep.22( 2)“摘下那颗星星 只送给你 想拥有那 如星雨般降落闪闪发光的你 ”우주를 줄게[音乐]——脸
  • 。我对于什么金靴银靴兴趣不大,就想和哥几个十一人制出出汗,不铲球的规矩挺照顾我们这些有家庭的上班族的。
  • 有人学的这般术,便是长生不老人。培养强烈的感恩心,每天至少谢谢一个人,告诉他们你喜欢、仰慕或欣赏他的地方。
  • 它的产品涵盖了针‮成对‬人的葆‮康苾‬系列,针对母婴的‮婴葆‬系列,针对爱美‮群人‬的sense洗护系列和CELAVIVE护肤‮系品‬列,‮有还‬专业的营养代餐
  • 6、任何一个想提升人生质量的人,最重要的一点就是要具备积极的态度;你的态度在很大程度上决定了你会如何度过人生,决定了你的人生道路能走多远!而不要说:我怎么这么倒
  • 文/格姐#情感##王一博[超话]#我想看你开开心心地滑滑板 看你自由自在地跳舞看你认认真真地骑车我不会骗你比起你的真心真意什么快门 闪光灯通通一文不值 我只
  • 第十八周 四月的最后一天,这两个月感觉过的不太自律,大部分时间除了工作,就好像浪费了似的。二月份是感觉最好的。今天下午去灯光球场打球了,久违的夏天的感觉。 温柔
  • 有时候你会特别渴望找个人谈一谈,但是到最后你会发现,往往都谈不出个所以然,慢慢地你领悟到,有些事情是不能告诉别人的;有些事情是不必告诉别人的;有些事情是根本没办
  • #jackeylove[超话]# 今天上课发现了一个很有趣的事情 在决赛失利后我们在官博留言我们夏天加油 联系全职高手蓝雨战队我们还有很多属于蓝雨的夏天 蓝雨战
  • HOOKSOFT 20周年記念作品『放課後シンデレラ』2020年8月28日発売予定 恋愛の過程にこだわるHOOKSOFTの記念すべき第20弾『放課後シンデレラ』
  • “商家”迷惑行为,大早上让人不痛快[费解] 拿我卖票出货来说,不仅我自己要做到不贬低同行来抬高自己,收完学徒还要在培训的时候专门交代他们,绝不可以捧自己踩同行。