00:01
大家好,呃,我们今天要学的这个大数据技术呢,叫做阿兹卡班啊,那阿兹卡班是什么啊,我们又用这个阿兹卡班来做什么呢?这应该是我们首先要搞清楚的两个问题。啊,那所以我们现在呢,先打开阿兹卡门的官网看一看,哎,它的官方是如何对它进行描述的啊好,这个就是阿兹卡门的官方页啊,官方网站的页面,那现在我们往下拉啊,这儿呢,有一段话就是对这个阿兹卡文的一个定义啊,这里边我们其实只看第一句就够了啊来咱们把第一句读一下。他说阿卡班,呃,ISA batch work flow job schedule created at,这个领英是吧,To run had jobs啊,在这句话里边呢,我们能够提取出来两个关键词,一个呢,就是work flow,一个呢,就是这个schedule。啊,那两个单词的字面意思呢?分别是啊,Work flow就是工作流程。啊,对吧,工作流程,那schedule呢。
01:02
嗯,那字面意思就是调度器啊,或叫调度系统啊,对吧,那呃,所以说那阿兹卡温呃从字面呃上来说呢,它就是一个什么东西啊。它就是一个工作流程调度器,对吧,也就是说用来调度工作流程的,哎,那什么叫做工作流程的啊,也就什么叫做work flow。这个呢,呃,是我们现在需要强调的一个概念啊,那我们现在先举一个生活当中的例子啊,呃,就是有同学他可能自己喜欢做饭对吧?啊,那每次做饭的时候是不是都要经历一个工作流程?你看,比如说你今天想想做某一道菜对吧?那首先你需要怎么做呢?哎,先去采购食材对吧?那食材采购回来之后呢,你需要怎么做呀?啊,需要洗一下是吧?那洗完之后呢,你可以切,那切完之后呢,啊,你就能炒了对吧?那炒完之后呢,哎,那就能吃了啊当然呢,也不一定能吃是吧?啊那刚才我们所提到的呢,这就是一个典型的工作流程。
02:02
啊,这就是一个典型的工作流程啊,那从我们刚刚这个生活当中的例子呢,我们其实能够提取出来,呃,一个工作流程的两个特点啊,那第一个特点就是啊,一个工作流程呢,是由多个任务单元组成的,那刚刚我们所提到的这个做菜的这个每一步骤,每一个步骤其实就是一个所谓的任务单元。那第二一个呢,啊,第二个特点是什么,就是哎工作单元之间啊,就是任或者任务单元之间是有前后的依赖关系的。那就还是刚才那个流程啊,你看。我们每一个步骤之间都不是相互独立的,对吧?啊,它是有前后的依赖关系的,那例如我们必须得把菜先买回来,你才能才能洗,洗完之后才能切,对吧。啊,写完之后才能写,那这个呢,就是哎,一个工作流程的两个特点啊,两个特点啊,那阿兹卡班是干什么用的,就是用来调度工作流程的啊,就是这样的工作流程。
03:00
那当然,阿兹卡湾它所调度的工作流程,那肯定不是我们刚刚这个炒菜的流程,对吧?那他调度的是什么流程呢?它所调度的是海杜工作流程。诶,那海杜工作流程是什么样的啊,我们在哪能找到,或者在哪会有这个海杜的工作流程,让我们去调度呢?啊,那这些问题的答案呢,都在哪呢?都在数据仓库当中。啊,都在数据仓库当中,那当然可能,呃,现在咱们同学在这个当前阶段可能还没有接触到这个数据仓库的项目。啊,那没关系啊,我们现在呢,可以简单的先把这个数据仓库的概念先来说一说。啊好,那现在呢,我们通过一个呃图来给大家说,简单的说一说这个数据仓库的概念啊好,那我现在先画一个图T,咱们画一个。那什么叫做数据仓库呢?我们现在诶,先可以这样简单的去理解一下啊,所谓的数据仓库呢,就是我们企业当中的一个,呃,你可以把它理解为一个数据中心啊,比如这个呢,就是我们的数据仓库,嗯。
04:11
仓库啊,那我们这个数据仓库当中的数据,它从哪来,那又要到哪去呢?那我们来继续给它来完善啊,嗯。好,那一般情况下我们数仓的数据呢,主要来自于我们公司的这个业务系统。来自一行。好,那这个数据我们呃放到出仓之后算结束了吗?哎,不是,哎数仓呢,不是我们这个数据的目的地啊,不是我们的数的地目的地,而是为了给谁呢?而是为了诶我们后边的这个诶BI应用做好准备啊,那所以说呢,我们数据哎还是有其他的目的地的,那一般都是啥?就是我们数仓后边的各种BI应用这个没改啊。
05:01
啊,各种必然应用。好了,那这个就是我们的数据的主要来源啊,那这个呢,就是我们数仓的哎,最终去向,呃呃,是数据的啊,是数据的数据的主要来源啊,那这个呢,是我们数据的最终去向。好,那这个数据我们从前到后会经历哪些这个处理过,处理过程呢?哎,我们简单的给大家画一下啊,那首先我们得呃先明确,哎,咱们的数据的主要来源类型有什么啊,其实我们这个数据的主要来源类型呢,哎,可以分为两个啊。我们一个呢,叫做。这个DB。啊,这个DB呢,其实指的就是,呃,我们业务系统当中的这个关系数据库啊,这是我们数仓当中数据的一个主要来源。啊,那其次呢。还有一个这个诶,用户行为日志,用户行为日志好,这是我们的第二类数据源啊,好,那首先我们需要先将这个业务系统当中的数据呢,先给它同步到我们的数据仓库当中啊,先同步过来啊好,那假如说这个呢,就是我们同步同步过来的这个原始数据啊。
06:12
啊,那我们这个数仓哎,它的主体是什么啊,数仓的主体一般都是have啊,大数据里边这个数仓主体一般就是have啊,就用have去做啊,啊那所以说我们数据呢,其实来到数仓之后,相当于什么呀?哎就是哎以哎各种表的形式去存在的啊,相当于我们会把哎这些哎原始数据呢,给它导到我们have的表里面。啊,会导到耗表里面啊,那这里边呢,我们啊需要去借助一些这个传输工具,哎,比如说flu啊,哎或者是scoop呀,哎,帮我们把数据从业务系统诶给它同步,或者叫做传输到我们的数据仓库当中。来这呢,我们可以画一个箭头。啊,那我们不同的数据来源呢,需要用到不同的这个同步工具啊,这个后边在书藏项目当中呢,都会涉及到的啊,那比如说这个呢,我们叫做就传输吧,啊同步吧,我们给它同步过来,那这个同理,哎,也需要这个同步过来,嗯。
07:13
好,那现在呢,数据已经来到了我们这个诶数据仓库当中了啊,那来到数据仓库当中之后呢,我们需要对数据进行一系列的处理啊,一系列的处理啊,这里边首先我们诶需要对数据呢,比如说进行一系列的这个哎,简单的清洗的工作啊,我们把这个箭头拿过来。在这呢,我们会对其进行清洗。那清洗的这个工作里边包括一些比如说啊脏数据的过滤呀,啊,或者一些脱敏的工作呀,等等等等啊,这是我们会做的一系列的,呃,第一步处理啊,那这个清洗完之后呢,哎,我们接下来呢,可能还会对这个数据呢,来进行啊比如说一些哎聚合汇总的操作,哎,比如这样呢,我们会对其进行哎汇总啊进行对其进行汇总,好,那最终呢,哎,我们。
08:04
把数据呢,给它处理完了之后呢,最终需要得到我们想要的这个结果啊,最终想要的结果。拿回来这边呢,我们可能还,诶我们可能还需要再进行进一步的计算。比如说计算。啊,那最终哎得到我们想要的结果啊,最终我们的得到我们想要的结果啊,那当然呢,咱们想要的结果肯定是以我们后边的BI系统为目的地的啊,就是我们的BI系统里边会有什么呢?比如说会有简单的比如说哎报表啊,啊或者说还有什么呢,还有一些比如说数据挖掘的这个项目啊等等等等,那他们需要什么样的数据呢?那我们在数仓啊,最终就需要给他准备好。啊,给他准备好好,那也是我们后边的这个系统呢,也会从哎我们的出仓里边呢,去拉取他们所需的这个数据。啊,是这样的啊,那大家现在呢,都已经看到了一个我们刚刚所提到的这个工作流程,你看这是不是就是显然就是一个典型的工作流程啊。
09:05
对吧,啊,他是不是满足我们刚刚所提到的工作流程的两个特点。对吧,第一个特点啊,就是我们的一个工作流程呢,它是怎么样的呀,它是由多个工作单元组成的,你看我们这个数据从前到后,中间是不是经历了很多的处理步骤啊。对吧,每个步骤就是一个工作单元啊好,这是第一点,那第二点呢,那我们这个工作单元之间有没有前后的依赖关系呢。显然是有的,对吧,咱是不是必须得先把数据同步到我们的数仓,你才能对其进行分析工作,对吧?那清洗完之后才能汇总,汇总完之后再计算对吧,最终才能得到我们哎想要的这个结果。最终才能得到我们想要的这个结果。是这样的啊,所以说这就是一个典型的工作流程,而且这就是我们所提到的海杜op的工作流程。那孩子们的工作流程,好,那现在我们呃,已经知道什么叫做这个,大致已经知道什么叫做数仓了,对吧?啊,而且也已经知道了数仓里边呢,会有这个工作流程啊好,那现在我们来思考一下,就是我们为什么哎要用这个阿兹卡班啊去调度这个工作流程的,我们不用阿兹卡班行不行?
10:18
好,咱们先假设一下,我们现在不用这种调度工具,那不用调度工具的话,问一下大家,你说我们这个工作流程,它的任务应该如何提交?应该如何提交?啊,有同学可能会会说了,我就逐个提交呗,啊他知道,哎,我们这个任务呢,是有前后的依赖顺序的,对吧?啊前后的依赖关系,那我就按照你的依赖关系,我依次去提交每个任务不就行了吗。啊,那这个说的简单啊,但是真当我们实际就这么去做的话,你想一想会有什么样的问题。你想啊,我们这个大数据的计算呢,可能每一个步骤都需要耗费很长的时间。啊,都需要耗费很长的时间,可能一个小时啊,可能两个小时啊,那假如说你整个流程都是我们人人工去提交的话,那会遇到什么样问题,比如说嗯,我第一步啊,我提交完了,提交完之后我是不是可能需要等待呀,对吧,我可能需要等一个小时。
11:14
等一个小时之后,这个任务完成之后,我是不是才能提交下一个。啊,可能第二一个任务呢,也需要等一个小时,那你就得再等一个小时,等他完成之后呢,我才能提交,哎,第三一个。是这样,那是不是显然这样人工去提交整个流程显然是不太合理的呀,对吧。啊,而且大家要知道啊,我们这个任务呢,啊,就是我们这个数据啊,首先啊,每天都会有新的数据产生。啊,那这些新的数据呢,我们每天都要对其进行这一系列的处理,也就是说整个流程呢,不是说提交一遍就完事了,你需要每天重复提交。那这样一来,我们人工去提交这个任务,是不是就显得更不太可行了呀,对吧?啊,那所以说我们其实就是因为有这样的一个痛点啊,所以说我们才需要用到啊谁呀,就是阿兹卡班这样的调度工具,去帮我们调度这个工作流程。
12:12
啊,那阿兹卡班它能够实现什么样的功能呢?啊,它能够实现,哎,这个主要就是俩功能,第一个功能呢,啊,就是说哎,我们把整个工作流程啊,里边的我们需要做的工作啊,我们这个工作的依赖关系等等等等都告诉阿德卡班啊,那阿德卡班就能够按照我们这个,呃,工作单元之间的这个依赖关系去依次帮我们提交任务了。OK,他会先提交第一个,而且他会监控这个任务,等这个任务完成之后,那再去提交下一个啊,那这一系列过程呢,都是自动化运行的。那我们要做的只是提交一次,然后剩下的他会根据这个依赖关系去逐个提交每个工作单元。啊,这是阿兹卡班能实现的第一个功能,那第二个功能呢,哎,就是阿兹卡班能够实现这个定时调度的一个做功能。
13:04
啊,那前面咱们提到了,哎,整个工作流程我们是不是需要每天都去哎重复执行啊,对吧,那阿兹卡班呢,能够定时的去哎调度能够定时的去执行整个工作流程。啊,那这个呢,就是阿兹卡班,哎,它的意义以及它的应用场景。好了,那讲到这儿呢,大家应该呃已经对这个阿兹卡班呢有了一个初步的认识,首先我们已经知道了它是哎工作流程调度系统,对吧,或者叫做工作流程调度器,那那我们在哪会用到这个工作流程呢?哎哎,我们的这个诶数据仓库当中,哎就会用到诶这个工作流程调度系统。好,那这个呃,阿兹卡班的一个呃,简单介绍我们就介绍完了啊,那顺便提一下,那我们本次这个阿兹卡班的课程呢啊,我们已经将阿兹卡班的版本由原来的这个呃二点叉哎升级到了这个哎三点叉。
14:00
啊,并且呢,在本课程当中,呃,我们呃升级了这个呃阿兹卡温啊,这个工作流程的这个配置啊,我们升级到了这个flow2.0啊这个2.0相对于之前那个1.0来说呢,啊,它的结构更加的清晰,功能更加的丰富。啊,那其次呢,呃,我们在这个本套课程当中呢,也引入了这个,呃,条件工作流。啊,条件工作流,那条件工作流呢,呃能够使我们的这个呃工作流程的配置呢,它的这个逻辑能够更加的灵活,是这样的啊,那再有一个呢,我们响应这个企业当中的这个呃要求啊,那我们呃在这个本次课程当中也加入了这个电话报警的这个配置。那是这样的啊,也就是说那本本套这个课程呢,相较于我们上一个版本,呃,有了很大的这个升级啊,是这样的。
我来说两句