00:00
好,那从本节呢,我们就先开始系统的学习一下阿兹卡班啊,那等我们学完之后再使用它去调度数仓当中的全流程啊好,那首先我们先打开阿兹卡班的官网,看一下它的官方定义啊,来往下翻啊,其实我们只需要看这一句话就够了啊,来阿兹卡班ISA batch work flow job对吧?那这里边呢,有两个关键的概念,那分别是work flow和schedule啊,那现在呢,我们分别来看一下这两个概念啊,咱先看work flow啊,那什么叫做work flow啊?啊,这个work flow它直译过来呢,其实就是工作流程啊,那什么又是工作流程呢啊。那其实一般情况下啊,这个工作流程包含以下两个特征,那第一个特征啊,就是一个工作流程呢,它通常是由多个工作单元组成的。啊,那第二一个特征是什么呢?啊,就是每个工作单元啊,它不是各自独立的,而是相互依赖的,那所以说我们在执行的时候呢,必须保证其先后顺序。那其实不难看出啊,我们数仓当中的那些计算任务就是一个典型的工作流程啊好,那接下来呢,我们再来看一下这个第二一个概念啊,也就是这个scheduleularr,那scheduler呢,它直译过来呢,就是定时调度器,那也就是阿兹卡班亚,它也具备Korea type的定时功能啊,但是啊,它和corn type呢是不完全一样的,那具体哪不一样呢?啊来我们分析一下啊,Corn type呢,它的定时调度,它调度的是单一的任务啊,而阿兹卡湾调度的是整个的工作流程。
01:32
啊,这个呢,一定要注意一下啊。那也就是说它是以工作流程为调度单位的,那我们在使用阿兹卡班去进行定时调度的时候啊,我们只需要为其配置一个工作流程的开始执行时间,那他呢,就会在规定的时间提交工作流程当中的第一个工作单元,那并且啊,他会在第一个工作单元完成之后啊,根据工作单元的依赖关系啊,自动提交下一个工作单元。
02:02
啊,OK啊,那这个呢,就是阿兹卡班的一个基本介绍,那其实啊,这个市面上的调度器啊,也不只有阿兹班一个啊,其实类似的还有很多,我们文档当中呢,也有一小节有相应的介绍,那接下来呢,我们一起来看一下啊好,那接下来呢,我们简单介绍一下,就是市面上呃,比较常见的几个调度器啊,那这里边呢,有大家所熟悉的啊,比如说linus下边的这个定时调度工具叫做c typeb啊,那也有大家可能没有那么熟悉的,比如说屋Z,哎,阿兹卡班啊,Allo啊,Dolphin scheduler。啊,那这么多的这个调度工具啊,这么多的调度器我们应该如何选择呢?啊,需有一个这样一个简单的原则啊,就是对于那种简单的这个任务,我们可以直接使用link下边的框去做。啊,咱们举个例子,比如说我们这个数据库的定时备份任务。对吧,那这个任务相对比较简单,比较单一,那这时候我们就可以使用tap去做。
03:00
可能tab呢,它有个问题啊,它是不能直接去解决,哎,咱们那种工作流程当中的任务单元之间的依赖关系的。啊,这个点这一点他是做不到的,那所以说对于我们前面提到那种复杂的工作流程,你用C去调度啊,那就有点力不从心了。啊,那对于这种复杂的任务,我们使用谁呢?使用下边这几个。好,那下边这个呃,复杂任务的,哎,这个调度器呢,有这么的多啊,有屋子,有阿卡班,有air flow,有dolphin scatter,那它们之间有什么样的区别,有什么样的联系呢?啊,我们先说联系啊,先说联系,那其实虽以说咱们这个呃框架有这么多啊,但我们去使用的时候呢,你其实能够发现啊,他们其实大致的使用思路是相同的。啊,我们不管使用哪种调度工具,我们在使用的时候呢,其实主要就是分两步去做,第一步。描述工作流程。第二步,配置定时。啊,配置定时规则。
04:00
啊,那这个怎么去理解啊,首先第一步你想一想啊,你现在有一个工作流程需要交给这个工具帮我们去调度,那他是不是得先知道我们的工作流程是什么样的呀。对吧,那也就是说我们需要告诉他,那我们的工作流程有几个工作单元。啊,每个工作单元它的具体工作是什么,那其次呢,我们需要告诉他我们的依赖关系是什么样的,那只有告诉他之后,他是不是才能按照我们这个依赖关系出去逐个的提交我们的任务啊。对不对,好,那我们把这个工作流程描述好之后呢,那我们需要去配置咱们的定时规则,比如告诉他我需要让我们这个任务在哎每一天呢,哎,几时几分几秒去执行。等等等等,是这样的,不管用的是哪一个工具,我们的使用步骤呢,主要就是这样的两个啊,这是他们之间的联系。啊,那它们之间区别体现在什么地方呢?其实区别主要就体现在我们去描述工作流程或者是配置,哎,这个定时规则的这个方式上边。
05:03
啊,有些工具啊,我们去做这些步骤的时候呢,我们可能是通过配置文件的方式去做的啊,那有些工具呢,我们可能是通过一个web页面啊,去通过拖拽的方式去做的。啊是这样的啊,其实不同也是它们的区别,主要主要就体现在这个上面啊好,那接下来呢,我们再呃,把每一个这个工具呢,再做一个简要的阐述,那我们先说屋子啊。首先乌Z呢,呃,它是CDH平台下边的一个工作流程调度器。啊,那如果说我们,呃,使用物的时候呢,我们借助于CDH平台下边的一个可视化的啊,这个工作组件啊,叫做hue。啊,如果我们借助hue去使用UZ的话呢,它这个UZ使用起来是相对比较友好的啊,因为hue呢,给我们提供了一个可视化的工作界面。啊,那我们所有的配置啊等等都是在这个页面上去完成的啊,这个相对来说是比较简单的啊,比较易用的,但是如果屋ZZ脱离了这个hue啊,那我们去使用的话呢,相对来说就比较麻烦了啊,如果脱离hue,那我们呃去使用乌Z的时候呢,需要去编写大量的这个呃SML文件啊,比如说我们描述工作流程,我们配置定时规则,都是通过这个SML文件的形式去做的啊,这个我们写起来相对是比较繁琐,比较麻烦的。
06:28
这是屋ZZ它的一个特点啊,也就是说我们如果使用的CD平台,而我们使用了这个h hue这个可视化的一个呃组件,那这个屋ZZ用起来是比较方便的啊呃,如果脱离了hue,那用起来就比较麻烦啊好,那接下来看阿兹卡班。呃,阿兹卡班呢,它整体来说呢,是一个简单易用的这个工作流程。啊,是一个简单易用的工作流程调度器啊,那我们在使用阿兹卡班的时候呢,比如说我们去呃配置工作流程啊,那是通过这个呃压面文件来去配置的啊,那我们去这个配置定时规则,是直接在页面上去配的啊,那这个相对来说是比较容易的啊,是比较容易的啊好,那接下来看下一个air flow啊,那这个air flow呢,它是由Python来开发的一个这个工作流程调度器啊,那我们在使用air flow的时候呢,比如说我们去配置工作流程,去配置定制规则,这时候我们需要使用Python脚本。
07:29
啊,那也就是说你呃,使用air flow呢,需要具备一定的这个Python语言基础啊才可以啊,那下来是最后一个dophping schedule,这个dophin schedule呢,它是目前比较火的一个调度器啊,是由咱这个呃,它是一个国产的啊,是一个国产的调度器啊,那它在使用的时候呢,哎,主要都是通过这种来可视化的方式去做的,比如说我们去呃配置它的这个工作流程啊,我们去配置它的定时规则,那都是在页面上,哎,通过这种可视化的方式去做的啊,那所以说这个用起来呢,相对来说也是哎比较方便的啊,也是比较方便的好,那这个呢,就是我们这几个常见的工作流程,哎,调度系统的一个各自的特点。
08:15
啊,各自特点啊,那我们这里边使用的最多的呢,还是这两个老牌的工作流程调度器啊,一个就是乌Z,一个是阿斯卡班啊,那接下来呢,我们把这两个做一个简单的对比啊,啊,那总体来说呢,咱们这个屋子呀,相比阿斯卡班是一个重量级的任务调度系统。啊,那它的重量体现在什么地方呢?体现在它的功能十分全面啊,你想要的功能,哎,它有,你用不到的功能它也有,那所以说呃,这个物件呢,相对来说是有一点点臃肿的,有点臃肿的啊,那它的功能全面,那带来的一个问题呢,就是配置起来十分的复杂啊,十分的复杂。啊,那阿兹卡班呢,它相当说功能相对是比较精简的,比较经典,只有我们这种就是哎核心的功能啊,核心的功能啊好,那如果说我们不在意某些功能的缺失啊,那这个轻量级的调度器,这个阿兹卡班呢,其实是一个很不错的候选对象啊,那虽然阿兹卡班相对于乌Z啊,哎确实是有一定的这个功能的缺失。
09:20
但是啊,阿兹卡班呃,它剩下的这个核心功能也足够我们去使用了啊,也足够我们去使用了,所以说大家再去选用阿兹卡班的时候呢,呃,不需要有太多的顾虑啊,这个呢,是完全够用的啊,完全够用的好,那这个就是我们常见的几个呃工作流程来调度系统啊,他们的一个简单介绍。
我来说两句