开发者学堂课程【2020版大数据实战项目之DMP广告系统(第四阶段):框架搭建_Kudu工具类_介绍】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/679/detail/11802
框架搭建_Kudu工具类_介绍
内容介绍:
一、参数配置
二、Kudu 的支持库
一、参数配置
接下来针对 kudu 读写编写一个工具类,通过这一小节,大家能学到两点。第一点,一般情况下怎么使用 scala 进行封装,使用 scala 编写数据库的读写工具。第二点, kudu 该怎么去使用, kudu 的最佳实践应该是怎么样的。本次课分为两个视频,第一个视频,先去了解整体思路。第二个视频说一说具体的编写。具体编写还是比较复杂的,接下来先去看第一大块,整体思路上是怎么样的。
在进行 kudu 的读写工具类编写之前,还是要先去明确一下步骤。首先在编写工具类的时候,第一步先有配置文件,配置文件里都应该有什么内容, kudu 表可放也可不放,但是 kudu 的参数必须要放,比如说 factor 复制因子,必须要放进来, kudu 怎么连接,也要放进来,这两点是必须要放的。
二、kudu 的支持库
进行编写之前,明确一下要写的工具类应该长成什么样子,外部应该怎么调用工具类。首先,工具类应该提供什么功能,至少能去创建表,能去读取表,能去通过 that frame 将数据保存到表当中。可能还会有其他的功能。
如果要想去创建表,在不使用工具类之前是怎么调用的,使用 kudu contaxt create table ,这种调用方式有几个问题。第一个问题不要引入一个 kudu contaxt ,写起来不够好看,要使用不同的东西去写, create table 里没有办法进行逻辑的定制,比如说,官方提供的工具里,肯定不可能有表不存在的时候,创建存在时删掉,再创建这种逻辑,是不可能给你的。但是对于项目来说,一般大数据处理思路来讲, Ods 层的表是可以删的,至少要有一层备份,比如说有三层,可以删掉两层留一层,但是ods 一般不删,会删 ods 之上的层,那是没关系的。这是两个问题,一个就是要用 kudu context ,还有一点就是没有办法进行逻辑上的定制。
在读取表时,这个问题就比较明显了,首先第一点,在读取表时,要设置option ,比如说 master 、 table ,表也要设置,最终再调 kudu ,会有一点麻烦。第三点通过 frame 将数据保存到 kudu 表,这一点要设计一下,正常情况下也要设一堆 option 参数,设 option 参数不能少。在使用的时候,最好能直接把数据写进去,而不是说设置其他的配置。因为都是重复的代码,就有必要进行封装。
理想的调用方式是,创建表的时候,如果让 spark session 直接调用 readkudutable 创建这个表,其次如果能让 spark session直接通过 read table 把表传进去,把表读出来,这也很爽。再保存表的时候,直接通过 save as kudu table ,这也很爽。如果是这样,既然要在 spark session 里去添加 create table 和添加read kudu table ,在 data frame 当中就添加 save as kudu table ,应该使用隐式转换动态的添加方法,也不是动态的添加,是给它转成另外一个类,整个 kudu help 的设计大概分为这几个方法,首先要有 class , 有伴生对象,伴生对象当中做一些隐式转换, class 当中, create kudu table 要去 save kudo table ,再去 read kudu table 这几个方法必不可少。接下来就去做一下功能。