kettle抽取数据到impala

用kettle加工,加载数据到impala上

  1. 首先确认数据来源,例如 DB2数据库里的某些数据加工一下 传到impala

表输入组件里加工数据EXTRACT 输出到HDFS的指定路径(impala表的LOCATION
源数据库信息

  1. kettle加工数据上传到HDFS指定路径下

impala表数据不能update和delete,若要把实时数据加载进impala表,对于数据量较大的表(可以在impala里创建 临时表TEXTFILE 格式的,正式表PARQUET格式的 并分区;每次实时加工的数据传到临时表里,再把临时表的数据overwrite 到正式表)

TEXTFILE格式的表在创建时要指定字段分隔符 (一般常用ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' 或者 ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'

kettle 加工 拖拽相关组件如下图:
在这里插入图片描述
若源数据量很大,例如订单数据每天千万条,每次要更新最近3天的数据,可以按日期生成txt文件,每天一个文件, FILE_NAME 自定义文件目录,根据日期指定数据存放在HSFS上的位置'hdfs://IP:8020/user/hive/warehouse/test.db/order_tmp/dt_day_id='||substr(char(DT_DAY_ID),1,8)||'/order_'||substr(char(DT_DAY_ID),1,8) FILE_NAME
数据放在按日期命名的文件下/user/hive/warehouse/test.db/order_tmp/dt_id=20190301/order_20190301.txt
在这里插入图片描述
如果数据量不大一个txt文件即可
在这里插入图片描述
输入impala表指定的分隔符,编码选择UTF-8,如果分隔符不一致会造成传入NULL数据(另外如果分隔符是特殊字符要转义),编码不是UTF-8会乱码
在这里插入图片描述
如果源字段是string型,选择最小宽度可以一键快速搞定去掉左右两端空格。

  1. 关于impala的操作

远程到impala服务器上,输入impala-shell进入impala数据库环境

show databases;    ##查看所有数据库
use test;    ##连接test库
show tables;   ##查看test库下所有表
show create table test.order_tmp; ##查看test.order_tmp表创建的表结构和格式
create table test.order_tmp(
order_cd STRING,
row_cd STRING,
dt_id Int,
order_qty STRING
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
WITH SERDEPROPERTIES ('field.delim'=',', 'serialization.format'=',')
STORED AS TEXTFILE  
LOCATION 'hdfs://dcbigdatamgr2:8020/user/hive/w
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值