00:00
好,那我们接下来呢,就可以进入到数据仓库的原数据管理模块了啊,那什么叫做原数据管理呢?啊,首先我们得先搞清楚啊,什么叫做原数据对吧?那原数据是什么呀?啊,其实很简单啊,原数据呢,主要就是指数据的描述信息啊,包括数据的结构啊,数据的类型以及数据的含义等等等等啊,那对于我们的数据仓库来说啊,那这个语言数据呢,其实具体就是指数据库表以及字段等相关信息啊好,那语言数据的概念呢,大家应该已经搞清楚了,对吧?那语言数据管理具体包含什么呢?那原数据管理呢,诶,它会包含对原数据的收集存储以及整合的一整套流程。啊,那我们去收集,去存储,去整合原数据,它有什么意义呢?这个意义呢,就是它能够让开发人员和业务人员快速的了解数据的上下游关系,以及数据本身的含义啊,精确定位需要去查找的数据啊,从而减少数据研究的时间成本,提高效率。那这句话怎么理解呢?来,我举一个具体的例子啊,比如说现在我们公司里边来了一位新人,对吧?那这个新人刚到公司是不是肯定得去先熟悉业务啊?
01:18
没错吧?啊,那如果说啊,我们没有原数据管理系统啊,那他熟悉业务是不是只能靠自己看呀,对吧?那遇到不懂的地方呢,还得去跟各部门进行沟通,没错吧?那这个实验成本显然会比较高,那如果我们有了原数据管理系统呢?啊,那是不是就可以借助原数据管理系统去快速的熟悉业务了,那这样一来呢,就能够极大的减少我们熟悉业务的时间啊好,那这就是原数据管理的意义,OK,那我们数仓当中的原数据管理是怎么做的呢?那在这儿我们使用的是Atlas这个框架啊好,那接下来呢,哎,我们就开始学习Atlas这个框架,好,那往下翻看看atla是啥啊,这呢有一个Atlas的概述。一起来看一下啊,那阿尔法奇Atlas为组织提供开放式数据管理和治理功能啊,那这个它都能干啥呀?我们往下看,那用以构建起数据资产目录啊,其实这个数据资产目录这个怎么理解呀?
02:17
啊,其实很简单,那咱们对于数仓来说,数据资产主要就是是不是就是各种各样的表,各种各样的字段呀,对不对,那相当于我对所有的表,所有字段,我是不是建立一个统一的目录啊,对吧?那建完目录之后,我是不是就可以根据这个目录去检索对应的具体的元数据信息了,就这个意思啊,好,我们继续往下走。它可以对这些资产进行分类和管理啊,那一会儿大家都知道,呃,一大家就能知道啊,我们这个atla呢,是能够对于原数据进行分类的啊好,那现在往下走啊,那他能够为数据分析师和数据治理团队啊,提供围绕着这些原数据的这样的一个协作功能啊,是这样的啊啊那其实这的话呢,说的就比较官方,这其实是从这个S官网上摘下来的,是不是大家可能听起来有点这个,呃,感觉有点这个抽象啊,对吧?啊,其实没关系,我们看一下它的具体功能是啥,看完具体功能你就知道了,来我们往下走啊。
03:13
在这儿呢,我把Atlas的具体功能列出来了啊,那此处呢,一共列了三个方面的功能,那首先我们看第一个原数据分类啊,原数据分类那就是呢,它是能够对数据进行分类的,那这个分类呢,我们自己是可以自定义的啊,可以定义,那它支持对数据进行分类管理,那比如说我可以怎么分呢?啊举个例子啊,那我们的用户表里边是不是有一些字段是敏感信息啊,对吧?啊,有些字段什么个人信息等等等等,那我们就可以对这些字段进行一个统一的分类,比如说诶,那这些字段属于个人信息,这些字段呢,属于敏感信息等等等等,诶我们是可以对它进行分类的,那分完类之后有什么好处呢?诶我们后续呢,是可以利用这个分类信息去做一些工作的啊,可以用这些分类信息去做一些工作的,可比如说我去检索的时候,我是不是就可以按照分类去检索了呀,对吧?呃,那再比如说呢,我后续还会带大再给大家举一个例子呢啊呃,这其实这个APP呢,也。
04:14
也可以服务于我们的这个数据安全啊,一会儿咱们再说啊,那一会儿咱们再说这个分类的事儿啊,那也就是现在它能够分类啊,然后分完类之后呢,能够根据这个分类信息去做一些其他的工作啊好接来往下走,下一个呢是原数据检索啊,这个检索其实是原数据管理当中最最基础的一个功能,对不对,那咱们呃做原数据管理的初衷是什么呀?初衷是不是就是把我们所有的数仓当中表整理一下对不对?干啥呀,是不是整理完之后方便我去检索这个数据,这个表的信息完之后能够快速的熟悉这张表啊,对吧?所以说检索功能是不是必不可少的,对不对?那我这检索的时候可以根据什么检索呢?可以根据原数据类型检索,也可以根据原数据分类进行检索啊,这个怎么理解啊,原数据类型在那指的是它什么叫原数据类型?
05:04
啊,举个例子啊,那我们数仓就以have当中的数仓这个表为例啊,我们数仓当中的语言数据都有什么类型啊?比如说数据库database,这是不是一种原数据,Table表,这是是一种数据column字段,这是不是也算是一种原数据啊,对吧?啊,就是可以按照不同的类型去啊进行这个检索啊,比如说我就想看一下某一个字段它的含义是啥,你就直接搜这个字段就行了啊OK,接着往下走,那下面呢,是这个呃,原数据分类,这个原数据分类是什么意思,是不是刚刚我们刚刚提到了,我说我们可以自己为slas当中原数据进行一个分类啊,对吧?啊,可以根据这些进行检索,而且检索的时候呢,支持全文检索,什么叫做全文检索呀?什么叫检索呀?你比如说我们在这个京东商城或者是淘宝商城啊,你去买东西的时候,在它的首页是不是会有一个搜索框,搜索框你是不是要输一个关键字就能给你返回相应的产品信息,这是不是叫做全文检索呀?那appla也支持全文检索啊好,那接下来往下走下一个啊,下一个功能呢,也是原数据管理啊领域比较重要的功能叫做血缘依赖啊,那什么叫做血缘依赖呢?啊,给大家举个例子啊,下面其实就有相应的这个图啊,那这个呢,就是使用at lies去做的这个血缘依赖的这样一个一个图啊,那到底什么叫血缘依赖,其实你看这个图就能看明白啊,咱们举个例子,比如以它为例。
06:28
啊,那这个呢,是哪张表的血缘依赖啊,这个是dim activity这张表的血缘依赖啊,还记得dim这个表吧,这个表是不是咱们这个活动维度表啊,对吧?OK啊,那这个血液依赖指的是啥?其实很简单啊,那说白了就是这张表的数据它是从哪来的对不对?那从哪来,咱们是不是可以往前推啊,对吧,你看看从哪来的,从这儿我们能看出来啊,这里边是不是有一个宽RY对不对?宽RY其实就是啥,一个查询语句对不对?或者一个inser的语句,一个circlel语句啊OK,那这个circlel语句它的目的地是哪?目的地是不是这张表对不对?那它的来源呢?是不是ods层的activity rule,还有ods层的activity iner,那我们当时往这张表装载数据的时候,是不是就是把他俩做了一个join操作呀,对吧,你看这个其实就是咱们这个装载语句吧,那能能理解吧,OK,那接下来我们再往回推,那这两张表它的数据从哪来。
07:23
算了,是不是直接从我们HDFS路径里边给他load进来的,对不对,你看这就是他们那个HDFS路径,那现在这是不是有一个load操作呀,对不对,那现在我们就给它漏进去了啊,是这样的啊OK,那当然了,这个语句这是啥呀?这是这是见表的一个语句吧?啊,这是见表的语句啊,这这个也是见表的语句啊,是这样的啊OK,那姐姐从这张图当中呢,我是不是能够看到哎,我们这个数据的来源呀,对吧,那个这个数据的来源我们就管它叫做什么呀。就是血缘依赖啊,血缘依赖啊,是这样的啊,那我们这个itla呢,它除了支持表到表之间的血缘依赖,还支持字段到字段间的数据,这个血缘依赖大家看一下,这个呢,是使用Atlas做出来的一个字段到字段间的血缘依赖关系图,大家看一下能不能看懂啊,啊这个可能我们现在只是一个截图,看不了这个详细的信息,你如果是使用life的话呢,你可以点,点完之后你就能知道,诶这个字段是哪张表的字段,这个字段是哪张表的字段,在这儿呢?我们只能猜测一下啊,这个应该是。
08:26
哪张表的字段呀?反正哪张表不知道,肯定是ods层的,这是第一层对不对,Ods完之后呢,这个到哪了。DD来对吧,是不是DWD层啊,对吧,那完了之后你看DWD层,我这装载的时候它什么样的,是不是从自己的表里取出来放回去,然后再从ods层拿过来,诶这啥意思。哎,可以跟大家说一下,这张表呢,应该是我们的一张支付实施表,这个应该是一个支付实时表啊,支付时表咱是一个什么样的表来着,是一个累积型快照时表,对不对?那我们每天往这张表装载数据的时候是怎么做的,是不是先从这张表把9999分区的数据拿出来,再拿到ods层的数据是不是进行一个照的,然后呢,再放回去对不对,你看这里边是不是就有一个拿出来再放回去的一个操作呀,对吧?啊,它是能够体现出来是有关系的啊,OK啊,那么之后呢,继续往下走,再往下是不是到了DX层了,对吧?到了DWX层之后是不是就到DWT层了,DWT层我们任何一张主题表是不是都有这个什么,最近一日,最近七日,最近三十日还有一个累积值对不对,那他这是不是也有一个这样的一个圈,这个圈表示是啥?我们回忆一下啊,往DWT层进行这个每日装载的时候,咱是怎么做的,是不是也是先拿到这张表原来的数据对不对,再拿到今天的数据,没错吧,然后加上今天的。
09:49
减去什么30天之前的或七天之前的,是不是那样的一个操作呀,对不对,所以是不是也有一个从自己表里读,然后再写过去的这样一个操作,对吧?哎,他是能够去反映咱们这个数据的啊,这个字段与字段之间的这个依赖关系的,OK啊,那其实有了这个血缘依赖之后,你说我们能做哪些工作呀,咱们为什么要去做这种血缘依赖呀?
10:08
这有什么用啊?有啥用啊,这个用处还是非常大的啊,那有了学员依赖之后呢,我们能够做什么工作?哎,我们可以去进行问题的回溯,以及去做一些影响分析啊,那什么叫做问题回溯啊,啥叫问题回溯?啊,有的同学可能在自己在开发这个数仓的过程当中,可能就会发现啊,诶我这个数仓跑完之后,我发现,诶,我这张表当中没数据。是不是有可能同学有这种情况啊,对吧?诶这张表演没数据的话,那你怎么是不是可以根据我们这个血缘依赖往前去做做什么回溯啊,对不对?诶我可以看一下这张表它有没有数据,这张表有没有数据对不对?如果说这张本有,这张表没有,那是不是肯定是这出问题吧,这出问题是不是我再往前回溯啊,对吧?那这样一来,你是不是能够从根上解决这个问题啊,这叫做问题的回溯,那什么叫做影响分析呢?
11:02
什么叫影响分析啊?延分析就很简单,相当于反过来,刚才咱是不是从后往前推影前分析,是不是就是从前往后去做分析啊,对吧?比如举个例子啊,那有时候呢,我们的业务系统啊,它这个业务可能会发生变化,比如说某张表它的字段它会变啊,那那能理解吧,某张表字段它可能会变啊,它变了之后,那我们书仓里边是不是也得跟着变啊,对不对?OK,那数仓里边的表要变了,我是不是后边每层都可能会跟着变对不对,到底哪张表需要变,那怎么办?我是不是也是可以根据这个呃影响,呃,就是根据这个血缘依赖去做这个影响分析啊,对吧?比如说ODI层的,比如说这张表变了啊,这张表呢,这张表变呢,它会影响到后边的哪张表呢?你是不是可以沿着这个关系往后走,对不对,它是不是会影响到这张表,那假如我后边还会有其他的表用到这张表,是不是还可以再后往后进行分析啊,对吧?那这样一来我们就可以根据这个依赖关系呢,去做这所谓的影响分析了。啊,就这样的,OK啊,那受影响的表是不是都得跟着改啊,对吧,就这个意思啊,啊,这就是血缘依赖它的一个主要的意义,主要的意义啊,OK啊,那接下来呢,我再给大家补充一个啊,那其实这个呃,Atlas啊,这个原数据管理工具呢,它还能够去服务于我们的这个数据安全,还能够服务于数据安全啊这个怎么理解呢?举个例子啊,刚才我们是不是提到了LAS支持我们用户自己对它进行这个分类啊,对吧?来对原数据进行分类,比如说我们可以自己去去分一个什么个人信息类啊,比如说敏感信息类啊等等等等,诶我们可以去做这样的一些分类啊,那做完这个分类之后呢,我们实际上这个APP呢,可以去配合rangeer rangeer是我们刚刚讲的一个权限管理啊,对吧,可以配合ranger去做数据安全管理啊,这个怎么理解啊,就是ranger呢,里边其实也是有一个its插件呢,啊是这样的,然后ranger它。
13:00
可以基于这个原数据的分类去做这个授权管理,比如举个例子啊,敏感信息类,敏感信息类的所有这个字段,哎,这个所有人都不能访问,我可以去做这样的一个操作,这这个大家能能能理解吗?这个敏感信息类里边是不是可能会有很多很多的字段呀,对吧?啊可能会有很多字段啊,那有了这个分类信息之后呢?哎,那OK,我就可以直接就就告诉这个论证啊,怎么说啊,只要原数这个atla当中啊,这个原数据分类信息为敏感信息的字段统一,呃,不让任何人去访问图啊就是这样的,也就是这个分类信息呢,也能够服务于啊,然后呢,去做这个数据安全管理啊等等等等啊总之啊,就这个它的功能呢,还是比较强大的,还是比较强大的啊啊,那在这儿呢,咱们列出来的这个几个功能呢,就是itla的核心功能啊,其实最核心功能主要是谁来说。其实主要就是这俩是不是一个就是原数据检索对不对,一个呢就是血缘依赖啊对吧,这是它的主要功能啊好了,那这个概述咱们就已经说完了,那说完之后我们继续往下走啊,下边这儿还有一个Atlas的原理,这@类原理呢,我们也来看一下吧,这个图还是有点复杂的,对吧?好,那现在我们简单看一下啊,来,这个图我稍微的放大一点。
14:20
来,咱们往这边。看这啊,这里边文字比较多啊,那现在我们先不看,我们重点的先看这个图啊,大家看一下这个呢,就是一个完整的Atlas的一个架构图啊,OK啊,那大家可以看一下,我们先看核心部分啊,核心部分是哪儿啊。靠呗靠,是不是就是核心的意思对吧?那这个呢,就是咱们的核心部分啊,那核心部分里边呢,一共有这样的三大组件,哪三大组件分别是导入导出模块啊,Type system,也就是分类型系统,类型系统啊完之后呢,这一个啥是不是graph engine啊对吧?啥意思,是不是图引擎啊对吧?啊OK,大家简单介绍一下这里边每部分的作用以及功能啊,我们先看这个导入导出模块导入导出,大家说导入导出的对象是什么呀。
15:07
应是啥呀?那肯定是原数据啊,对不对,那你想一想啊,我的LAS要想能够对原数据进行管理,那我首先得先拿到这个,呃,对应的这个原数据才行,对不对?OK,那这个模块呢,它的主要功能就是去获取原数据啊,是这样的啊,OK,好,那这个完之后我们看下一个,下一个呢,这个叫啥?叫做type system type system。是不是类型系统啊,对吧?那这个类型系统它的主要作用是什么呢?就是对原数据的类型进行定义,刚才我们提到了,呃以就以have为例,Have当中的语言数据是不是就可以分为好多类型,对不对?列表字段这个还有这个数据库,那这是不是都是不同类型的数据库啊,对吧?那这个数据库的类型定义由谁来做,就是由它来做的啊,是这样的啊啊,这是类型这个系统的作用,然后接下来再往下走。
16:01
这个是啥?这个叫做GI graff engine,这个可能就不知道那么好想象了,对吧,这个GI engine叫啥叫做图图引擎对不对?这个图引擎的作用是什么呢?啊,其实很简单,这个图引擎的作用主要是为了和下边这个图数据库进行交互,这个Janus graph,这是一个啥啊,这是一个图数据库啊,图数据库啊,那什么叫做图啊,大家这个图有没有什么概念?图是不是一种这个比较复杂的一种数据结构啊,对吧?啊,大家都知道啊,咱们这个数据结构有啥呀?啊,有链表啊,对不对,链表啊,那还有啥呀,还有哎数对不对啊,还有数,那再更复杂的呢,是不是还有这个图啊,对吧?那图是不是就是点与点之间的关系会更加的这个哎,复杂多样啊对吧?哎,这叫图啊,是这样的啊,OK啊,那我在S当中是不是用到了图数据库啊,对吧,这个是一个图数据库啊,这个图数据库呢,它底层的存储引擎是可以选择的,比如说我在这儿呢,可以选用阿帕奇CR,也可以选用阿帕奇H,那你看一下S这边他用的是谁呀。
17:10
是不是就是HS啊,对吧?啊,这个呢是一个图数据库,它的计算,呃,它的这个存储引擎呢,它选择的是HS,也就是最终的数据会存到哪,是不是会存到h base啊对吧?那接下来我们来分析讨论一下啊,你说为什么这个呃,Itla会使用这个图数据库去保存我的这些语言数据信息啊,你说这是为啥呀。你这这是为啥呀。那你想一想啊,我们的原数据,每个元数据对象它都不是独立的,对不对,比如说举个例子啊,我这儿是不是有一个表当中的一个字段,这个字段你说它是独立的吗?它是独立的吗?它不是这个字段是不是会跟一张表有关系,那张表是不是会跟一个数据库有关系啊,能能理解吧?啊那诸如此类,我们这个原数据的关系是非常复杂的啊,那那么复杂的关系,那我是不是用图数据库去保存是最方便的呀,对吧?因为图数据库它最大的一个优点就是什么,是不是方便去保存这个复杂的关系啊,对吧?啊,因为图嘛啊图我一个点可以和很多点有关联关系等等等等,是这样的啊,那所以说Atlas呢,选用的是图数据库去保存原数据啊,那当然呢,这个图数据库最终的引擎就是啥,就是HP啊,数据存在了HP当中是这样的啊,那我们刚刚提到的这个graph engine,它的一个主要作用就是啥呢?是不是就是跟咱们这个图数据库进行一个交互啊,对吧,是这样的啊好,那除此之外呢,大家看这这还有一个东西,这是啥。
18:35
Index store对吧,就他用的是啥,是不是solar solar我上午的时候跟大家说了,Solar它是干什么用的,它是一个企业级的一个什么什么引擎,是不搜索引擎对不对,是不是便于检索呀,当然它建它便于检索是怎么做的检索引对不对,检索引啊是这样的啊那前面我们提到过slas呢,它有一个比较重要的功能,比较一个基础的功能是啥呀,是不是就是原数据检索呀,对吧?那所以说那为了呃这个检索的性性能讲索的效率更高,那所以此处呢,哎,他使用sor,哎去建了这个相应的索引啊,完了之后呢,我们就能够去做这个相应的全文检索的一个操作了,OK啊这块呢,需要大家去理解,OK啊,那到现在为止呢,那咱们这个核心模块,我们基本上就已经讲完了啊,就讲完了啊,简单总结一下啊,那首先导入导入模块里边主要的功能是就是导入我们需要去管理的原数据啊,对吧?啊,那导入来之后,那这个原数据最终呢,它是以什么样的形式存储的呢?啊,什么样形式或者存到什么地方啊,诶是不是会存储到一个图数据库里边啊对吧。
19:36
那这个图书库用的谁是这个gene gras,当然它的存储引擎选用的是h base,是这样的啊OK,那在这个当中,它会对所有的原数据都去进行一个呃类型的定义啊对吧?那类型的定义由谁来去做呀?是不是由这个type system去做呀,对吧?是这样的啊,然后我们再往后走,后边这还有一个啥,是不是还有一个呃,Graph engine啊对吧?这个graph engine的一个作用是啥呀?是不是就是跟这个图数进行交互对不对?那最后呢,那为了方便我们去进行检索,最终搜它是不是会使用这个sor去做一个搜索引擎啊,对吧?啊是这样的啊啊,这是它的核心模块,核心模块完之后呢,我们再去看上边啊,大家来看这儿,这儿是不是还有一层啊对吧?这一层它叫什么层?
20:18
叫做integration什么意思?集合层或叫整合层对不对啊,啥意思啊,给大家简单解释一下啊,其实这个有了这个核心模块之后啊,那LA的主要功能是不是就已经能实现了呀,就已经能实现了啊,是这样的啊,完了之后,那我们客就是我们普通人啊,我们普通人就是或者一些普通的用户,我们要干啥啊,是不是可以对这个Atlas进行一个二次的开发呀,对吧?你要二次开发,你是不是就得跟这个Atlas去做整合呀,对吧?那怎么整合,那他给我们提供的接口有什么,我们来看一下它提供的接口呢?其实有这样的两个,一个接口是啥?是不是就是这个CPI对吧?哎,这是一个接口,那除了这个呢,我们还可以利用它的哪个接口呢?大家看一下这是啥。
21:04
卡夫卡,诶,那卡夫卡它是怎样去作为一个接口的呢?这块呢,我先给大家解释一下啊,首先我们需要先明确一点,就是卡夫卡在这个Atlas这个架构当中的作用是什么啊,大家可以看一下这个卡夫卡在it中做的是啥呀。那这是不是他的目标语言数据mad data source对不对,那之后语言数据是怎么到了这个,呃,Slas当中的,是不是经过卡夫卡诶来到了这个itla当中啊,是是这个道理吧,啊,这是他自己的一个架构,那你想一想,假如说我现在呢,有一些其他的原数据需要交给itla去管理,但是呢,这个itla本身自己是不支持的,那你说你可以怎么办,你是不是可以去参照我们这个itla当中卡夫卡当中数据的这个规范,你去把你要交给艾管理的原数据怎么办?是不是写到卡夫卡对应的topic当中,你写进去之后,那这个atla这边是不是就能够拿到了,拿到之后是不是就会给你去做类型的定义啊,去给你存到这个图数据库当中等等等,是不是就可以去做各种各样的分析统计了,对吧?是这样的啊,也是我们这样的,可以利用卡卡去跟这个sla做一个集成,那当然了,我们也可以用谁是不是也可以利用这个API啊,对吧?啊利用API,那在这边呢,我可以去开发一些比如说外部应用啊等等等这样的一些呃工具,那这些呢,是S它自带的几个工具,那这里边我们一会重重点要使用的就是这个admi UI,这个admi UI呢,其实就是一个S的工作界面,里边呢,能够去查看这个血依赖,能够去做这个数据的检索等等等等核心功能都可以在这个诶UI里边去做,是这样的啊啊,那到现在呢,我们这个S的全部架构咱们就讲完了啊,就讲完了啊啊那现在呢,我们从前到后的呢,去给它顺一下啊,看这个原数据到底是从哪来,然后又到哪去了啊来咱们看一下这个图。
22:53
啊,那首先这是咱们的原数据对不对,那原数据是怎么到达咱们这个S当中的呀?啊,是不是原数据需要先到卡夫卡的某个topic当中对不对?那我现在这边到了卡夫卡里边,那我们安LA这是不是会有一个导入导出模块啊对不对?那导入模块其实说白了相当是一个卡不卡的什么呀,是不是消费者对不对,他去卡不卡topic里边去消费,诶我们放到里边的原数据啊啊,那完了之后呢,他把这个原数据拿到之后呢,会对他进行这个类型的定义,这是什么类,这是什么类,这是什么类为你进行相应的定义,那定义完之后呢,是不是会使用这个graph engine将我们的这些原数据存到这个原数据库里边啊,对吧?那当然原数据库呢,最终会写到h base当中,那完了之后呢,为了方便我们去检索,它还会诶使用solar get他建索引,那建索引之后呢,我们就能够方便的去呃进行检索了,OK,那当然我们呃去检索的时候,我们是通过这检索。
23:46
是通过这样的一个UI,一个外部页面去进行这个检索啊,我们要想查看依赖呢,也是通过这样的一个部页面去查看,是这样的啊,这就是的一个基本架构啊,OK,那咱们现在了解这么多就可以了啊,那再往下呢,就是这个itlas的安装了,哎,我把这个视频先停一下啊。
我来说两句