00:00
来,那咱们接下来开始,呃,正式进入到这个数据层库的搭建啊,那咱们从第一层开始呗,第一层ods层,原始数据层,那前面讲过啊,原始数据层我们的建表思想很简单啊,就是以谁为基准,以数据为基准,对不对,以数据为基准啊,数据什么样表就怎么建啊那咱们之前分析过了,那对于日志来说,我们建几张表,是不是就建一张表,表当中几个字段呀,一个字段,然后这张表这是什么表来着得是哎,分区表对吧?啊分区表,嗯,哎,那咱们得注意到这一这几点就可以了啊,知道这几点就可以了啊好,那接下来咱们就这个开始吧啊。打开这个文档啊,咱们把这个建本语句呢,给它拿过来啊,来往下翻来,我先把这个建本语拿过来,然后呢,给大家解释一下咱们这里边的一些这个内容啊,这是我们要建的这个第一张这个日志的表啊,OK,大家看啊,这是这个跑着呢比较慢啊,这位好,这就是我们见的哎,我们书仓当中的第一张表啊,Ods层的那个日志表,那咱们起名叫做ods log啊,这是不是能够标识它是哪一行,已知它是什么类型的数据,对吧?啊,然后后边咱们往下走啊,这个是啊,这是在判断它存在不存在,存在就删除,这个不用管,咱们从这开始啊。
01:13
看一下这个表,Create external table啊,然后表明是o.s log,然后这张表只有几个字段,一个烂字段,然后呢,它有它是什么类型的呢?词缀类型啊,因为字符串嘛啊,日志嘛啊那所以这很简单,那下来往下走啊,咱们这儿往下看,这有一个什么东西,是不是part提身BYDT,然后自这是不是按照这个DT字段进行分区啊对吧?那后期呢,我们应该是一天一个分区,一天一个分区啊,那这个分区字段的类型呢,咱们也是死针类型啊,这个应该都能看懂啊行,那其实到这儿呢,咱们大致就已经把这张表就建完了啊建完了建完之后呢,我们下边这是在干什么呀。这是不是在指明咱们这个表下边的数据的数据格式啊,对吧?啊,那这种数声明数据格式的方式,大家可能之前并没有见过。
02:07
我们之前使用have去建表的时候,咱们都是怎么去见呀,是不是什么这个create table,然后表明字段名等等等完事之后呢,下边应该什么啊,Row format啊,然后呢,那个fails,那个limited feels termd by什么东西是不是就完事了啊,但是你看咱们这并没有写那些东西,咱们用了一个啥,Store eyes。那其实可以给大家说一下啊。其实这个死store eyes呢,才是没问听啊,才是咱们这个啊见表的时候呢,就是啊,最原始的这个生明方式啊,是最原始的一个生明方式啊,就是你像咱们大家之前是不是写什么RO for ma limit体的写那些东西了,对吧,你那东西写完之后,其实啊,他默认真正去验表的时候呢,像它也会给你补充上一个这样的所谓的四刀的A这样的一个东西的啊里边呢,有input for me out for me。
03:01
啊,只不过你当时没有声明,没声明的用的是啥呀。就是默认值而已啊,就是这个鉴表语句当中,这个东西是肯定会有的啊,你比如说咱们随便去看一下,咱们去看这个表的建表语句啊。啊,比如说咱们现在呢,去先测一下啊,比如说我们点击这个default啊,Default,那这个student的这个表咱们建的时候是不是,呃,连那个什么RO d meeting那个东西咱是不是都没写呀,对不对,咱们看一下sure,我们可以执行这个命令啊,Show create table,这是查看这张表的间文语句啊,咱们看谁student对吧,你可以执行一下这个命令,走哎,CTR enter,然后回车。你看这是这张表的鉴表语句啊,那这张表的建表语句里边是不是也有一个store eyes,然后呢,Input form out put format呀。对不对,看到了吧,啊,都有这个啊,下面里边都有这个啊,所以这个其实咱们这儿呢,只是我显示的声明了一下啊,那在这边咱们需要注意什么问题啊,咱们得知道啊,咱们ods层的表里面的数据啊,它的格式是什么样的。
04:05
啊,它的格式什么样的呀。啊,咱们想一想OS的表,它里边的数据怎么来,是不是从咱们那个origin date里边咱们漏过来啊,对不对,那origin date里边咱们那个数据是什么格式的。是什么格式?还记得吗?小米来了。看一下呀,啊,咱们这边找一下呗,比如说找到这个log,找到他log,找到它什么格式啊,是不是拉斯罗格式啊,因为我们使用或者库往上导数据的时候,咱是不是都进行压缩了呀,对不对,那所以说这是拉森罗格式。啊,那既然是拉多勒格式,那咱们建表的时候是不是就得考虑这个问题,我这张表是不是得能够识别拉泽罗文件才可以,对不对,那咱们在这儿呢,写的这个这一大串东西呢,就是为了识别拉泽罗文件啊而写的。啊,然后呢,给大家解释一下啊,先看一下这个input format和out format这俩是什么意思啊。
05:01
Into the format out format诶,这个是不是大家应该有印象啊?我们写MAP6时是不是就有这个概念,Input format out format对不对啊?那音input form是干什么用的?是,假如说我这呢写一个mmr对不对,那in map是什么?是我map去读取文件的时候是不是用的呀?Auto map呢,是我reduce往外写数据的时候是不是用的。对吧?啊,那在这儿这个input和auto指的是什么啊,给大家解释一下是这样的,如果说我们现在呢,有一个serve任务也好,MR任务也好,我要从这张表里边读数据,主要是circle啊,比如说我执行select星附上我们这张表,那你是不是需要去读这个文件呀,你读这个文件的话,那你说你会用什么?Put format呀,是in还是out呀?你要读这张表啊。读读是不是用into the呀,对不对,所以说你在见表的时候。
06:01
你在建表的时候,你在这儿声明的input是什么时候用的?是你从这张表里读数据的时候用的。啊,从这张表里读,你用它的input form,那我现在假如说我有一个任务啊,比如说我要insert,对吧,我要insert into或者orright这张表,你是不是要往这表里写数据啊,对不对,你往这张表里写数据的话,那你就得用他的谁。用它的out不ma啊,注意啊,这个in和out不是针对这张表来说的啊,有的人可能会觉得,哎,我明明是要往这这张表里写对不对?那我怎么不用音input for呢?为什么要用out啊,不是针对这张表来说的,针对谁来说的呀?是针对咱们那个任务来说的,对不对啊,我这个circle啊,这个任务我要读,那我就用你的input,我要往你里边写,我就要写你这个,用你这个output是这样的啊,这个大家搞清楚啊,这是input和output format它的这个作用啊,啊,那其实在以这张表为例,以OS的表为例啊,那其实我们在这儿并不关心output。
07:05
我们只关心谁就够了。只关心音部的就高了啊,为什么?大家想想啊,咱们odsm表它的数据是怎么来的?是load过来的,对不对,那load的时候我们走计算引擎吗。漏不走计算引擎,不走计算引擎,那它需要output format吗?那就不需要对不对啊,那所以说这个out mind,其实你随便写写啥都行啊,当然你不能随便写啊,那那个得有这个类才行啊,你得写一个具有的类才行啊,不能随便写啊,然后咱咱这重点关注谁关注这个input form,因为我们数据是漏的进来,但是我是不是要从里边去查呀,对吧,咱们要select from这张表,那你是不是会用到它的这个input呀,那所以说你注意观察它的input,就是啥点hiop map right,然后呢,Deep是KT的,然后拉罗test input format,它这呢用的是一个过时的API,这个咱们啊需要注意啊,需要注意啊,这是咱们这个input和output format,它的这个作用咱们搞清楚就行了。
08:08
啊,然后最后呢,咱们在这儿呢,又指明了一个location啊,Location就是这张表的一个地址嘛,啊一个位置,一个路径啊就完事了啊这是咱们这个完整的建表语句啊,在这里边咱们总结一下啊,大家需要注意以下几个细节,那第一个呢,就是咱们这个表名,第二个呢,字段名,第三个呢分区,第四一个就是咱们这个拉泽罗的,哎,这个格式咱们怎么处理啊,当然了,这种写法呢,呃,大家可能是第一次见到对吧?哎,可能会觉得这个比较纳闷,这个东西为啥要这么写呀,这从哪有有有这个依据啊对不对,这个官网上是有详细的说明的啊,这个你可以打开这个have的官网,你可以搜一下啊,我们搜一下啊,比如说搜什么你就直接搜have,诶拉德罗就行。呃,用这个搜出来的,并不是它官网,诶这个是啊,最后一个啊,点这个点。这里边呢,呃,有这个相关的说明啊,就是have怎么去使用拉子罗啊,咱们稍微等一下啊,诶打开了,打开之后你就往下翻就行了,那第一个呢,是什么general拉斯罗concepts,就是拉斯罗呃,相关的一些这个一般概念啊,一般概念这个咱们就不再多说了啊,然后呢,这个怎么去使用拉泽罗啊,那需要首先这个什么pre request先决条件啊,你需要在我们海杜集群当中去安装拉泽罗和拉泽罗P,那其实我们这个SS7当中呢,自带这俩依赖咱们已经装完了啊,那下边呢,你还需要去配置一些这个属性啊,这是不是有什么这个呃,Co文件咱们需要加上这样的俩参数啊,这个东西咱们加没加。
09:39
咱们加了在做采集项目的时候,咱们搭海多集群,是不是这些参数就加了呀,跟那是一模一样的啊,你要是忘了的话可以回顾一下啊,行,这个咱就不看了,然后下面呢,是什么建拉德罗索引,这个是不是咱们都讲过了呀,这个不看了,咱们就重点看这个表的定义,就是如何去建一张表,Table展啊,怎么建呀,你看它跟咱们写的其实一样啊,你看这是不是什么可表等等等等,不用多说了,咱们直接看下边,你看roll for limit,这个是不是也能接着写呀,哎,不,不影响啊,不影响,然后咱们往下看,下边的就是store的eyes put for me是不是这个,那outly是不是这个,哎,跟它是一样的啊,是一样的啊,咱们其实就是仿照这去写的嘛,啊,跟他是一样的啊,这是有啊,有地方可以去根据的啊,啊,那咱们知道这就行了啊,然后再问大家一下啊,你说为什么咱们这张表,我建表的时候没有指定那个分隔符呢。
10:33
为什么没有指定分隔符啊?RO limited为什么没有指定那个东西啊?啊,其实你不指零的话,它有没有默认值的,其实也是有默认值的啊,然后在这儿呢,咱们其实并不用关心它那个到底用什么分格,因为啥。因为我们只有一个字段对吧,因为只有一个字段,所以说那个分割符是什么,无所谓啊,无所谓,所以咱们这儿呢,就没有指令啊,这块呢,大家呃,这个前面语句能看懂就可以了啊好了,那这块呃,咱们就说完了啊来我把视频录一下。
我来说两句