00:00
OK啊,大家来看一下咱这个位置呢,是不是已经定义好这个cube了呀,对不对,那咱们定义好cube之后,它是怎么计算呢?咱们回忆一下昨天是怎么计算的,是不是咱们需要去手动的点一下action,然后点那个build完事了再去上边手动的去选一个时间。对不对,那他都知道咱数仓呢,我是每天都有新的数据产生的,那也是咱麒麟是不是每天都要去计算一次,那你说我们每天都人工的来这个位置去点一下这个按钮,去选一下时间,这个很显然是不太现实的,对不对,那这个麒麟能不能就是说跟我们数仓那样,能够让它进行每日定时的自动进行构建的。这应该是我们现在应该考虑的一个问题,对不对,因为这个东西我们如果说他要可以的话,那统一交给阿斯卡湾去进行这个统一的调度,那是不是就太棒了呀?所以说咱们使用麒麟,也就是说如果能让他调度的话,我只需要定义一次Q吧,定义完之后呢,那边就每天算就行了,咱们负责干什么,我就每天都去查就可以了。
01:02
对不对,想查就就查就行了,不用每天去点这对吧,我们肯定想要一个这样的功能,那这个功能我们怎么去实现呢?呃,我们应该这么去实现,需要借助麒麟的这个rest API。Rest restpi,那这个东西我们前面简单的说过,那现在我们来看看到底怎么去使用它的restpi啊,到底什么叫做restpi点。DOS这是文档,文档下边呢,我们往下拉啊,往下拉咱们换成中文吧,换成中文这个大家可能看着更舒服一些啊,来点文档。来往下拉,那啦啦啦往下拉,拉到哪拉到这个帮助,帮助这边呢,有一个这个rest API,那咱们点进来。点下来之后呢,这里边呃,虽然这是中文,但这边还是,呃这边还是英文是吧,那咱就看英文吧,来那这边就是这个所谓的rice API,我们看这个API呢,呃,先不说到底怎么去用啊,我们看它有哪些功能,你看啊,我们使用它的RACPI,我们能干什么,我们能宽RY,能查询。
02:04
对不对,还能干什么,还能做跟cube相关的事,那cube这边有什么?比如说创建一个CU吧,诶,List,查看所有cube来获取某一个cube,对不对,然后什么build cube,构建一个cub。对不对,那也还有什么,还有跟model相关的对吧,那也就是说实际上我们在这个页面上操作的东西,实际上都能够通过这个rest API去实现。都能够通过它去实现。是这样的啊,那现在呢,我们先先学一个简单的吧,咱们看看这个呃,查询query我应该怎么去查,那咱们点一下这个query检查,那这个往下走,咱们这呢,应该是有一个呃这个查询的这样的一个一个example,这是查询啊查询那查询这边来来看看啊,我们呃需要这个怎么去使用这个所谓的rest tpi看这。首先所谓的rest API呢,实际上就是一个一个接口,就是一个接口啊,那我们需要干什么呢?我们需要去访问它这个接口,那它的接口地址是什么呢?比如说它这是什么呀?是不是king API query啊,那也就是这个,这个接口是指的是什么?指的是来我们复制,当然了你需要什么呀,你需要加上它那个,诶端口号也是在这个位置,你需要去访问这个地方。
03:17
那这个就是咱们这个所谓的CPI,你需要去访问它这个接口,呃,主机名加口号,加上它那个C的地址。这么去访问啊,当然你在这不能直接用浏览器访问浏览器我们是不是默认是get呀,那这边人需要的是什么,我需要一个posts请求,需要post请求啊,那也就是说咱们诶想要查数据的时候呢,我需要诶往这个UIL去发送一个posts请求,呃,那接下来呢,所给我返回我想要的结果,或者执行我想要的操作。这就所谓的CPI,就是一个接口,那大家现在往下看。我们怎么去使用这个tpi呢?就是咱们如何去发送POS请求呢,往下我们这呢,有一个这样的工具叫做CUURL,这个呢是咱们linus系统当中的一个这样的,呃,发送各种请求的这样的一个工具,它功功能很强大啊,像发送发送各种各样的请求都能发送,那我们就可以用它来发送咱们这个POS请求,那这边他这个命令我们给它粘出来,看看这个东西到底怎么去用啊,来复制一下。
04:15
打开这个一个笔记。然后呢,我你有一个文件CTRLV,那来看一下,那这边呃,我们这个所谓的这个RA tpi呢,到底怎么去用啊来首先C-X后边post,这是指明我们这个请求要发送的是post请求,然后后边呢,有一个杠X,杠X就是那个请求头,这里边呢,大家看看我们有一个。什么呀,All?这是干什么用的,这是不是进行认证的呀,对不对,那其实大家这个应该很好理解,我们用页面去使用麒麟的时候,是不是也要登录啊admin,然后什么麒麟对吧?那同理,你用这种方式去访问麒麟也要登录。那它登录的方式是什么样的呢?是这样的啊,大家看一下,需要我们在这儿给放一个东西,你看这叉叉叉,我们需要把自己的用户名跟密码给他替换过来,但是他这样我们不能直接铭文的替换,他要求我们怎么样呢?要求我们这么去做,把你麒麟的呃呃这个账号,然后拼上一个英文的冒号。
05:17
然后再拼上你的密码,这样是不是得到一个字符串呢?然后呢,把这个字符串呢,诶给它加密,给它加密,把加密完的这个字符串给它放到这个位置,那加密方式要求我们是什么呢?要求是BASE64,嗯。诶使用这种加密方式去给他加密一下就行了,那这个BASE64这个加密呢,你可以在这个百度上面随便搜一个网站都能帮你做这个事,一会我们去转化一下就行了,这是这个认证的这个事。那后边呢,后边呢是谁是这个我们这个另一个这个,哎,请求头,那这边呢,这个咱就不用动了,咱保留它这个行了就就可以了,然后下边呢,是这个杠例,这是咱们那个数据体,那数据体当中呢,要求我们写的是什么,大家看一下,其实对于查询来说,我们这个数据体主要就是circle。
06:01
对不,主要就是,然后其次呢,还要求我们写上一个那个project的名字。这样,那最后呢,诶,你传进来的就是你要访问的那个,呃,Restpi的接口地址,那是不是就是API瑞,哎。就这么去使用就行,那现在呢,我们做一个测试,咱们做一个测试啊,查一下看看行不行,看行不行,来那我们来试一下啊,来啊对啊,用这个你也是可以给他转的,也能转也能转,那现在呢,我们给大家用那个页面去转一下吧,咱们去测一下啊。来,那你就直接搜一个,随便搜一个,比如说搜一个这个贝斯,这个64搜。诶,我这边应该是没开代理啊,那base,然后这个64你这么搜一下,这里边其实有挺多的挺多的啊,那那咱们用这个站长加密吧,站长工具吧,咱用它,那现在我们要转码,应该把谁转成谁呀,应该把这个来大家看一下。大写的ADM,大写的这个admin,我们的密码是什么?大写的king对不对,你给它拼上,然后后边呢,点击BASE64加密,那后边你就得到了一个这样的字符串,那我们要做的事呢,就是把这个字符串给它放到放到这个位置,放这个位置啊来放到这CTRL把这个叉叉叉替换CTRLV拿过来就行,那后边呢,呃,咱们需要在这个这个杠地,后边呢,需要把咱的circle变一下啊,这不是咱的circle,那个circle呢,我们就用之前那个,呃,我我刚才查过那个历史吧,这有一个块history。
07:23
这个circle,然后呢,把这复制过来CTRLC,然后放到这个里边,放到一个字符串里啊,放这CTRLV。然后再往下呢,还有一个什么project的名字,那我们那个project叫什么,我们那product叫贸啊G小写的g ma来把它拿过来,那后边呢,你请求的地址local house是不是肯定不对,得是海度102吧,海度102好,那现在呢,我们这个呃所所谓的CPI呢,我们就能够能够使用了,那我们就来测试一下啊CTRLC,那现在呢,我们呃,随便找一台节点就行,只要有这个CRCURL这个工具就行,默认其实自带的啊,那回车走看,他现在呢,就给我们返回了一个一个什么东西,返回了一个杰森。
08:07
往右阶森啊,那现咱们把这个杰森呢,给它粘出来来复制。接下来现在应该也基本上也看到我们这个想要的这个答案了,结果了,对吧,那这个来一个接。解解析一下,嗯。那放在这个位置,CTRLV。然后这个格式格式化,好,我们来看这个结算工具啊,结算转换完的东西,下面这些是什么,这些那个什么列的原数据信息咱就不看了,看下边一个结果,这里面呢,有一个results。看到没有,这就是我们最终那个S的查询结果就出来了,跟我们刚才在那个页面上查询的结果是一样的,好,那这个就是这个rest tpi,它的一个简单的一个使用,大致就是这样的,好,这个查询呢,我们通常不用这个rest CPI去查,那我们rest CPI用它干什么?就是用它用去进行定时的构建,构建cube,我们需要用它,那所以说咱们现在呢,呃,打开这个页面来,打开页面看这个麒麟,打开这个呃麒麟官网,那这里边我们查一查,就是我构建Q吧,这个KPI应该是怎么样的。
09:11
那是不是在这有一个build q呀,那点击点完之后呢,那这边首先要求我们发送的是put请求,呃,后边呢,呃,它的地址是这样的,是killing,然后API cubes,然后需要写一个be name,就是你要构建的那个cube,然后后边来一个build,这就是他的诶构建cube的restpi,那下边呢,我们看有也是有一个案例,那我们也要做的事呢,其实就是把这个案例呢,该替换的给替换一下就行了,首先是这个BASE60加密这个事你得给它改了对不对,那再往后呢,是呃,你看他这个杠地是什么杠地,就就这样的,你看啊,有一个开始时间,有一个结束时间,那实际上这俩时间就相当于什么,相当于我们在页面上点的那个输入框吧,咱是不是也要输一个开始一个结束啊,那这边跟那个是一样的。诶,只不过这边我是不是可以怎么样啊,诶可以把这个命令怎么办?是不是可以放到脚本里,然后这俩时间呢,我是不是可以用咱们那个诶date date这个命令去获取啊,那获取完之后给它把变量给它替换到这来,那那个脚本是不是咱就能够诶定时的去调度了呀,那也就能够实现这个定时构建了,是这样的一个原理啊,然后看后边,后边那个build type是build不用管,那后边请求的地址,地址是什么,是咱们那个孩标027070,然后API cube下边加上你要构建的那个cube的名字就完事了,然后就是这个命令呢,我们需要交给诶咱们这个脚本,然后脚本呢,交给阿斯卡班或者交给屋Z去调度就可以了。
10:36
其实就这就是这样的一个原理啊,那这个脚本应该如何去写呢?其实写这个脚本我们难点应该在哪?难点其实就是在这儿,那他要求我们获取的是什么?获取的是两个这个时间窗。对不对,而而不是什么年杠月杠日了,是两个时间串,而且时间串的它的位数是多少,是13位,那现在13位是不是就应该是以毫秒为单位的时间串啊,对不对,那也是我们得想办法获取到这两个这样的时间串,那这个东西怎么去获取呢?呃,我在这个文档上已经把这个脚本写好了啊,大家来看一下这个脚本。
11:07
复制一下。然后下面呢,应该就没有了,我们看看这个脚本,CTRLV来,那这个脚本呢,我们一起来看一看吧,一起来看一看,呃,这个格式呢,我给你调成shell。OK,来我们看一下,先看一下这个,先看一下这个咱们的第第这个第一行前两行吧,刚刚干什么事呢?首先我这定义了一个,呃这样的一个cube的名字,呃这个因为我后续那个请求地址当中需要用到这个cube名字,所以说我通过一个变量给他传过去啊好,那下下来是什么?是这个do date,那do date这个东西呢,我获取的仍然是前一天的日期。仍然是前一天的日期啊,因为咱们麒麟也是也是这个离线计算嘛,每天计算前一天的数据,这个大家得知道,然后下边呢,我这两行是在获取诶00:00的零秒的时间窗,那这个呢,是获取的是这一天的,呃,这个24时的这个时间窗。
12:01
对吧,那这个东西你看我是怎么去获取的啊,来大家看一下,这边首先要想获取这个时间窗,那也就是说你需要把一个时间给它格式化成一个时间窗,对不对。那我们get命令,我们使用的时候是怎么使用的啊,你比如说data,然后杠杠P。P,这个应该之前讲过是吧,那看一下啊,那date我们这个使用的时候呢,基本是这样的啊,使用方式来大家看。用法,用法是什么?诶date,然后加选项后边呢,然后有一个加号格式对不对,那选项呢,就是比如说这些东西杠例就是我可以展示一个指定字符串所描述的时间,然后后边呢,杠S这个加号是什么呀?加号后边往下走是不是给你进行格式化呀,对不对?那我们现在要想输入的一个时间的一个时间圈对不对,那有没有一种格式是以这个时间串的方式去展示这个时间的呢?我们来找一找有没有实际上是有一个的啊,我们来看这个东西。
13:00
这什么,你看它百分号杠S是不是展示的就是这个70年1月1号诶以来的,然后所经历的这个秒数啊,对不对,那是不是就是我们所谓的一个时间串,只不过它的单位是秒,而我们要的是毫秒,那我们得到秒,然后再给他转一下单位,实际上就可以了啊来大家看一下我这到底怎么做的,我是这么做的啊,首先来咱们这边呢,Date-D,诶我这边又date-D了,Date-D展示了什么?是不是你后边字符串描述的时间啊,对吧?那大家来看一下我描述的时间是怎么描述的。Dollar date Dollar do date是什么?是前一天的年杠月杠日吧,对不对,这是前一天的,然后后边我给他拼了一个十分秒。这个十分秒在这是什么意思,十分秒在这意思啊,是这个八点钟,八点钟他干什么事儿呢?其实是为了解决这个时差的,问这个时区的问题。其实为了解决时区的问题啊,那我们这个麒麟呢,它实际上默认是这个就是零时区,零时区啊,那我们这是东八区对不对,那所以说咱们零时区的这个八点钟,是不是就是咱们八时区的零点钟。
14:05
对不对,这个应该是大家应该是常识啊,应该是常识,那所以说这边呢,是为了处理这个时区,那也就是说这个时间实际上是我们这个地方的八零点钟,是我们这边零点钟啊,这个得注意,需要去注意到这个时区的问题,然后后边呢,诶加一个百分号S给它转成时间窗,但是这个时间窗刚才看了它返回的是秒,我们要的是什么,要的是毫秒,所以怎么办啊,是不是把这个时间戳再给它乘个1000就行了呀,乘1000那你得的就是毫秒了,把单位转换一下好,那这样一来我就得到了这个,诶,咱们这零点的这个时间圈了。那得到零点之后,我还需要一个24点的,那24点怎么怎么做呢。很简单,你得到零点之后,是不是再给它加上咱们一天当中的这个毫秒数,就一天一共有多少毫秒,那我给他加上不就完事了吗?加上不就得到24点了呀,那一天有多少毫秒呢?有这么多毫秒,这应该是多少8640万毫秒。那你给它加上就行了,那这样一来就得到了24点的时间串,那都得了之后呢,剩下的事那就容易了,是不是把这俩时间给它替换到咱们那个,诶rest KPI当中啊,启动时间结束时间对不对?那后边呢,还有一个地方要改一下,就是这个ul里边呢,你需要把这个cube name给它放在这个位置。
15:16
也是从一个变量引过来的,那这就完事了,那就这个东西呢,你就可以怎么做,就可以交给咱们的阿斯卡班去定时调度的,那这样一来每天算前一列的数据,每天算一下一的数据,这就是我们,呃,这个脚本如何去写,大家把这个脚本留着啊,嗯,其实主要是这俩时间大家得知道怎么去获取,那这个以后如果工作中用到这个麒麟了,你这么去用就可以了。好,把视频录一下。
我来说两句