
前提条件:
数据库容量上亿级别,索引只有id,没有创建时间索引
达到目标:
- 把阿里云RDS Mysql表数据同步到hive中,按照mysql表数据的创建时间日期格式分区,每天一个分区方便查询
- 每天运行crontab定时的增量备份数据,还是依据自增的id
遇到的问题:
- 没法建立创建时间的索引,不能按时间范围去查询,那样会严重影响线上数据库的性能?
只能按照id的方式去增量的读取索引,存储到临时表,然后在转储到正式表,动态的写入时间分区 - 使用sqoop直接导入hive?还是把数据导入到hdfs以內建表的形式把数据写入到指定的临时表?
如果直接使用sqoop hive import 不支持,query 语句,没法自定义抽取字段,没办法按照id范围去锁定部分数据,
使用hive import只能全量同步表而且id条件只能配到各个地方,我个人感觉query比较适合我灵活一些所以就使用
sqoop导入hdfs內建表的方式来同步数据