00:01
好,那刚才呢,我们已经呃从头到尾的去演示了一下,这个阿兹卡班到底如何去使用,好,那通过刚才我们的演示呢,大家应该也能感受出来啊,呃,我们这个阿兹卡班从头到尾的这个整个的使用过程当中,其实最重要最核心的部分其实就是什么呀。就是这两个文件的编写。只要我们能够学会这两个文件的编写啊,一个product文件,一个是flow文件,对吧?只要能学会他俩的编写,那阿卡的使用呢就不成问题。啊,那所以说我们接接下来呢,重点来说一下这两个文件到底如何去这个编写啊,我现在先看第一个啊,第一个呢叫做诶project文件啊,现在可以跟大家说一下啊,这个文件当中的内容是固定的。啊,就是这个什么阿兹卡班罗version冒号2.0,这是固定的写法。啊是固定的写法。然后呢,我接下来给大家说一下,那这个文件的内容啊,到底有什么含义,以及这个文件的作用啊是什么。
01:03
来我们看它的内容啊,中文叫做阿兹卡班flow version 2.0这块呢,是不是在。标识一个什么flow的版本呀,对吧,啊什么的版本,Flow的版本。那这个到底指的是什么呢?给大家解释一下啊,其实这样的,我们这个前面提到过啊,在使用阿兹卡班的时候呢,呃,我们需要哎,通过一个配置文件啊去干啥呀,去描述这个工作流程对吧?啊需要去描述这个工作流程,那其实哪个文件是我们用来描述工工作流程的呢?其实下边这个啊,不是有一个flow文件啊,对吧,这个文件就是我们前面一直提到的用来描述工作流程的配置文件。啊,那阿兹卡班目前呢,所支持的啊,这个描述工作流程的这个配置文件的写法呢,有两种。一种就是咱们现在看到的这种,那它所采用的语法呢?哎,这其实用的是压面语法。啊,这是一种语法,那就是还有另外一种啊,还有另外一种,另外一种语法是什么呢?是purpose文件,Purpose就是KV键值对K等于VK等于V啊是这样的两种啊,那哪个是第一代呢?呃,这个practice文件是第一代,那这个压email文件呢,是第二代啊第二代那其实咱们这个文件的作用就就是干啥,就是告诉阿兹卡班啊,我现在所使用的这个,呃,这个工作流程描述文件的版本为2.0,为2.0,所以说那这个文件的内容就是固定了。
02:29
啊,只要保证它的文件的后缀是pro product就可以了啊OK,这是第一个文件啊好,那接下来呢,我们来看第二个文件,第二个文件刚才也提到了,它是不是就是我们一直在说的用来描述工作流程的那个文件呀,对吧?所以说这个文件呢,才是咱们要重点学习的文件。啊,那刚才提到了,那这个文件呢,它所采用的语法呢,是压ma语法,那所以说我们一会儿呢,会简单的去,呃,带大家呢去看一看,去学习一下这个email的基础语法啊,那现在呢,我们先来简单看一看这个内容啊,就是即便我们现在不了解这个压email文件啊,不知道email这个语法什么样的,这个内容咱们大致也能看懂啊,大大致也能看懂,咱们看一看啊这就这呢有一个什么,有一个nose对吧?Nose,然后后边有个冒号啊,相当于这相当是一个所谓的一个K对吧?那后边呢,是它对应的value对不对,你看它value都有啥啊,那value里边呢,首先这儿呢有一个哎减号横线或叫连字符,那这个东西干什么用的?哎,这个其实是压面语法当中一个,哎,特殊的一个标记啊,这个很重要啊,后边咱们会说的啊,那往后看后边呢,我们是不是有这样的几个,像这几个属性啊,对吧,有什么name Type Conig对不对,这些分别是什么呢?Name名称,名称呢,在这指的就是我们,哎这个工作单元的一个名称,咱们就要找个A。
03:44
那后边有一个type type就是类型,类型指的什么?是工作单元的类型啊,类类型呢,叫做可望的类型啊,就是相当于执行一条命令,对吧?那这个命令是什么命令?你往下看,这有一个con con是一些配置参数,对吧?里边呢就告诉我们了,Command是啥呀?是e hello word。
04:01
也是我们这儿的实际上执行的一个任务就是啥,就是要打印,哎,Hello word是不是要执行这样的一条命令啊,就是。啊,是这样的啊好,那现在其实我们可以看一看我们刚刚那个hello的案例,它的执行的这个果是什么样的啊,结果什么样的,咱们可以去哪看,可以从它的日志里边去看,对吧?那大家还记得怎么找到这个日志吗?还记得吗?啊,是不是在job list当中啊,找到对应的诶这个job,然后看到后面这个log对吧,那咱们点进来。点开之后呢,你可以观察一下啊,这个位置是不是就有一个hello word呀,对吧,这个呢,其实就是我们哎这个工作单元它的执行结果啊,就是这样的啊好,那这个呃,说完之后呢,我们现在应该对这个附录文件呢,已经有了一个大致的一个啊了解了啊好了,但是我们这个文件啊,光看懂不行啊,咱们得会自己会写才行,对吧?所以我们现在呢,有必要去简单的学习一下这个,诶它所使用的这个语法,也就是压面尔语法。好,接来咱们去看一看啊,这个教程我们可以从网上随便找一个,比如打开一个百度啊,在这里边呢,我们搜索yal eml,然后呢,我们在这里边找一个教程,这个可以,或者说你用下边这个,诶他他这个也可以啊,点开啊,咱们看一看。
05:15
好,那看一看压面是干啥的啊,这边说了编程免不了写要写配置文件啊,那压面文件呢,其实就是一个专门用来写配置文件的语言啊,就是spring BOO是不是也支持使用压面文件作为,呃,压面格式作为它的配置文件呀,对吧?啊接着往下走啊,咱们看看这个压面呃,这个语法的一个简介啊,这里边呢,有它的基本语法规则,一共有四条,咱们来看一下,首先第一个大小写敏感,这个很重要啊,那第二个呢,使用缩进表示层级关系。就是在压面当中呢,你的缩进不能随便写啊,这个是呃,有特殊的语法的啊,那也得往下走,那缩进时呢,我们不能用tab键去缩线,只能用空格,这个也要注意,只能用空格啊,然后最后一条,那缩进的时候呢,我们的空格数目不重要,也就是你缩进几个空格不重要,一个也行,两个两两个也行,三个也可以。
06:06
啊,那但有一个要求,什么要求就是你得保证相同层级的元素左侧对齐啊,什么意思啊,就是说你缩进几个空格不重要,但是一定要保证同一层级的元素,你的缩进的空格数是相同的。啊,这是它的四条基本语法要求。啊好,那再往下呢,这儿呢,有一个呃,井号表示注释,井号表示注释,那这个呢,我们呃,记住稍微记一下就可以啊好,接着往下走。下边呢,我们看一看压面它所支持的这个数据结构,它所支持的数据结构就是压面这个呃语法,它所支持的数据结构呢,我们完全可以和我们大家所熟悉的这个哎杰森去做一个类比啊,完全和呃可以和这个杰森去做一个类比啊,你看这里边有什么有对象啊,那咱们阶层当中有没有对象,有啊阶层对象对吧?一个阶层对象我是不是最外层是一个划括号,一个大括号对吧?里边呢是它的属象啊和哎对应的值对吧?KV啊KVKV啊,这是不是有一个阶层对象啊对吧?那我们压二当中也有类似的对象的概念,那其次呢,第二一个是数组,那这个我们在阶子当中有没有数组,也有当中是不是用一个哎中括号或叫方括号,将我们的数组元素给它括起来对吧,然后每个元素呢,用逗号分隔啊,那这就是数组啊,那还有一个按件就纯量啊,纯量呢,其实就是单个的不可再分的值,比如说我写一个一对不对,这是不是就是一个纯量啊对吧。
07:34
那在我们阶S当中,其实也是有这个纯量的概念的,比如说一个单个的int值,一个数字类型的值,或者说呢,一个这个字符串啊,这都叫一个纯量啊,是这样的,那其实我们呃,这个最基础最核心的东西呢,其实就是这些啊,咱们把这些要是能搞明白,那其实呃,我们去编写这个阿兹卡班的这个附录文,附录文件就没有任何问题了。啊是这样的,那所以接下来呢,我们,呃,通过几个小例子呢,去学习一下这个语法啊,学习一下语法,那重点呢,我们就看一看,哎,我们怎么去用压ma去哎表示一个对象,哎,怎么去表示一个数组,怎么去表示一个纯量啊好,那现在呢,我们先从这个对象开始,先从对象开始啊呃,这时候我们打开这个Li,呃,这个诺va加加啊我们新建一个文件,这边呢,我们可以通过这个语言来把这个语言呢,调成这个压面格式,这样一来的话呢,能有这个语法的高亮啊,咱们给它来写一下,比如说我现在的墙写一个这个对象加一个对象啊,那这个对象呢,比如说我有这样的几个属性,有什么属性呢?有name属性啊,有配置属性,还有这个真的属性,三个属性,哎,我用它来描述一个对象,那这个怎么写呢?这个我们要是用杰森去写的话,是不是得来画括号,然后里边的age name冒号,哎,这个什么什么,然后那个age冒号什么什么,然后呢,针冒号什么什么,对不对,那在这个页面当中怎么写呢?怎么去写啊,你直接写name。
08:56
然后呢,后边冒号啊,冒号后边呢,写它的Y6啊,Y6,比如说张三啊,然后在这块呢,大家要注意一下啊,就在压面当中,我们的冒号和后边的Y6之间啊,要有一个空格啊,要有个空格啊,这个是要注意的地方啊,好,那内幕写完了,那接下来继续我们比如说A仍然是冒号,注意后边空格,那比如说十岁了啊,那再往后呢,有一个真的G,真的仍然是冒号啊,比如说ma ma有啊是这样的啊,那这就是我们所定义的一个压面当中的对象。
09:29
啊就是这样的,其实我们可以这样啊,可以把这个对象呢,直接给它转成杰森,然后看一看它转成杰森之后长什么样,那这样呢,能够方便大家去理解,去掌握这个压面啊这里边我们找到刚才那个百度界面啊呃,咱们可以搜一个这个,诶比如它啊就这个就可以压面这个在线编辑器啊,格式化校验那点开。点开之后呢,那它的这个结构是什么样的,这边是我们所编写的这个压面的内容,后边它才能给转成对应的接森啊,可以看一看。先把左边内容去掉,然后把我们写的内容放进来,你看它所对应的杰森是不是就长这样啊?
10:05
对吧,那这样一来是不是大家一下就知道我们的L和这个杰森之间的一个对应关系了呀,对吧?啊好了,那这个玩意之后呢,我们继续往下进行啊,那现在是不是已经能够使用压面去定义这个对象了,对吧?那如何用压面去表示一个数组呢?如何表示数组?啊,那阶子当中怎么表示数组是不是方括号,然后里边呢,是不同的元素,用这个逗号分隔就可以了,对吧?那在面当中怎么去标识呢?是这样的啊,在压面当中,我们不需要去写分括号,我们只需要写一个横线或减号,或叫连字符去标识,我后边要写的东西是数组当中的一个元素就可以了。比如说我现在有一个这样的元素,里边有三这样的一个数组,它里边有三个元素,分别是ITEM1啊,ITEM2。啊,然后呢IT2,然后呢,再回车啊IT3。
11:00
啊,这改成二,好,那这时候你得到的这就是一个所谓的哎,压面当中的数组,那要注意的是啊,这个横线呢,它所表示的就是我后边写的东西,就是数组当中的一个元素,然后注意的是呢,这横线跟后边的内容中间也要有一个空格啊好,咱们把它摘摘出来,CTRLC。然后呢,放在这个位置CTRLV,你看它是不是就能够对应到我们杰森当中的一个数组里边啊,对不对,就长这样啊,就是这样啊好,那当然了,这个只是一个什么,只一个纯量的数组,对吧?那我现在要是一个呃对象的数组应该怎么去写呢?其实很简单啊,咱们把上面的那个内容呢,给它改一下啊,就是拿下来啊,CTRLV啊拿下来在这儿呢,CTRLV,好,那我不是说这三个对象属于一个数组嘛,对吧,那怎么办?是不是前面加横线就行对吧?我需要在内部前面来加一横线,注意后边得有空杆啊,然后大家要注意的是啊,我们前面提到过,在压面当中,我们用缩进去表示层级关系,对吧。
12:01
啊,那你说name age真的,这是不是属于同一个对象的三个属性啊,那他们是不是应该是属于同一层级,那理论上这仨是不是得对齐才行啊?啊,前面讲了同一层级它的,哎,缩进的空格数要相同才对,对吧?那就这样了,我们需要给它对齐啊。一定得对齐,来空格,来空格空格好,那这个对齐了,那同样道理,那这边是不是也要做相同的操作呀,对吧?来空格对齐,那这个呢,对齐对齐对齐对齐啊,那中间这一行空行可以去掉啊,那这个呢,也是一样的啊。好,那下边这俩对齐对齐啊,这个对齐好,那这样一来我们就得到了一个哎,压面当中的对象数组CTRLV,好,那它所对应的就是一个大家所熟悉的这种阶层数组。啊,这就是这个数组的概念啊,这是数组概念,那纯量什么叫纯量呢?啊,我这只写一个一啊,这就是一个纯量啊,就是一个纯量,好了,那我们到现在呢,相当于就给大家那个解释完了,呃,我们这个丫ma的一个基本语法了啊好,那大家如果能把刚刚我们所讲的这些东西掌握的话,那其实呃,大家再去看我们之前啊这个附漏文件,或者说自己去编写这个附漏文件,应该就没有什么大问题了。
13:14
啊,应该就没有什么大问题了啊,那现在我们在掌握了这个压ma语法之后呢,再回过头来再看一看这个flow文件,看能不能看懂啊,那首先呢,这个文件的结构呢,是这样的,它这里边首先有一个nose对吧?No冒号后边是什么?后边这是不是有一个横线对吧?横线前面讲过它它代表的是啥?它所代表的是啊,我后边所写的内容属于一个呃数组,它是数组里边的一个元素对吧。是这样的啊,那所以说我们大家大家应该能看出来啊,这no呢,相当于是一个K,那这个K它所对应的value是什么呢?Value是一个数组啊数组,那一个数组里边是不是会有多个元素啊,对吧?那大家可以猜一猜,我们每个元素所对应的应该是什么呢?啊,其实这个附漏文件当中啊,这个数组当中的每个元素所对应的就是我们工作流程当中的一个工作单元。
14:11
啊,也就是我们阿兹卡班当中,哎,那个job的概念啊,也就是假如说我们的工作流程是这样的啊,假如这是我们要调度的一个工作流程,它里边呢,一共有四个job对吧,1234,那这个工作流程我们要用flow文件去描述的话呢,我们这个数组里边就应该有几个元素啊,就得有四个啊,1234。啊,他们有这样的一个对应关系啊,那数组当中的每个元素啊,它所描述的是不是就是它所对应的那个工作单元呀,对吧?那这个工作单元它的名字是什么?那它的类型是什么,对不对?那它的一些额外的配置参数是什么?啊,其实是这样的一个对应关系啊,是这样的一个对应关系,好,那现在呢,我们就把这个哎附录文件的它的编写规则,哎哎,这个阐述完了啊,阐述完了,当然呢,我们后边呢,还会再补充一些这个附漏文件当中的一些相关的一些参数啊,这个放到后边,诶再给大家去讲解啊,那这一小节呢,就是要求大家哎能够掌握,哎,咱们这个附漏文件的编写规则,好。
我来说两句