00:00
好了同学们,那咱们接下来给大家看一下咱们这个Atlas的这么一个架构原理啊,从这个图上看啊,我们这个Atlas的架构还是比较复杂的,那基于它这么复杂架构,所以就导致咱们这个Atlas它安装部署起来比较麻烦,哎,我们这个Atlas是吧,它依赖很多东西。那咱们接下来就从这个架构这一块给大家讲起,为什么我们这个atla要依赖于这么多东西啊,就比如说哈多啊,Have啊,组keep啊,卡夫卡啊,还有咱们的h base啊,还有这个sor是吧,咱们要从这个架构给大家一点一点的这个讲一下,那我们把这个PPT大家放一下啊,嗯。首先啊,我们通过这个PPT上最开始啊,是在官网上给大家这个截了一个艾特的架构图。那这个图我们怎么看,甚至有很多东西我们都没有听过是吧,那我就告诉你啊,咱们应该从这个底层核心看起,这个Q,这个这么一个模块,也就是咱们Atlas的这么一个核心模块。
01:03
在咱们这个Atlas的核心模块里边,它大概分为了三类啊,那分为哪三类啊,首先啊,它有一个导入导出模块。然后呢,有一个这个分类系统模块,然后有一个图引擎模块。那咱们要一个一个给大家讲一讲,首先我们先来聊一下这个最简单的,也就是说咱们这个导入导出模块。那在我Atlas里边这个导入导出模块,它导入导出的是什么呀?哎,对原数据同学们,咱们既然叫做原数据管理,那就说明咱们这个Atlas是吧,它是专门针对各个框架的原数据做这么一个导入导出的。那就比如说哎,我们来看上边最上边这个是吧,Meta Meta data source叫源数据源,注意同学们这个叫源数据源啊,那我们这个atla都能够导入,导入哪些框架的原数据啊,非常多啊,就比如说哎,有have的原数据,Scoop的元数据是吧?还有咱们了解的h base原数据,甚至还有一些别的什么sto啊,哎,包括一些什么这个大家没有听过的框架,那咱们这一块重点给他讲什么呀?咱们以have为例啊,咱们给他讲一下如何把这个have的些数据给它导到S里面。
02:27
那他这块是怎么导的呀?首先啊,它这个导入导出模块,它分为两大步,第一步就是第一天啊,就是你刚刚安装好Atlas以后,我刚刚安装好,那这个时候我的have是不是有可能已经运行了一段时间了,就比如说啊,在公司里边正常搭建收仓,它肯定是先在have里边建表,做你这个数仓,等你这个数仓做的差不多了,等你这个业务发展的比较复杂的时候,我们才会做这个语言数据管理。那就比如说我这个have里边假设啊,我已经有100张表了。
03:02
哎,那我有意见吧,那我那我第一天我这个导入导出模块先干嘛呀,你得先把have的这100张表的原数据,你给它做一个什么呀,做一个初始化,就是首日第一天咱们得先把所有的原数据先给它同步过来。那你第一天同步过来之后呢,那我接下来是吧,我以后的每一天,我这个原数据是不是会发生变化,那一旦你这个原数据发生变化了,就比如说你修改了这100张表的某一张表,或者是你你又增加了一张表,以及你这些每张表之间的一个关系,一个circle,你又跑了一遍,那我接下来的每一天,我的这个导入导出模块还会对咱们这个原数据做一个什么呀,做一个增量。就是一个增量的这么一个同步,哎,那这样一来我是吧,我每一天会对你这个have的数据做一个及时的更新跟导入,那我这一块是怎么导入的呀,我是直接从have里边拿到了atla吗?注意不是它中间啊需要用到一个消息队列,叫messaging啊消息队列,那这个消息队列咱们用什么呀?啊没错,咱们用大数据里边比较火的这么一个卡夫卡框架,作为咱们这个atla的这么一个消息队列,也就是什么意思啊,也就是说,哎,我这个atla的这个导入导出模块会首先通过一个勾子程序啊,人家官方啊有一个说明什么呀,叫户可程序啊HOK,那咱们咱们翻译过来之后呢,就是一个勾字啊,就是就比如说have的勾字是吧,Have有对应的have的OOK,那你scoop有对应的scoopook,包括你的h base有h baseook就是对应的勾子程序,那我们就首先我们会部署一个have。
04:48
的这么一个户口,然后呢,那这个钩子程序会把你have变动的原数据给你同步到卡夫卡里边,做一个消息的缓冲。那然后我们这个Atlas的这么一个导入导出模块,会消费卡夫卡脱皮里边数据,然后呢,把它消费到我it里边,那你说我这个数据是吧,原数据进到我it里以后,我处理过之后,接下来干嘛呀,我不仅要导入,我是不是还需要导出啊,因为我atla本身是不能存储原数据的。
05:22
那我这个Atlas用什么来存储呢?哎,没错,我用的是h base啊,我用h base这个框架来存储咱们的原数据,那基本上看到这你就已经明白为什么咱们这个Atlas的安装需要这么复杂了,我简单给大家给大家捋一捋为什么呀,首先你想玩atla,你得有一个HP。因为我的h base是作为我Atlas的一个原数据你的存储库来使用的,那你想用h base,你的安装组keep ZK,你那有吧,啊走keepper h base,然后你想安装HP,还有还有什么呀,还得有哈豆腐。
06:02
哈杜甫咱们得有,那然后我既然想来勾取我have的数据,所以我的have是不是也得有啊,我的哈杜甫have,然后走keep h base,最后呢,你还需要安装一个卡夫卡。啊,因此你会发现,哎,咱们这个Atlas它的数据,它的这个安装复杂就复杂的这个架构上面,正是因为它底层设计了这么复杂的一个架构,导致你安装部署起来就比较复杂。啊。那我们明白了这个导入导出模块以后呢,那咱们接下来再往下看啊,第二个模块是什么呀,是这个系统分类模块。那我们这个分类系统模块指的是什么分类啊,就是咱们这个Atlas能够对什么分类啊,没错,它分类的依旧是咱们的原数据。啊,大家想啊,首先啊,我这个Atlas支持多种数据源的数据。那那我们这每一种数据源的不同,你肯定得分个类吧,那就算你是指导了一个have,那针对我have这个框架来讲,我have的数据是不是又可以分为多种多种类型啊,哪些类型啊,就比如说咱们是不是得有库啊,库算是咱们have的一种数据,那我除库之外我还有什么呀?我还有表,那除了表以外,我还有字段。
07:22
啊,字段,我甚至还有什么呀,还有路径,大家因为大家都知道,咱们每一张have表,它肯定指向咱们HDFS的一个存储路径,所以说啊,咱们这每张焊表的一个路径,也算是它的一个原数的信息。那因此你会发现咱们这一个have的元数据,我都可以分为多个类型,因此哎,你肯定是需要这么一个分类系统,给咱们这个原数据做一个类型的分类的,是这样的,那所以说这个分类系统大家应该比较容易理解啊,那我们最后一个模块。又是干嘛的呀,是吧,Graf engine图引擎。
08:04
那这个图引擎肯定是给咱们生成对应的图表了呀,图了呀,那我atla里边有个什么图啊,刚才也给大家看过了,咱们有一个表与表之间的依赖图,还有一个字段与字段之间的选依赖图。大家想一下啊,像我这些图,并且它底层又把这些图存到了h base这个框架里边,那大家是吧,学过h base的小伙伴应该能够明白,咱们这个hps它的底层是不是一个KV对结构啊是吧,它的底层肯定是一个KV结构。那我这个KV结构,它肯定是一个线性结构,呃,从简单来讲是吧,那我这个线性结构能否存储这么一个复杂的图结构啊。如果直接用h base来存,它是存不了的,为什么呀,因为咱们是吧,在这个大学里边有一门课程叫数据结构,在数据结构里边给大家讲过几个结构,就比如说有什么结构啊,有简单的线性结构,然后呢,有复杂一点的数结构,数形结构,还有最复杂的就是这个图结构,这个图结构它分为点和线。
09:15
是不是我有多个点以及多个线啊,并且我这每条线还可以各种连是吧?这种就是最复杂的一个图结构,那么这种图结构如果直接存到以KV6的形式来保存是没法保存的,那我应该怎么存储这个图结构啊,因此咱们需要咱们这种图数据库。那我这个Atlas底层用的是什么图数据库啊,哎,用的是这个gene graph,这个genenu graph是一个是吧,这个市面上比较厉害的这么一个图形数据库,那我们这个这这个这个这个这个图引擎的底层其实就是调用的这么一个图数据库,然后呢,经过这个图数据库的一个转变,把咱们这个。呃,依赖图,然后给它存到了这个AHV里边啊,以这个KV对的形式存到了HV里边,所以说这个图引擎大家琢磨一下也是能够理解的,那我们讲完了这三个模块之后呢,然后你你你基本上对咱们这个艾LA的架构已经有一个清晰的了解了。
10:19
那我们再往下看看剩剩余的干嘛,首先我们我们我们还部署了什么呀,针对咱们这个图引擎,以咱们这整个空模块,我还给它安装了一个sor,那这个sor又是一个什么东西啊。它是一个全文检索数据库啊,它可以是吧,这个类比于这个ES,这个solar大家没听过,但是这个EA应该是能听过的,那而这个,而这个solar跟这个ES就是一个功能差不多的一个产品是吧?我能够对你这个全文检索做一个索引,然后帮助咱们去搜索咱们的这个语言数据。啊,为什么,因为我这个itla它一个最基础的功能就是搭建一个数据字典,那既然你都到你你你都叫数据字典了,那我们肯定是能够干嘛呀,根据咱们这个Atlas查询咱们的原数据的,那就比如说在大公司里边,我有几万张表。
11:13
啊,那我想根据什么呀,我想根据一个order关键字是吧,Or DR订单这么一个关键字来查询我所有包含订单的表啊,字段呢,还有这么一个库啊,那那因此你得对你这些所有的语言数据干嘛呀,给它做一个索引,那咱们这个Atlas它的底层是用solar这个框架来做的这个索引引擎。啊,所以说这个solar是给咱们用户提供了一个查询索引这么一个功能啊,所以因此我们称之为什么呀,称之为咱们的index store,就是这个索引数据库,那这个是什么呀,这个是me star store,这个是咱们的数据存储库。那我们这个底层的看明白之后呢,在咱们这个最上面是吧,我还供了一个API接口,也就是说咱们这个atla它的这个架构提供了一个API接口,这个API提供了两种,一种是HTTP协议的,一种是那个rest协议的是吧,那既然人家这个Atlas提供了这种相应的API,那咱们其实就可以干嘛呀,咱们就可以针对这个atla做一个二次开发。
12:21
啊,就比如底层是我atla,那然后呢,我根据你it开发的这些接口,我再给你包装一层,做一个二次开发这么一个工作,那咱们基本上有什么应用啊,就在LA最上层有什么应用啊,啊就比如说我这个atla能够根据这个接口向外边对接谁呀,对接咱们这个ranger啊,对接我这个ranger打标签的这么一个系统。哎,我就可以对接我这个单词使用,我还可以提供一个爱dmin UI啊,就是一个管理员这么一个界面啊,当然这个管理员界面实上这个艾特plus自带的,就咱们作为一个程序员,你可以通过这么一个网页端,通过这么一个管理员界面来操纵咱们的itla,或者是查询itla的语言数据库啊,是这样的,那除此之外呢,咱们还可以做一个业务的分类系统啊,业务的分类系统。
13:10
好吧,那整个这个图讲完之后呢,那我们在最后看一下这个文字的描述,首先第一个是吧,就是咱们讲的这个Meta store s就是原数据源。啊,目前我这个atla支持以下的几种数据源,就比如说咱们学过的h base have scoop,卡夫卡啊,包括这个我提嘴这个LA还支持Spark啊,还可以支持这个Spark里边的这个这个原数据管理啊,是这样的啊,那然后再往下呢,我们这个messag,这个messaging是个什么呀?就是么一个消息队列,那我这个消息队列干嘛呀?诶,那咱们是吧,可以把咱们这个原数据给它存到卡夫卡的一个托品额里边,做一个数据的缓冲啊,数据的缓冲啊,那我们再往下,那就是中间的三个模块了,导入导出模块,然后这个什么呀,类型系统分类模块,还有一个图形引擎模块啊,那我们再往下还有什么呀,就是我们最底层的两个库了,一个叫h base的原数据源库啊,就是原数据库,一个是这个sor的什么呀,基于sor的这么一个索引数据库啊,这两种,这两个最底层的这么一个数据库,大家简单要了解一下。
14:22
那再往上是吧,就是我们往上面提供了相应的这个API,有这个HTTP的,还有这个rest和API的,是这样的,那再往下呢,我们再往上呢,我们还提供了这么三个应用,首先有一个IDUI,那这个组件就是一个we部的应用程序,允许我们这个数据管理员和这个数据科学家是吧,发现和注视咱们这个原数据,其实最重要的就是根据这么一个界面来搜索。咱们这么一个原数据啊,那再往下我有这个ranger的权限管理模块,还有这么一个业务分类模块,那整个这么一张图,就给大家简单介绍了一下Atlas的这么一个架构,你会发现这个Atlas它底层的设计还是比较复杂的。
15:05
正因为它这么一个复杂架构,就导致咱们这个atla在这个安装部署起来有点复杂,但是大家不要害怕是吧,它虽然安装起来比较复杂,但是使用起来还是比较简单和方便的,好吧,那这个air的架构就简单,我们给大家聊到这儿啊。
我来说两句