(上)原理都懂,就是不会建模?来,顶尖数据模型走一波

简介: (上)原理都懂,就是不会建模?来,顶尖数据模型走一波

前言

兄弟们太猛了!我就要30个“在看”,结果半个小时就点满30个了,到今天,已经快130个了,多出来的是要干啥?吓的我肝儿直颤。。。

那我就写着,您老凑合看?

上次说到一家英国保险公司Direct Line委托IBM做客户中心的项目。结果IBM不知道派过去的人有问题,还是别的原因,给整劈叉了。项目原定要用Teradata的FSLDM模型,结果IBM就是不用,反而自己又整了一套,最后整的是一塌糊涂。

甲方甚至给出了这样的评价:

“以一种毫无章法、毫无根据的方式来复制和粘贴,以扩展该模型,结果破坏了设计集成层,使得EDW难以填充、维护和理解”。

最后的结果呢,IBM移交所有代码,赔了3个多亿。你可能会幸灾乐祸,IBM这么牛的公司,怎么也不会建模啊?

建模

其实数仓建模的方法论,Inmon和Kimball两位老爷子早就已经说完了。后面的各大公司基于两位老爷子的理论,做了大量的实践。

这两位老爷子的理论研究已经非常透彻了,透彻到什么程度?就是他们写的书,到现在依然能拿过来当做教材。什么数据湖、数据中台,其实底层建模理论还是原来的那些。

那么问题来了,到底啥是建模?

其实讲穿了,建模就是对现实世界的抽象

现实世界只有一个,那理论基础也是同源的,具体的应用场景也能找到共同性,那就必然能对某个场景抽象出一个合理的模型套路对吧?

是的。IBM、Teradata等IT巨头早已经把这些模型按照自己的方式抽象好了。

在银行这个行当,IBM有BDWM,银行数据仓库模型,Banking Data Warehouse Model。

Teradata这边的呢,就是FSLDM了。FSLDM全称是金融服务逻辑数据模型,Financial Services Logical Data Model。

除此之外,IBM还针对保险行业细分出IAA和IIW、Sybase也有IWS,这些都是行业经典的数据仓库业务模型。

把模型固化下来之后有啥好处呢?咱回到我经常给大家看的这张图:

业务建模部分的主要任务是把业务流程梳理清楚,这时候会产出各种流程图,方便我们了解业务,最关键的是识别我们要抽象的业务实体。

领域建模这边,就是围绕上面的核心实体,进行主题区域划分。主题区域划分的核心目的是对建设内容进行合理的切分。既要让主题相对独立,又不能建的太多,闹哄哄的没法弄。

逻辑建模这里,就得承上启下,逐步细化了一方面要看底层数据,另一方面要看业务需求。这时候就要把所有的实体和量化内容梳理出来,数据如何从底层一直流到应用层,都得想清楚,设计好。

物理建模阶段,基本上就是机械的工程建设操作了,建表、设计有向无环图,做任务调度。

看完上面的流程,你会发现,FSLDM把前面两个步骤的工作全做完了,第三个步骤的绝大多数工作也都做好了 。

在FSLDM里,整个模型分为三层:主题、概念、细节。一共10个主题域、小3千个实体和1万多个属性。根据第三层细节中已经梳理出来的内容,构建了343个逻辑视图。

这是什么概念?拿着这一堆的模型文件,只需要按照客户的个性化情况稍微处理一下,就能直接推到物理建模的阶段。

这简直是数仓领域的方便面啊,打开盖子,放入适量调料包,喜欢就加根肠,敲个鸡蛋,不喜欢就算。然后加开水泡一下,就好了!

在这里顺便吐槽一下绝大多数互联网公司,几乎没有建模,也没有文档,上去就是干,最后就是一堆的宽表。唉!废了!

主题领域

