分布式金融架构课
任杰
eBay 支付账务系统负责人,前蚂蚁金服架构师
2444 人已学习
立即订阅
登录后,你可以任选4讲全文学习
推荐试读
换一换
02 | 原理解读:如何理解第三方支付的业务逻辑和系统组件?
13 | 正确性分级(中):多机无容灾有哪几种不同的一致性实现?
15 | 分布式正确性的存在性(上):什么情况下不存在分布式共识算法?
课程目录
已完结/共 30 讲
开篇词 (1讲)
开篇词 | 如何成为金融级人才?
金融业务与系统 (6讲)
01 | 业务初探:扫了二维码之后发生了什么?
02 | 原理解读:如何理解第三方支付的业务逻辑和系统组件?
03 | 产品大观:不同金融业务都有哪些技术实现要点?
04 | 领域驱动设计(上):如何设计金融软件顶层架构?
05 | 领域驱动设计(下):如何设计统一的金融业务模型?
答疑集锦(一) | 思考题解析与外汇架构知识拓展
系统正确性保障 (7讲)
06 | 计算输入的正确性:怎么选择正确时间的数据?
07 | 计算过程的正确性:如何设计正确的数据处理架构?
08 | 计算结果的正确性:怎么保证计算结果是正确的?
09 | 数据传输的质量:金融业务对数据传输有什么要求?
10 | 数据存储的合理性:金融业务可以不用关系型数据库吗?
11 | 系统优化:如何让金融系统运行得更快?
答疑集锦(二) | 思考题解析与账务系统优化
分布式正确性及高可用 (11讲)
12 | 正确性分级(上):单机无备份有哪几种不同的一致性?
13 | 正确性分级(中):多机无容灾有哪几种不同的一致性实现?
14 | 正确性分级(下):多机有容灾有哪几种不同的一致性?
15 | 分布式正确性的存在性(上):什么情况下不存在分布式共识算法?
16 | 分布式一致性(下):怎么理解最简单的分布式一致性算法?
17 | 正确性案例(上):如何实现分布式的事件溯源架构?
18 | 正确性案例(中):常见分布式数据方案的设计原理是什么?
19 | 正确性案例(下):如何在运行时进行数据系统的动态分库?
20 | 容灾(上)如何实现正确的跨机房实时容灾?
21 | 容灾(下):如何通过混沌工程提高系统稳定性?
答疑集锦(三) | 思考题解析与数据库底层实现
春节策划 (3讲)
春节策划第1期 | 分布式金融系统知识,你掌握了多少?
春节策划第2期 | 读书如抽丝,为你推荐一些我读过的好书
春节策划第3期 | 如何运用架构知识解读春运买票和手游案例?
结束语 (2讲)
结束语 | 金融之道,与你同行,虽远尤欣
结课测试|这些金融架构的问题,你都掌握了么?
分布式金融架构课
15
15
1.0x
00:00/00:00
登录|注册
开通超级会员可免费学习本课程,还可解锁海量内容免费学特权。

10 | 数据存储的合理性:金融业务可以不用关系型数据库吗?

你好,我是任杰。这节课我和你聊一聊金融业务应该如何选择数据存储类型。
提到金融行业的数据存储,我们的第一反应肯定是要用关系型数据库。但是如果我追问一句,为什么一定要用关系型数据库?估计很少有人能答上来。最常见的理由是别人在用,所以我也得用,但是这个并不是理由,而是借口。
其实金融行业的数据存储有很多种选择,今天我们就一起看看都有哪些。

数据分类

我们都知道,不同的数据对存储和使用有不同的要求,所以我们选择数据存储类型前先要分析数据有哪些特点,然后才能根据这些特点来针对性地选择适合的存储方案。
通常我们会按照数据与数据之间关系的复杂度来对数据进行分类。最简单的显然是数据之间没有什么关系,比如常见的市场数据就属于这一类。复杂一点的是数据之间有单向的关系,这些关系形成一个树状结构。最复杂的是网状结构的数据,也叫图数据类型。
虽然这些数据在金融系统里都有,但是它们的重要性和出现的频率都不一样,所以在做存储选型的时候也有不同的考量标准。
按照数据出现的频率,数据大体可以分成这样三类:图数据类型、没有关系的数据类型和树状数据类型,它们分别对应了图数据库、时序数据库和关系型数据库。接下来我们就分别看看。

图数据库

顾名思义,图数据库存的是图。图数据库除了提供数据的存储以外,还支持图的查询,比如常见的相邻关系查询,或者连通关系查询。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
02 | 原理解读:如何理解第三方支付的业务逻辑和系统组件?
13 | 正确性分级(中):多机无容灾有哪几种不同的一致性实现?
15 | 分布式正确性的存在性(上):什么情况下不存在分布式共识算法?
17 | 正确性案例(上):如何实现分布式的事件溯源架构?
18 | 正确性案例(中):常见分布式数据方案的设计原理是什么?
21 | 容灾(下):如何通过混沌工程提高系统稳定性?
开通超级会员免费畅看本课程
开通会员
该文章仅可免费阅读部分内容,如需阅读完整文章,请开通超级会员或单独购买本课程。
登录 后留言

精选留言(5)

  • Palmer
    置顶
    这节课太精彩了!
    深入浅出的讲解,娓娓道来,让我醍醐灌顶!
    2021-05-01
    2
  • tt
    之前有一个项目,想着把若干流程类似但是业务数据不相同的业务统一起来提供一个自定义流程的页面。为了统一代码,就需要一张表可以保存字段数不同的数据,当时想了若干办法:

    1.使用关系型数据库。因为每个表的Schema一旦定义就不变了,所以只好与定义足够多的扩展字段,然后在另外一个地方存储这些字段的含义,这样展示在页面上的时候人是可以知道数据整体的意义的。

    2、采用文档数据库。但是之前没有人用过,领导也不同意。

    3、还是用关系型数据库,把各个业务共有的字段单独出来,然后把变化的部分用Json序列化,然后保存在一个大字段中。

    但是实施的时候,大家都习惯了关系数据库,最后使用了方案1。

    其实觉得在不改变数据库的前提下,第三个方法是最好的,但确实是如果用某个json字段去查询,效率会很低,只能用like,而且也没有办法建立索引。
    2021-01-15
    5
    6
  • 楼下小黑哥
    请问下老师,上述这些数据库国内大厂或者金融机构使用情况怎么样?

    作者回复: 对于自我研发能力较弱的金融机构来说,Oracle依然是首选。

    2021-01-25
    3
  • 王雁林(Leo)
    老师能否展开数据库在风控和反洗钱的应用。多谢!
    2021-05-18
  • Geek_9c3134
    老师 如果金额出错了 应该怎么办 做哪些处理
    2021-01-17
    1
收起评论
5
返回
顶部