00:00
好,那从本节我们就要正式开始搭建这个数据仓库了啊,那咱们的数据仓库呢,它是一个分层的结构啊,那所以说我们搭建的时候呢,也是逐层去搭的啊,那现在我们先从第一层ods层开始,那ods层呢,我们管它叫原始数据层对吧?那它的职责呢,那肯定是保留原始数据,不做任何处理啊,对吧?那咱们的原始数据呢,一共有两种类型啊,一个是用户行为日志,一个呢是业务数据,那在这儿呢,我们也是分开讨论,那咱现在呢先看呃,这个用户行为日志啊,按照我们前面的分析啊,呃,我们要想把原始日志保存下来,那我们只需要创建一张日志表就够了。啊,是这样的啊,那这呢,我们这张日表命名为ods log啊好,那接下来呢,我们去看一下这张表的这个表结构是什么样的啊,那下边呢,有它的这个建本语句,我们先给它拿出来。啊,放到我们这个data GR当中。
01:01
这是ods层,那里边呢有一个ods,哎,日志表啊好,那现在我们把这个建表语句拿过来啊,那现在呢,我们就重点先看一下这张表的表结构,表结构,那表结构呢,我们重点去看什么呀?那重点需要去看的就是一它的每行数据是什么?那二,那它的字段有哪些,三,那就是它的分区规划是什么样的,对吧?那咱们重点看一下这三个方面的内容,好,那我们现在呢,先看这个每行数据是什么啊,那当然呢,从这个鉴别语句当中,我们实际上是看不出来每行数据是啥的啊,在这儿呢,我就直接告诉大家,那这张表它的每行数据呢,是一条日志。啊,那接下来我们再来看一下它的字段,那字段呢,这儿很简单,只有一个字段,那就是啥,就是烂,其实这个烂下边呢,其实存放的就是我们的一条一条的日志啊,是这样的,当然它是一个死死字符串类型啊好,这是它的呃,每行数据以及字段,那接下来呢,我们再来看一下它的这个分区规划啊,那首先我们先看一下它的分区字段是哪个,这儿有一个partition的BYDT对吧,DT就是哎,我们的分区字段,那这个字段的类型呢,也是随着类型啊好,那接下来我们再来,呃,详细的去看一下它这个具体的分区规划啊,那现在我们打开文档,哎,下边呢,有一个图,我们来看一下。
02:22
啊,这个图呢,就是ods日志表的分区规划啊,我们可以清楚的看到啊,那我们的分区是按照日期去呃去分区的,对吧,那一天一个分区,一天一个分区,那每天的分区里存放的是什么呢?看一下。每天的分区当中存放的是当日的用户行为数据啊,这就是ods日志表的分区规划啊,那现在我们这张表的表结构,那咱们应该就已经明确了啊,我总结一下,那首先这张表那每行数据呢,是一条日志,那它有几个字段呢?有一个字段,那这个字段下边存放的就是日志啊好,那它的分区规划是什么样的呢?哎,按照地梯字段分区啊,我们一天一个分区,一天一个分区,那每天的分区当中存放的就是当天产生的用户行为日志。
03:14
啊OK,那这就是他的表结构,好,那讲完表结构之后呢,我们再来看一个东西啊,什么东西呢,就是这张表的存储格式。啊,它的存储格式大家注意观察一下啊,那这里边我们有一个store的as这样的一个语句,那这个语句呢,哎,就是用来指明存储格式的啊好,我们往下看啊,下边呢,有两个form啊,一个是form,一个是output form啊那我在这儿呢,简单给大家说一下啊,这个input和output format指的是什么啊,给大家说一下input format呢,指的是我们从这张表当中读取数据的时候使用的input format。注意啊,是读取数据的时候会用input for。
04:15
大家需要注意的一点是output format只有当我们使用insert方式往这张表当中写入数据的时候才是有效的啊,那我们往have的一张表当中写入数据的时候呢,有insert的方式,有load的方式,那这个out format对于load的方式来说是没有作用的啊,这个大家一定要注意一下,好,那现在我们思考一个问题啊。就是将来我们把这张表创建出来了,那往这张表当中导入数据的时候,你说我们使用的这个写入方式应该是哪一种,是音色的呀,还是漏的呀?啊,其实可以分析一下啊,那我们现在的用户行为,呃,这个日志在哪存放着,是不是在HDFS上的一个路径下存放着呀,对吧,并且是以一个拉泽罗压缩文件的形式存在,对吧?那我们可以去看一下啊,来打开这个HDFS的外围页面,找到我们日志上传的路径。
05:13
啊,那这个呢,就是我们现在日志所在的这个位置,没错吧,而且呢,它是一个拉泽罗压缩的文件,是这个道理,对吧?啊,那我们现在要做的是什么呢?是不是就是把这个文件当中的内容导到这张表当中啊,那把一个文件里的内容导到一张表当中,那我们是不是只能使用load的方式啊,对吧?那因为我们要使用load的方式往这张表当中导入数据,那所以说这个output format实际上对我们来说是没有意义的,对吧?那所以在这儿呢,这个outut format不是那么的重要,那现在我们重点看一下这个into format,它其实是比较重要的啊,为啥?因为我们只要想从这张表当中读数据,那是不是就必须得用这个input format呀,对吧?那这个input format,我们应该指定成什么呢?
06:01
这个其实很简单啊,那input form ma它应该取决于什么呀?是不是取决于我们将来往这张表当中load进来的那个文件的格式啊,对吧?那咱们的文件是什么格式,是不是就是拉泽罗压缩的格式对吧?那所以说那input format,那咱是不是就得指明成这个拉泽罗test input format呀?啊,是这样的啊,那这个呢,就是我们这张这个,那在这大家要搞清楚input formput form的张表的数据,那存到这个HDSS这个路径,那咱们给它放到了warehouse j Mo ods,然后里边的ods log这个路径下。好,那这张表的建表语句我们就讲完了。
我来说两句