00:00
好,接下来呢,我们,呃,回顾一下上午讲的这个内容哈,上午讲的这个脚本我们讲了一半啊,没讲完,那我们简单说一下啊,之前我们这个脚本都讲了哪些东西。首先呢,这个脚本的井号叹号B,这个没啥说的对吧?啊,脚本的一个开头之后呢,这块呢,是scoop scoop的一个绝对路径对吧?啊绝对路径我说过这块呢,你不定义这个变量也没问题,你直接可以把这个决策路径往这一放。这也是可以的,之后呢,下面这个呢是时间,那如果在企业开发的时候呢,我们处理这个离线数仓,这叫T加一模式,哎,T加一模式呢,就是当前这天,也说当前天处理的是前一天的数据。哎,处理的是你前一天的数据,比如说前一天的数据,我现在来处理,那就说相当有一个一天的一个之后。离线驻商呢,都是有一个一天的之后的,呃,那现在呢,当前又出来这么两种舒商,主流的舒商叫实时受伤。什么叫实时出张呢啊,他这个处理处呢,就今天的数据,我实时的可以处理,嗯,当然了,可以按小时去处理,比如说每一小时我处理一个数据,每一小时处理一个数据啊这样哈,那还有呢一种呢,就是实时的,那实时的话后面呢,就有这个对应的这个Spark,还有对应的这个flink,那这种呢,是来一条数据,我就可以处理一条。
01:18
好,那再往下啊,这个是T加一模式啊,用这个日期呢,减去当减减减一,只不过呢这块呢,变化了一下格式,加上一个百分号F,你说只留下这个年月和日啊年日,那下面这一块呢,这块呢是这个,因为我们这是一个测试脚本。啊,我们要将照生产这个呢,其实它不是特别灵活,因为比如说我想输入啊3月10号的数据,那你还得改变之前那个服务器的时间,那这样呢,不是特别好,那我们就采用了一种方式,哎,传进来这个参数。那你传进来,你今天是哪一天,你想处理哪一天的数据,那传进来的是3月10号的,那我就处理3月10号的数据啊,是这样一个含义啊,是方便我们这个,呃,测试用的。
02:01
OK,那这块呢,就是你传进来参数,你就覆盖原来的不传进来的,那就是这个正常T加一模式去运行就行了,呃往下走这块呢,叫inport的date啊,这是定义了一个函数,在这个函数里面呢,它封装了整个这个SCO,导入相关的这些参数,那导入相关这些参数从哪来?哎,怎么去配,之前说过就查官网,你只能去看官网手册,那这里面其实这些含义呢,也比较简单,因为你首先你要找到数据,哪来的也是输入口。对吧,哎,然后呢,输出到哪。哎,中间你干什么事儿,这么个事儿,那首先你看一下输入,那输入的话,你输入的是MYSQ,那你要去连这个MYSQ,那连MYSQL就需要MYSQL的服务器地址,以及你连接的是哪一个MYSQL数据库,哎,好,那除了地址之外呢,你还要连接MYSQ的用户名和密码,ROOT6个零。那最终的这个输出,输出到呢,我们到的是这个HDFS啊,到这那ADS,那你输出到ad哪一个路径呢?那original date gma啊,然后呢,是DB这个目录项以前的是log对吧?然后之后呢,是这个DOLLAR1,那这个DOLLAR1呢,是这个函数的一个第一个输入参数,那第一个参数我们说过啊,这个port data未来调用的时候呢,输入的是这个表的名称。
03:22
那我们按照表呢,去创建对应的这个文件夹,好,那这个不光这个表,表下面完事之后呢,是对应的日期,每天一个日期。哎,一个文件夹啊,是这样的一个情况啊,每张表下面对应着,比如说3月10号,3月11号啊,3月12号啊,这么几个文件夹啊,方便我们后续呢,往have里面去导数据。之后呢,这块呢,是delay的他DN它的目标呢,就是哎,你之前。如果这里面已经存在的这个路径,那我上来先把它删掉。啊,因为它底层执行的时候是MRMR的特点呢,就是out库的这个路径是必须不能存在,如果存在的话,它就会报这个这个呃,输出路径已存在,直接跑异常了,所以说这块呢,你上来可以先粘一下。
04:13
然后呢,下面这块呢,哎,这个命令呢,就很有用啊,很高级哈,它呢是相当于是提前进行一个过滤,你说你想从这个数据输入源这块获取哪些信息。不是说这里面有啥,你就直接都都拿过来,有一些我没有必要要,哎,那你就可以这里面进行一个过滤筛选,就说query查询条件。那后面呢,这块呢,是跟一个这个command命令,这呢是固定的一个语法啊,语法格式再往下呢,是执行这个过程当中呢,你需要几个map,那我这里配置一个,那当然了,默认它是四个,你不配也行,因这个命令你把它干掉也没问题,它也是能跑的啊,但是呢,由于我们这个呃,临时环境啊,你要配四个的话,现在要有四个线程,可能看你CPU核数够不够啊,我这个肯定够哈,我这个肯定够啊,但是你们的就够呛,那你们要够呛的话,容易就这个跑的更慢一些啊,容易卡死。
05:03
呃,再往下呢是file termin,呃,Terminate就是这个分割符啊,分割符呢,这里面我把数据呢按照一个杠T进行一个分割,那后面呢,我们在建表的时候呢,我可以用这个杠T呢啊,再把它这个啊建回来,你说这块你定义的这个分隔符是杠T,那你后面那个建表建have有表语句的时候,那分隔符呢,你也用这个去切割啊,去获取相的这个数据就OK以了哈,呃,下面这块呢,是这个压缩啊,压缩呢,我们这里采用的是直接配置了拉德罗P啊这种压缩方式,那后面呢,这个是这个呃,Now skinin和这个now。这里面一共有四个参数,比如说对这个呃,数据的导入导出,主要的原因就是因为have,底层存储这个now呢,是斜杠大N,哎,MYSQL里面存储这个now呢,是这个now,哎,那你就需要进行一个转换,相当于是一个呃,告诉他遇到这个杠N你怎么处理。啊,遇到他怎么处理的一个一个事儿啊,呃,再往下这块呢,是这个具体的这个,呃,拉着罗。
06:03
对,这个拉着了文件呢,创建这个索引啊,你要不创建这个索引呢?呃,如果数据量小的话没问题啊,不涉及到一个切片,如果数据量比较大的话,你还想让它支持切片,那你就得加上这一句,你说你得对它进行一个键索引是吧?啊之前已经讲过这个键索引这个步骤了,就这就是呢,我们上午讲的内容。
我来说两句