00:00
好,接下来呢,我们根据上节课的一个技术选型,那我们需要把这些技术框架串联在一起,形成我们整个数仓的一个技术架构。对吧,其实本来呢,这是一个技术架构师的一个活。那么以目前大家现在学到的这些技术啊,呃,还差一些距离,那我呢,就先给大家把这个设计好的这套架构先从整体上教给大家,或者说让大家有一个了解。那后续呢,等着大家随着这个项目的一个逐渐深入,学到了更多技术,等最终学完了再回来,反过来看这个课程,那相对来说就会好一些啊呃,现在呢,因为这里面我会提到大量的一些新的技术和一些框架,嗯,大家可能会有点懵啊,不用着急啊,这是一个正常现象,好,那我们先来看一下啊,这个项目架构。首先我们要站在一个项目开发的角度去思考如下几个问题,首先呢,我们的项目需求。
01:02
这个是不是已经做完了,哎,我们知道我们要做一个什么样的数仓,接下来就是集群的规模,哎,那这个呢,其实正常你去到企业里面,要问你们的老板,我们当前企业里面的数据量有多少。对吧,嗯,还要问企业里面目前有没有购买服务器,那如果没有购买的话,那你这块要提出两套方案,一套呢是阿里云,一套呢是护理机是吧?哎这些问题,那下来框架版本的选型,那我们这个项目当中啊,选择是开源免费的阿帕奇,那当然了,你也可以给他建议说我们用CDHR或者ATP啊相关的一些框架。还有那这个技术选型呢,我们也已经做完了,对吧,哎,就是跟做项目一样啊,逐渐的往前走,那好。往下看。我们这个舒畅项目呢,数据来源一共有两部分,一部分呢,是以这个,嗯。后台进行交互的叫业务数据,通常我们会存储在MYSQ这个数据库当中,对吧,那它还有一部分数据是哪呢?还有一部分数据啊,是前端买点的用户行为数据。
02:09
通常情况下呢,会存储在日志服务器当中,以文件的形式进行存储。对吧,嗯,那好,那你会发现无论是业务数据还是这个用户行为数据,它都有一个主件叫UN。那它是干嘛用的呢?哎,记住这个啊,它是起到了一个负载均衡的一个作用。什么叫负载均衡呢?大家思考啊,说我从这个业务数据库这边过来。过来这个10万条数据。那这10万条数据,我后台这块呢,有。这样吧,就有这四台服务器。那我这10万条数据,如果我不做负载均衡的话,很有可能10万条数据只进入到这个一号服务器里面,其他三条服务器都比较闲。有没有这种可能?其实是有的啊,其实有的,那如果我设置了这个安这个负产均衡,他能帮我做什么事呢?他可以帮我们,诶把这个数据均匀的分配到我们对应的这个几台服务器当中。
03:09
对吧,哎保证比如说这个你是10万条对吧,哎10万条,那这里面呃,保证2000。嗯,这个25000条,那下一个25000条啊,一共四个都是25000条。这样不就均匀了吗?那每台服务器都没有太大的压力。OK,那下面这个也是起到同样的作用哈。啊。安全负载均衡,那接下来我们这里面会将这个日志服务器里面的数据保存多久呢?保存30天。那这块为什么要保存30天呢?大家思考的问题。那如果说不保存30天后续啊,你这个收藏当中,对我这里面采集过来的数据,是不是要进行一个数据处理啊。那万一你后面这个数据集群崩溃了呢?整个瘫痪了。那我是整个数仓就没有数据了。
04:02
对吧?原始的数据都找不到了,那这个是惨痛的。记住,在大数据场景下,数据是最重重要的,什么最廉价呢?磁盘是最廉价。哎,那我们可以多备份一些数据。用这个磁盘的这个可靠性来来保证我收藏整个的一个数据的安全。这是这一块,那下面我们再思考啊,我有两块数据,一个是业务数据,一个是应用行为数据,那现在呢,我需要将这两个数据呢,都导入到hi do当中,因为未来我们数仓是基于have have数据存储在ADFS。哎,这样一个过程啊,要存到这里面去,那怎么把数据存过来呢。咱直接说,哎,我们可以用来进行采集,把数据上传到海底当中,对吧?啊没问题,确实是可以的。那同时接下来我们也可以。中间加上一个卡不卡,还记得我之前说这个卡法有啥作用了吗?哎,起到的是一个消风的作用。
05:06
比如说你这里数据传输过来过快,尤其改成双11或者618的时候,那我这边不一定处理的过来,那怎么办?我先把数据放到这个卡卡里面进行一个缓冲之后啊,我从这个卡卡里面慢慢进行消费,这样不就OK了吗?啊是这样一个过程,好,那这边啊大家要思考啊,说到这里面这个flu,那我们在设计开发的时候,我们要考虑它哪些事情呢。说我放了一个flu就行了吗?哎,其实flu里面有对应的south,有对应的China和对应的think。这里面还有对应的put事物和对应的take事物。那问题就来了,我们选择什么样的source,选择什么样的串灯,以及选择什么样的进,都需要我们进行考虑,以及呢,像里面还有对应的监控器,拦截器,选择器等等,这些器我们要不要去?配置去使用。
06:00
还有我们的需不需要对它进行一个优化,比如说它内存,我们需不需要对它的一个调整。这些都是我们要考虑的问题啊。好,那带着问题后面我都给大家讲啊,别着急啊,先从整体上有个印象,之后呢,是这个卡不卡,那一说到卡不卡呀,其实卡不卡这框架呢,还是非常复杂的。就这个狂卡卡自身,他就有23件事儿。那在你脑海当中,你能想起来哪些关于卡马的事儿呢?那比如说卡巴卡有多少分区,卡有多少副本,卡伐卡做不做监控?卡卡的分区分为策略,卡卡的isr队列,卡夫卡安装多少台,以及卡法的主成等等,这些都需要我们对它进行考虑。是吧,哎,好,那后续呢也是啊,会详细的讲解,那你现在呢,就是一个呃,回忆或者思考。啊,那你要安装卡不卡的话,肯定要安装对应的主keepper,那问题来了,主keepper我要安装多少台呢。那主内部的工作原理什么?
07:03
是吧,思考一下。那下面。我们如何将卡布拉里的数据上传到当中?那其实上传不用这个行不行呢?可以,我们可以直接写Java代码,来一个卡法的消费者,然后再来一个ADS的客户端,对数据进行上传,也能满足对应的功能,没问题。你甚至写一个Spark程序来读取卡布卡,然后把数据写到当中也可以,那你用link也可以。那只不过呢,这里面,哎,我们选择的这个是呃,Flu只需要简单的配置就能帮我们完成对应的功能。哎,比较简单实用。那下面我从这个里面出来的数据落盘到HT当中,那有可能会产生对应的小文件。那产生小文件之后,你又能想到哪些解决小文件的办法呢?哎,这里面是我们上课学过的hard归档,Combine test以及G用等等相关一些事情。
08:04
那再来。下面是如何将业务数据导入到我们的开组当中。那我们之前说了,我们选择的是用这个scoop框架帮我们来完成对应的功能,那好,那你的scoop对应的输入端参数怎么配,输出端对应的参数又应该怎么配?那以及像它发生数据倾斜,我们有哪些解决办法?行啊,再往下。下面呢,我们的书上用的是have one Spark进这个引擎进行数据分析,那一提到have have也有对应的这么九件事。那么每一件事儿,那你能想起来哪些对应的知识点?这边呢,是我们数仓具体的分成啊,我们这里面呢,一共是分了五层啊,一共分了五层,那好,那问题就是这一块是数仓最核心的数仓建模。那好,那这五层每一层又做了哪些事儿?
09:02
这也是我们需要思考,那我们分成的目标就是快速的能够统计出来对应的指标,以及呢后续有任何数据的变化,我能够游刃有余的应对变化的一些数据。这就是我们书商设计的原则。往下走。接下来哎,我们这书上当中还用到了一个K里进行一个多维分析,哎,这个DWD里面是有各种维度表啊,我们可以对它进行多维的一个分析,它的查询速度是非踌快的啊,查询结果我会存储在h base里面。再往下走,下边呢是pres,那pre呢,它是基于内存运算基站速度很快,但是呢,完全基于内存它呃,如果数据量比较大的话,容易产生OM啊。这种。下面呢,我们是用SCO把数据导出到这个对应的MYSQ当中,也就把adi数据导出到MYSQ,方便后续的进行一个可视化展示。
10:02
OK,因为你数据,如果你这个可视化展示,如果直接从ADS层那读数据的话,因为ADF,那这个ad层啊,它是HDS,那读写速度啊,现在说要慢一些啊,这种放到MYSQL里面。OK,那我们这里面用的这个super set进行可刷展示,哎,主要的原因呢,是因为super set呀,它是开源免费的,而且呢,个别功你看这个图形啊啊也还可以啊也还可以哈,比如说对一些中小型公司来说啊,是能够胜任的哈。再来像这个阿兹卡班进行任务的一个调度,那这个阿兹卡班呢,这里面像一般我们每天也就跑个100多个任务。而且这里面任何一个任务挂掉之后,哎,我们还可以有这种自动重试的这种机制啊。行后面呢,是用这个原数据管理Atlas啊,用它来帮助我们来分析你在整个这个数上运行过程当中,任何一个任务挂掉之后,它的影响范围是怎么样的。
11:01
再往下,下面呢是对应的权限管理,哎,对每张表每个字段进行对应的权限管理,不同的人有不同的访问权限。还一块呢,就是这个数据质量监控,那数据质量监控这里面我们用到的是Python脚本加脚本是我们自己写的啊,自己来完成的,因为目前市场上啊这种比较好的这个数据,这个数据质量管理框架啊没有啊像那个之前有个gra粉那框架呢,其实现在市场上用的也比较少了。大部分公司呢,用的都是Python加赛脚本自己来写啊来完成,那咱这边呢,也完成了一个啊脚本,后续呢,大家啊可以认真去啊听啊去学哈,也会把这个资料呢给到大家。啊,这是水子呢这块,那接下来呢,还有一个就是像诶Z加gra呢,它可以监控整个集群任何一个主件挂掉,诶那我这里面可以进行一个实时的监控,然后把这个故障信息发到像这个第三方的这种报警平台,可以集成电话邮件以及这个像这个钉钉啊,QQ微信群啊等等都可以。
12:09
这就是我们整个这个书仓架构这个流程图啊,这里面呢,提到了很多很多框架,而且很多这个整个项目涉及到一些技术。啊,大家一时之间确实啊啊这个记不太住啊,没关系啊,不用担心,我们后面呢会哎逐渐的按照这个数据的这个链条,从采集一直到分析,以及最终的可视化啊,还有呢,像的调度啊,啊原数据管理,权限管理啊,数据质量监控等等啊,一块儿一块儿的给大家去详细的讲解啊,不用担心啊。
我来说两句