最近接下来可能要做一些大数据相关的开发,这之前也自学了一段时间,但总感觉有点似懂非懂的,所以像结合可能的业务逻辑请教一下。
其实主要就一个点,假如原始数据是存在Hive里的,每天都会新增数据,现在想实现的是每天晚上Hive数据入库之后,用定时任务的形式将当日新增数据读取并处理(可能包括抽取字段、筛选、简单计算、聚合等等操作)之后写入到MySQL中,而日常业务逻辑的开发就基于MySQL而不跟Hive关联了。现在的关键就是因为我之前没有做过这一块的实际开发,不知道这个【定时任务】怎么实现比较好。
项目是基于Spring Boot的,我也研究了几个方案:
一是集成hive-jdbc,通过手动写HQL查询数据并insert到MySQL中,但Hive中每天新增数据至少在2亿条,这个方案效率会不会非常低。
二是用sqoop同步Hive数据到MySQL,但是sqoop从Hive导出数据好像不支持添加where条件,就不满足我还要对数据进行处理的需求了。
三是使用Hive的udf函数,不过还是跟方案一一样的问题,如果处理逻辑比较复杂,函数就会很长,会不会导致效率也很低。
哪位有这方面的开发经验的大佬可以帮帮我吗?你们一般用的是什么方案?或者还有什么我不知道的第三方框架什么的吗?我在这方面可以说还是个小白,感谢大家了。
离线处理还是考虑spark,之前公司用过,现在不做这块了,你可以了解一下。