马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
场景:
本日接了一个需求,将测试情况的hive数据导入到正式情况中。但是不必要整个流程的迁移,只必要迁移ads表
办理方案:
拿到这个需求起首想到两个方案:
1、将数据通过insert into语句导出,然后运行脚本
2、数据导出成csv格式的数据,然后Load进hive
方案一的实践过程中,发现几个题目,然结果断举行了方案二。就讲讲方案一存在的题目
- ads数据量较大。存在18W的数据量,对于大集群而言不值一提,但是公司的堡垒机
资源较小,且用DBServer不支持18WSQL实验
- DBServer hive不支持SQL脚本运行,只能粘贴复制,照旧题目逐一样资源太小
终极接纳方案二
实践过程:
这里就说说方案二遇到的题目以及办理方案
- hive查询效果导出CSV时间格式题目。下图就我设置了CSV导特别式,但是照旧存在题目,且时间格式还存在引号的情况,以是将数据导出来之后,用WPS举行打开,对时间格式举行一个调解,然后在生存为CSV布局的数据,用nodepad++打开即可
- hive导入乐成但数据不存在。下面截图就展示了存在的题目。这个题目就是由于hive建表的题目,hive建表的格式不是文本格式导致的。我开始用的org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat,后续假如不指定格式,默认格式就是org.apache.hadoop.mapred.TextInputFormat即可导入进去
- hive数据导入之后一行的数据都存在某一个字段中。这个题目是由于hive没有指定命据导入后按照什么方式举行分割。SET SERDEPROPERTIES ('field.delim'=',', 'serialization.format'=' ')指定这个参数后,hive会将csv导入的数据按照逗号分隔。但是请注意,你的数据存在json数据大概别的逗号数据,导入后大概会产生数据错位的情况。在条件允许的情况下,将json和数据中的逗号,在WPS中用中文逗号更换即可。
- 其他的办理方案:实在这种范例的题目办理方案应该很多。比方:shell脚本实验hive insert语句、将数据插入到mysql用ETL的方式抽取到hive目的表。
总结:
导入数据磨练一个细致的水平实在题目也不难,就是贫困。假如其他网友有更好的办理办法,欢迎留言
|