数仓取数流程
流程:excel表转换为csv、txt文件 -----> csv、txt文件导入虚拟机(hue直接添加导入)-------> 解决txt文件导入hive库乱码 ---------> 写sql语句,两表进行关联 --------->文件导入,以excel格式
excel表转换为csv、txt文件:
直接转成txt文件更方便
excel转csv文件,在excel上查看,数据超过15位之后的部分会清零,但这不是说数据后几位会变成0,而是查看只能看前十几位的数字。用notepad打开就能看后后几位。
文件导入虚拟机(hue直接添加导入):
其实不用再操作 load data inpath,直接新建好表之后,+号把txt文件添加到表文件里面。或者麻烦一点的:load data local inpath '/user/asiainfo/000.txt' into table odsdata.bs_operator 在query语句框里导入。
建表语句:
CREATE TABLE odsdata.bs_operator(
PROVINCES string COMMENT '省份',
REFER string COMMENT '简称',
CITIES string COMMENT '地市',
ORDER_NO string COMMENT '订单编号',
SITE_CODE string COMMENT '站址编码',
PROCESS string COMMENT '流程',
OPERATOR string COMMENT '运营商'
)COMMENT '运营商表'
row format delimited fields terminated by '\t'
stored as textfile;
这里注意,因为把txt文件导入到了表里面,所以stored as textfile
解决txt文件导入hive表乱码:
txt文件里的文件注意是utf-8格式,如果不是,另存为那个有编码格式。
写sql语句,两表进行关联:
select distinct B.provinces,B.REFER,B.CITIES, B.order_no, B.SITE_CODE,B.PROCESS, (case A.cust_company when '1001' then '移动' when '1002' then '联通' when '1003' then '电信' when '1004' then '广电' else ' ' end ) from mid.md_bs_request_info_mon A right join odsdata.bs_operator B ON B.order_no = A.request_id
order by B.order_no
关键:右连接、distinct去重、case when
在hue上文件导出,以excel导出