数据从MySQL -> Hive
设计思路:
1、从mysql表结构转hive表结构;
2、从mysql导出表数据;
3、将数据移至到hive的机器上;
4、hive分区导入数据;
5、导入错误时可删除HDFS路径上的数据源和删除错误数据的分区。
这里字段间用的分隔符是|
1、从mysql表结构转hive表结构;
建表
2、从mysql导出表数据;
mysql -账号-p 密码 -e "select * from 表名 " | tr "\t" "|" >> /home/hadoop/savener/sence/cs/cm_FJ_0707.txt
3、将数据移至到hive的机器上;
scp -r hadoop@xx.xxx.xxx.xx:/home/hadoop/savener/sence/cs/cm_FJ_0707.txt /home/hadoop/savener/sence/cs/data
4、hive分区导入数据;
load data local inpath '/home/hadoop/savener/sence/cs/data/cm_FJ_0707.txt' overwrite into table 表名 partition(p_provincecode=835,p_date='20200704');
5、导入错误时可删除HDFS路径上的数据源和删除错误数据的分区。
删除HDFS数据源文件
alter table 表名 drop partition(province_id=835,day=20200704);
6、修复表
msck repair table 表名;