FSLDM长啥样呢?我带你走一圈哈。建模的第一步是啥?捋业务,对吧?那银行保险业的业务是啥?选一个最简单的业务“买保险”场景来捋一捋:买保险需要有几个参与方?投保人、买保险的小哥,还有保险公司。交易涉及的内容呢?钱,保险产品,有时候还有活动,交易完了还得签个合同。合同签完了,保险其实才刚刚开始,所以后面会有续保、理赔等一列操作。OK,我们简单梳理之后,能提取出什么实体?交易双方得出来吧?交易内容得分别列出来吧?交易的核心内容得有吧?交易相关实体包括:交易双方(投保人、受益人、保险公司、保险代理人);交易内容(保险产品、营销活动、保单);其他交易信息(交易渠道、钱)。后续的续保、理赔也同理。这是从买保险的视角看,但是运营一个公司可不止这么简单。管理保险小哥,得要有绩效管理吧?不能光靠保险小哥啊,还得建立销售渠道。产品不能太单一了,得丰富起来吧?保险是一个强管控的行业,合规得做吧?财务得弄好吧?这里面的业务太复杂了!咋就能整理好?没法弄了!虽然我参与过某保险的数据治理项目经验,但我也没能力在这里就把整个业务理清楚。太难了!

啥?你让我划分主题域?这个倒还行。前面不是说了么?建模就是对现实世界的抽象么。我们真实反应就好了。有交易,有理赔,有续保,那就一个交易域,一个理赔域。续保算交易,划到交易就好了。客户域是少不了的,再来一个卖方吧,就是保险公司。产品域得有,保单这边也得有一个。差不多了,保险监管比较重要,再弄一个监管域。嗯,这样就差不多了。

看上去好像很有道理,对不对我们先放一边,咱来看看Teradata是怎么弄的。Teradata经过对所有核心业务的梳理,在FSLDM里,把最最核心的内容提炼成十大主题域,即:当事人、资产、财务、区域、营销活动、协议、事件、内部组织、产品和渠道。

啥玩意?怎么跟我们想的完全不一样啊?当事人是什么鬼?取个新名字就显得更高大上一些?活动、组织、产品、协议、渠道、区域,我都能理解。但是为啥要有事件?为啥把资产单独弄出来?财务和区域为啥还要单独有一个域?没法理解啊!别急,咱把问题先放一边,继续往下看。从上图我们可以看出各主题域的重要程度。很简单么,跟外面连接最多的,就是核心主题域了。最重要的就是当事人、协议和组织了。这个很容易理解,刚才买保险的场景大致能对上,就是你买我卖,然后签个合同呗。其他主题域为啥这么分呢?我们把Teradata和IBM的两个模型的主题域划分对比一下:

你看,是不是区别很大?前面5、6个主题域基本都能对上,后面的主题域划分逻辑就不一样了。从这个主题域的切分上,我们就能看出来两个模型的侧重了。FSLDM更倾向于穿透到业务,BDWM就更侧重于通用性,所以会有分类、资源项目、条件等看上去含糊不清的主题域。好,我们现在回想一下之前的一些问题。为什么FSLDM跟我们想的不一样?建模不是要真实反映现实世界么?是,也不是。我们怎么评价一个好的模型?一个好的逻辑数据模型,应该是稳定的,这个没争议吧?

应该是灵活、可扩展的,这个也非常肯定对不对?

应该是规范的,这个是原则性问题。应该是中性的、通用的。这个怎么理解?其实很好理解。如果我们在建模的时候,只是顾着当前的业务模式,那最终的结果就是业务不断的变化,数据模型就跟着不断的调整,就像那个追着喂饭的家长,累死累活也喂不进去几口饭。所以我们建的模型应该把抽象出来的对象尽可能的打散、重组,然后抽象、再重组,直到能够非常通用才可以。因为只有这样,我们建设的模型,才能为同类型的新业务服务,甚至外延到其他BU。而脱离中性、通用的模型,是不可能稳定的。简单来说,你不能说今天建一个卖保险的模型。明天你们公司要卖基金了,就支持不了啦,得再建一个。你要说流程不一样,咱可以理解,但是至少交易这个领域应该是可以共用的吧?举个不是特别恰当的例子:链家当年建的楼盘字典,可不仅仅是给链家用。贝壳就是依托楼盘字典为核心建立ACN的,所有卖房的同行都能用。你以为这就完了么?并不是,租房的也能用,自如用的也是链家的楼盘字典。这就是中性、通用的典型代表。所以理解了这一点,你再去看看数据中台,是不是也是这个逻辑?一样的!同学!有一次我蹭了一堂阿里CIO学院的内部分享会,有个同学就提问题了,数据中台的这个One Model怎么这么神奇,能支持上面那么多BU的各种应用,而且业务发展这么快,你们还不需要大改?

那位目测是阿里P9+主持人的回答就是建模,建一个优秀的模型。

所以你看,建模这功夫有多深,从主题域就已经开始体现了。而FSLDM做的就非常高明。

