00:00
好,各位同学,那接下来我们就开始学习这个麒麟的使用,那其实学习麒麟的使用我们大致可以,呃思考一下,你说我们学的使学习使用,我们学习使用哪些东西啊,分为哪些内容啊。那第一个其实就是计算,那一个呢,就是查询,没错吧,因为咱们吉林想想啊,呃,我们本质上作为一个分析工具,我们最终肯定要肯定要干啥,肯定就是要查询对吧,但是呢,麒麟它的计算原理是什么?是它的查询原理是是预计算对吧?那所以说我们得提前告诉他什么。提前得告诉他,我们这个预计算的逻辑是啥,对吧?这个具体逻辑你说你觉得应该有啥呀,比如说我应该有哪些维度字段参与计算,对吧?那我应该有哪些度量值参与计算。那我度量值是不是得有聚合函数啊,对吧,你要是进,你要进行萨姆求和呀,还是进行这个avg平均值的计算呀,对吧,你是不是得告诉他这些计算规则呀,对吧?是这样的,所以说我们学习麒麟其实就是学习这两部分内容,一部分就是学习如何配置计算规则,那一部分呢,就是学习如何使用麒麟查询结果,其实就是这样的两部分内容,那当然咱们要学的话,肯定得先学计算,对吧?先计算啊,先计算好,那首先先学计算的话,我们第一步应该干啥呢?
01:18
你说接到第一部你干啥呀?那肯定是对接数据源呀,对吧?没错吧,肯定是对接数据源,那数据源怎么对接,是不是data source,没错吧,点data source,点完source之后,你会发现这点完之后,这里边会有一个提示啊,什么提示no project selected对吧?那首先我们是不是得有一个工程啊,对吧?这工程怎么选,在这儿选这是不是有一个choose project大家对吧?那你会发现我这点的时候,我点点完之后没有,那说明啥?咱得新建一个对吧,怎么新建,这是不是有一个加号,那我们点加号。点点完之后在这儿呢,我们需要起一个名字啊,咱起啥名呢?呃,比如就叫j ma ma下边呢,需要写一个描述信息,那完了之后呢,点击submit提交,那success点击OK,那现在我们这个是不是就选完了,就就创建完了呀,对吧?创完之后你会发现它这个位置是不是已经自动帮我们选中了这个j ma了呀,对吧?那当然是因为我们现在只有一个这个呃,Project,所以它自动选中了,如果有多个的话呢,那就得我们手动去选一下的啊是这样的啊好,那完之后我们继续往下走,那现在我们是不是就可以对接这个data source数据源了呀,对吧,那点。
02:23
点完之后你会发现这里边我们一共有四个按钮,对吧?这四个按钮分为两组,前两个是对接have的,后两个呢是对接卡不卡的啊,也就是这个是离线,这个是实时对吧?那在这儿呢,我们重点就说这个实时,那实时,呃重重点说离线啊离线,那离线为什么我们有俩按钮呢?诶有有啥区别,他俩看一下,一个是load table,一个是load table from tree,那我们先点一下load table load table,其实这边就是说你想对接哪张表,那你就在这边呢,是不是把哪张表的表名给它写在这就行了呀,对吧?啊,然后多张表用什么风格,Common separated那啥意思,是不是就是逗号分格呀,对吧?那写的时候呢,是不是就是库名加表名。
03:07
库明点表明没错吧,哎,这是咱们手写,那另一种方法是什么呢?Load table from tree,诶它这是不是有一个树形的一个结构啊,对吧?这里边咱们有什么库,有什么表呢?这是不是能够给咱们选出来,完事我是不是就可以点了呀,对吧?诶你点它一下是不是就变粗了,变粗之后说明是选中了啊,是这样的啊好,那我们肯定是使用这种方式去导表的啊好,那现在咱们点的应该是哪个,是不是这帽库里边呢?那下边呢,我们需要点一下这个收off啊收off把所有本都给它拿出来,完之后我们才能选择啊首先咱们得明确一点,咱们麒麟对接haveve对接的是什么?是维度模型对吧?所以对接的肯定是我们的实时表加维度表,在这里边呢?我们以谁为例呢?我们选一个自己的星型模型啊,我们以订单明细为例吧,那订单明细与订单明细相关的维度表应该有谁?有user,有province,还有啥,是不是还有那个时间,还有一个地区,对吧?咱们有这样的几个维度,呃,有这样的一些这个维度表,对吧?那在这儿呢,我们先少选几个,因为咱们选的多,我后边的计算量是不是也大呀,对吧?那在这里边我们选。
04:12
呃,一个实时表,呃,就选那个订单明细时表,维度表选用户地区,然后再加上一个呃时呃,再再加上一个这个商品吧,再加一个商品吧,啊为啥为啥要选这仨啊,因为这仨维度表,因为这仨维度表它涵盖了我们所有类型的维度表,你看啊用户咱们是一个什么类型的。是不是拉链表没错吧,那这个地区的这个地区呢,是一个什么?是一个特殊的,它只有一份数据对吧?那还有一个是我们的s k s ku是啥?是一个全量维度表对吧?啊在这呢,我把这三种维度表都选上,目的呢,就是告诉大家我们不同类型的维度表咱们应该怎么使用啊,咱把这仨都选上啊好,我们先选实时表吧,应该是DWD,咱们这可以过滤啊,找到DWD是不是older detail啊,对吧?啊找到它,那完之后呢,我们再继续往下进行,那咱们再找谁?再找那个是不是DM啊对吧,再找DM蒂M,这里边我们选谁?首先第一个SKU咱们得选对吧,那再往下走,那还选谁?是不是还得选一个deam user info,还有一个base province,是不是就他们几个呀,对吧?那这时候呢,我们点击nchron。
05:20
好点完之后你会发现这个表咱们是不是就拿到了呀,对吧?啊,就拿到这些表了啊,但是大家要注意啊,我拿到这些表,我仅仅拿到的是它的什么。原数据只有原数据,数据是不是还是在HDL上放着呀,对吧,那这个大家要理解一下啊,但是咱然后呢,咱们这儿有有一个小事要注意一下,就是我们去同步数仓里边的表的时候呢,有一个注意事项,什么注意事项呢?我们看文档来,咱们往下翻。找到我们获取数据源,这步就这一步来往下往下,这是不是有一个注意事项啊,对吧,什么注意事项啊,来咱们把这一段话读一下,这个非常重要,一定要看一下。麒麟呢,它是不能处理have表当中的复杂数据类型的,复杂数据类型指的就是我们的a map strip的,对吧?是这样的,就是即便咱们那个复杂类型的字段,我们并未参与到最终的计算之中,啥意思?就是说我不管你这个表当中的复杂类型的字段到后续有没有参与到我那个分组聚合当中。
06:22
啊,我都不允许,都不允许,这啥意思,只要你这个表里边有复杂数据类型的字段,那我们这个麒麟就怎么样啊,就不能用啊,就不能用啊,这个一定要注意一下啊,那所以说我们在加载这个还有数据源的时候呢,不能直接加载带有复杂数据类型的字段的表啊,那那但是咱们现在思考一下,我们刚才所导的这些表里边,咱们有没有这个复杂数据类型的字段呀。咱们一个看一下啊,它里边有没有,它里边没有对吧,那它有没有呢?它有它有什么,它是不是有两个平台属性,还有销售属性的字段。
07:03
还记得吧,这是商品信息啊,商品信息是不是咱们有一个平台属性和销售属性啊,对吧,那俩类那俩字段是什么类型。是不是就是结构体数组对吧?那所以它肯定是不行的对吧,那它有问题,那U的也会有没有问题,它没问题,那它也没有问题,那所以现在有问题就是SQ in four有问题,那所以说我们现在是不是不能在这儿加载这张表啊,对吧?那不能加载怎么办?那怎么办?那咱们怎么解决?你不能加载,但是我现在是不是需要用到这个维度信息啊,对吧,啊,我要用我需要用,我还不能加载,这怎么办呢。大家想一个方案,怎么能解决这个问题?啊对,刚才有同学提到了,诶,我这儿是不是可以来一个临时表,对吧?啊来临临时表干啥?临时表我相对于真正的商品维度表来说,我少那俩字段,我把那俩俩字段去掉,完了之后呢,我每天怎么做,是不是可以把这个呃,商品维度表当中除了那两个字段之外的数据给导入到我这个临时表里。
08:06
然后呢,在这个麒麟当中,我使用谁,我是不是使用这个临时表就OK了呀,诶这确实是一种方案,但这种方案呢,还有一个有有点麻烦,有啥麻烦呢,你是不是还得再额外的去建一张物理表。没错吧,完之后还得每天再去给他往里边导一次数据,对吧,那你导数据的这个任务你是不是得每天执行对吧?那你是不是还得在原来那个阿兹卡班的全流程里边,是不是得加上这样一步啊。是这个道理吧,啊,这个比较麻烦啊,比较麻烦,那所以说在这儿呢,咱们并没有采用这种方案,我们采用的是谁呢。我们采用的是这个方案,再来看一下。视图。哎,VI ew这个视图大概这这个概念大家了解吗?应该了解吧,就是视图呢,你可以把它当做一个什么呀,对,当做一个虚拟表对吧?注意啊,视图我们虽然也能从视图里边去查数据,但是视图下边会真正的存数据吗?他不会的啊,那它它到底怎样一个逻辑啊,其实很简单,我们在创建视图的时候,我们需要怎么样,是不是需要在视图下边绑定一个select的查询语句啊,对吧,没错吧,那我每一次从这个视图里边查询结果的时候,实际上都是在从哪查。
09:13
对,都是在从咱们这个查询语句返回的结果里边去查,对吧?哎,是这样的啊OK,那所以咱们在这呢,其实可以去创建一个这样的视图,这个是最合适的,那具体怎么创建呢?咱们往下翻,大家来看一下我这个创建视图的语句啊,来看一下。看能不能看懂,是不是咱们可以执行一个create view you,完之后呢,来一个Di SKU in for view you没错吧,完之后下边来个啥,是不是as as后边是不是就有一个select语句啊,对吧,是不是就select from我们这个Di SQ in for这张表完之后呢,把所有字段都查出来,除了谁。是不是除了咱们另就是那两个复杂类型的字段呀,对吧?诶那这样一来我们就可以把那俩字段过滤掉了,过滤掉之后呢,那在这个麒麟当中,我们在使用商品维度表,咱们就使用谁就行了,使用这个视图是不是就OK了呀?对吧?诶是这样的,OK,那接下来咱们就把这个视图的给他去创建一下,大家要注意啊,创建这个视图的时候呢,咱们呃需要这个在哪创建,在是不是得在j Mo库下边去创建呀,对吧?啊这个要注意啊,注意库啊,来咱们可以CTRLC给它拿过来,拿来之后呢,我进入到这个have特客户端啊,这边我直接进开户客户端就行了,来咱们进来。
10:25
稍微等一下啊。呃,稍微等一下,OK,已经完事了,完事之后呢,我右一下我这个J帽库来,那完了之后呢,我们把刚才那个创建诶视图的语句呢,给它执行一下,来来一个粘贴好我现在直接回车好,那视图呢就已经创建完毕了,好创建完之后呢,我们现来可以执行一个这个select语句啊SSE,呃,Select,然后呢星from我们那个师图的,呃,那个名字来就是它。CTRLC拿过来。
11:02
粘贴完了之后,我们直接回车,回车之后呢,那你会发现这里边还有那个复杂数据类型的字段吗?是不是就没有了,是这样的,OK,那到现在为止,咱这个视图呢,就算是创建完毕了,好,那视图创建完毕之后,那在咱们这个数据源里边是不是就还得再加上那个视图啊,对吧,咱们得加一下,怎么讲是不是还是一样的呀?对吧?咱们找到这个JA帽库,点一下这个show off完了之后呢,过滤一下这个VI,诶是不是ew就可以了,来找到这个视图,然后点击snchron同步,好,那就同步进来了,那他有了之后,那你说这个表还要吗?这是不是用到了,用不到的话,在这儿呢,我们就可以给他进行一个unload的操作,UNLOAD1下来点击yes,好,那现在我们这四张表就算是同步完成了啊,是这样的啊OK,那现在我们已经完成了我们的第一步操作就是对接数据源啊对接数据源好,那我把这个视频录一下。
我来说两句