为了降低成本,公司进行了mysql迁移,同事db部门进行数据库权限收缩。原有一个从大数据查询数据的业务无法使用。记录一下问题解决思路
以往做法:
从hive从查询数据保存到本地目录,使用sqoop将临时文件数据同步到mysql
现在由于数据库权限收缩,不能再使用sqoo直连数据库的方式。
解决思路:
1、将查询结果放到hive临时表中,业务代码主动调用hive。
缺点:不知道什么时候hive查询完成,hive临时表中数据如何,数据量太大如何分批查询
2、 将查询结果保存在本地,shell读取文件,分批调用业务接口
缺点:实现困难,分批任务随时可能中断
3、 将查询结果保存本地,shell读取文件,使用kafka中间件
优点:削峰填谷 ,缺点实现复杂
4、将查询结果保存本地,(shell/python)调用http接口上传文件,业务代码解析文件同步到mysql
实现方案:
采用第四中方案