结语

这就结束了?当然没有!这才刚分领域呢!下面还有单个主题域怎么设计、单个实体又怎么设计,不同层级的实体之间咋处理?两个领域之间怎么联系等等,一系列的问题。这已经3300字了,今天先这样。

相关文章
|
数据采集 数据可视化 数据挖掘
统计学基础:Python数据分析中的重要概念
统计学基础:Python数据分析中的重要概念
81 2
统计学基础:Python数据分析中的重要概念
|
存储 搜索推荐 数据建模
(下)原理都懂,就是不会建模?来,顶尖数据模型走一波
(下)原理都懂,就是不会建模?来,顶尖数据模型走一波
|
机器学习/深度学习 算法 数据库
PGL图学习项目合集&数据集分享&技术归纳业务落地技巧[系列十]
本项目对PGL图学习系列项目进行整合方便大家后续学习,同时对图学习相关技术和业务落地侧进行归纳总结,以及对图网络开放数据集很多学者和机构发布了许多与图相关的任务。
PGL图学习项目合集&数据集分享&技术归纳业务落地技巧[系列十]
|
机器学习/深度学习 人工智能 自然语言处理
零售业中的机器学习:要点和十个关键应用
零售业中的机器学习依赖于自我改进的计算机算法,这些算法用于处理数据,发现变量之间的重复模式和异常,并自主学习这种关系如何影响或决定行业的趋势、现象和业务场景。
296 0
零售业中的机器学习:要点和十个关键应用
|
监控 数据可视化 测试技术
软工导第一节课 计算机软件工程学作一个简短的概述,回顾计算机系统发展简史 软件工程的基本原理和方法有概括的本质的认识,详细讲解生命周期相关知识讲解8种典型的软件过程模型
软工导第一节课 计算机软件工程学作一个简短的概述,回顾计算机系统发展简史 软件工程的基本原理和方法有概括的本质的认识,详细讲解生命周期相关知识讲解8种典型的软件过程模型
322 0
软工导第一节课 计算机软件工程学作一个简短的概述,回顾计算机系统发展简史 软件工程的基本原理和方法有概括的本质的认识,详细讲解生命周期相关知识讲解8种典型的软件过程模型
|
图形学
入行3D建模难不难学习?10年建模师:这3种人,一辈子都学不会
下面这些问题是不是也是你心中所惑?还是说经常听到有人这么说? 这个功能在哪里,我不会呀! 为什么我努力学习了这么久,还是没学会? **这个时代,最不缺的就是勤奋的年轻人。** 大家都希望用宝贵的青春奋力一搏,高山仰止。所以我们经常看到许多人,每天像吃饭一样大口吞咽知识,然而却消化不良。
280 0
入行3D建模难不难学习?10年建模师:这3种人,一辈子都学不会
|
编译器 C语言 C++
高效学习C++基础部分&话题挑战赛
高效学习C++基础部分&话题挑战赛
157 0
高效学习C++基础部分&话题挑战赛
|
机器学习/深度学习 人工智能 算法
南大周志华、俞扬、钱超最新力作:《演化学习:理论与算法进展》正式上线
梯度下降或最速下降法,是机器学习最为重要的模块之一。尤其是在深度学习时代,梯度下降已成为不可或缺的组成部分。但同时,梯度下降也限制了机器学习推广到更广泛的一些任务中,例如不可微的目标函数。这一缺陷,却正好能被本书的主题「演化学习」解决。
510 0
南大周志华、俞扬、钱超最新力作:《演化学习:理论与算法进展》正式上线
|
算法 机器人 数据挖掘
带你读《数据挖掘导论(原书第2版)》之三:分类:基本概念和技术
本书所涵盖的主题包括:数据预处理、预测建模、关联分析、聚类分析、异常检测和避免错误发现。通过介绍每个主题的基本概念和算法,为读者提供将数据挖掘应用于实际问题所需的必要背景。
|
人工智能 安全 算法
12月6日云栖精选夜读 | 三张图读懂机器学习 :基本概念、五大流派与九种常见算法
机器学习正在进步,我们似乎正在不断接近我们心中的人工智能目标。语音识别、图像检测、机器翻译、风格迁移等技术已经在我们的实际生活中开始得到了应用,但机器学习的发展仍还在继续,甚至被认为有可能彻底改变人类文明的发展方向乃至人类自身。
3007 0

热门文章

最新文章