00:00
好,咱们介绍完和Phoenix的集成之后呢,接下来介绍h base和have的集成,那为什么要跟have进行集成呢?啊,一方面啊,是因为have是我们呃大数据处理领域里面非常中流砥柱的一个框架啊,我们的离线数仓呢,一般都是使用have来进行一个分析处理的,那如果跟have有一个很好的兼容性的话呢,那你以后在使用的时候啊,用起来会非常的方便,对不对?那同时呢,也会有对应的一个应用场景啊,需要我们使用这个have去进行一个集成,那这个场景呢,是说大量的数据已经存放在了h base上面,需要对已经存在的数据进行分析,为什么说已经存在上面了呢?如果这个数据还没有存在上面,要不要用have?不要用,用谁呢?用Phoenix,你用penix来困它往上存,那存的时候你自然就好读好分析了,对不对?那有一个很尴尬的事情,就是已经按照一种杂乱无章的顺序把这个数据给存上去了,存上去之后还需要对这些杂乱的数据进行一个分析处理,那不管是你写at的API也好,还是直接使用penix也好,它都不适合这种做这种复杂的一个circlel处理,只能进行简单的读写,那这时候谁可以呢?Have可以,Have就特别擅长这种把自己套在别人的数据上进行一个分析处理,分析出结果之后,你可以把它写到新的一个have表格里面啊,因为have本职工作就是套那个HDS的数据,对吧?
01:27
好,那现在呢,他去套h base的一个表格,其实一个道理,因为h base的数据也在HD上,专业对口啊,就对上套了啊,好,那我们呢,介绍完它的一个使用场景之后呢,接下来咱们去让它兼容在一起,I base和have的兼容呢,非常的简单啊,只需要在have set的配置文件里面加上主K的属性,让它去完成一个组Q标的连接就可以了,咱们来操作一下。好,我们来到一个这个新的窗口里面啊。诶,没点到啊。
02:01
好,来到一个新的窗口里面啊,我们CD到OBD module啊,Have,然后vm con里面的have set X ML,在这个文件最下面的地方,我们添加上对应的这么一个参数啊,CTRLC。呃,对应我们这个C位粘贴啊,呃,这地方呢,它多了一个这个对应的注释啊,你可以把这个注释呢给它删掉。删掉对吧?啊,不需要这么一个注释啊,把这两个参数给它加进来啊就可以了,诶等一下啊。不是因为这个注释,嗯。等一下啊。插入粘贴啊好,刚才呢,应该是呃,粘贴到了别的一个东西对吧,还有复杂的一个信息啊,那这次就对了啊,我们只需要把主开边的信息给它粘贴过来就可以了啊,保存信息。好保存退出,保存退出了之后呢,咱们重新进入到这个have的命令行里面,你这个地方再进入到have的命令行,它就能够去连接啊,我们这个对应的一个have啊,同时呢,它会把这个参数呢,应用生效会去连接总配啊呃,之前的这个命令行呢,可以给它退出来啊。
03:14
不要开太多的一个这个窗口啊,会比较占用你的资源啊,给它关掉,只保留这么一个。好,这个word呢,都不用去管它啊,它说呢,它缺一些参数啊,咱们用不到呢,所以也不用去填,好这里呢,我们已经初始化完成了啊,在这里呢,其实你的have跟你的base就已经连上了,因为它有对应的一个连接嘛,那连上之后呢,并不是说你直接就能用啊,它里面没有数据,我们为了模拟这么一个场景呢,你需要先使用案例一往里面写入数据啊,这个写入数据呢比较简单,我们首先呢,在have里面创建一个能够跟h base关联上的一个表格啊,我们直接来粘贴一下。CTRLC粘贴完之后呢,我们在对应的这个S布拉里面给大家展示一下啊,这个键表语句呢还比较特殊,创建一个表格,这是表格名啊,这底下呢是对应的一个列名加列的一个类型,这是have建表语句非常的这个直观啊,大家以前都用过,那对应底下呢,有一个比较特殊的语句叫解析方式,解析方式使用的是h base里面的一个处理器,那这个处理器里面使用了大量的一个practice啊,对应的一个呃参数啊,这个参数里面主要是这个column m啊叫列的一个映射,这个列映射里面首先有一个叫冒号K,这冒号K是映射主键的意思。
04:31
它它是按照顺序来进行匹配的,你这里的前后顺序跟这里的前后顺序顺序匹配,那第一个EP number就会变成这个对应的主键就是h base里面的OK,那再往下呢,In name就会变成in for列组里面的a name,这里面的列组出现几个,等一下在h base的底层的表里面就会创建几个列组,我们这里呢,尽量使用一个列组,好依次对应就可以了,最底下写上一个表格的名字,这是你等一下创建在h base底层的这个表格的名字,那整个呢,这个就是我们对应的一个表格创建的一个。
05:05
对应关系啊,我们CTRLC,然后在have里面执行这么一个SQL语句。好,等它执行完之后呢,你这边show tables分号执行,它能展示出这么一个table的一个表名,在这看到了吧,啊能够展示这个table的表面,同时呢,如果你来到H这个,呃,命令行里面调list list里面也会创建成这个h EP table这么一个表啊,它就两个就对上号,对账号之后呢,我们可以先往里面啊插入数据啊,这个地方如果你往直接往里面插数据,你你不好用那个load date啊,Load date啊,不能用这个load date load date必须要格式对上,那这呢,因为是你一个复杂的结构啊,跟h base有关联,它这个结构比较复杂,它对不上,我们需要用一个临时表啊,这种方法呢,在学have的时候比较常用啊,咱们就这里呢,就不做介绍了,我们直接来。
06:01
呃,单错位置了对吧,所以他直接报错,然后退出了啊这边呢,写一下h base,让他重新进来,我们应该到这个have的命令行里面去创建一个临时表。这个临时表的格式呢,是跟我们的这个,呃,Load date load load进去那个数据啊,是完全对应上的啊,呃,那我们对应这边呢,执行完这个建表语句之后啊,我们来调这么一个命令啊,Load data local in pass给导入到这个临时表里面,那load data不能直接往这种复杂的表格结构里面插出去,谁可以呢?Insert into可以啊,我们这个数据呢,这个地方写一个路径,这个路径呢,是本地的路径,我们先把这个ET这个文本文件给它上传上去。来到这边桌面这里面会有一个资料,资料里面会有这个ET啊,给它上传到这个OPT software里面,接下来呢,我们执行这个load data local in pass的一个命令啊,把这个数据呢,给它上传上来啊,粘贴执行。好,执行完之后,你可以select星from e。
07:04
来看一下这个表格基础的一个信息啊,等它加载完之后呢,这个地方就有了,哎,这就是我们Ep.t文本里面的数据啊,已经加载到这个表里了,等它加载到这个表里之后呢,我们就可以使用insert into,为什么load data不可以insert into可以呢?Load date是单纯的把这个文件emptt文件给上传到这个表格的路径啊。目录下面只是这么一个上传它的文件的格式啊,是不会帮你对应的,那谁可以呢?Inside into可以,Inside into会走MR程序,那走MR程序大家就懂了,对吧,还要跑MR程序,所以呢,它能够实现一个格式的转化,好,我们来执行这个命令啊,Insert into啊,Table,这是我们创建的关系表,Select from,我们的临时表啊,我们来执行。好,他会先打印一些基础信息啊,然后呢,他需要跑这个MR任务啊,还需要稍微等待他一下。
08:10
好,经过漫长时间的等待呢,他终于把这个任务啊给他跑完了啊,我们都知道MR最大特点呢,就是慢啊,但慢归慢,它总是能够跑完了啊,好,等它跑完了之后呢,我们可以通过命令来查看一下这个新表里面的数据啊,这个命令呢,就是select星from这个表对吧?来,我们来粘贴执行。可以看到它采用了同样的一个数据呢,就给它导入进来了啊,同样的一份数据,Select星from那个表,导入这个表对吧,它里面呢,会自动进行一些格式的转换,那这个格式的转换呢,也会走我们h base底层的这么一个处理器,你来调list来找一下对应的这个表格名称就是它啊,我们复制。然后这边你要SKY扫描单引号啊执行。呃,这里呢,我们多写了一个空格,把这个空格给删掉,直行好就可以扫描到这个底层啊,有大量的一个数据导入了啊,这是我们的这个场景一啊,场景一呢,没有什么实际的使用情景啊,我们只是为了把这个数据啊给导进去,你把数据导进去之后,哎,就变成了。
09:15
我们这个对应的一个have的一个使用场景了,数据已经在h base里面,接下来我们要用have对它进行一个映射,然后去进行一个口的一个处理啊。
我来说两句