数据存储MySQL中,迁移到hive中,建立数据仓库,为后期的大数据分析、主题订阅、消息分发提供海量数据支持。
涉及到的服务及中间件版本如下:
1、MySQL,版本:8.0.19
2、Hive,版本:3.0.0
3、sqoop,版本sqoop-1.99.7
数据迁移过程分析
1、首先使用sqoop Java api将数据从MySQL中迁移到hdfs系的指定路径;
2、在利用hive 的load data命令迁移到hive指定库表中;
3、原MySQL中库表新增、修改、删除数据,则利用binglog监测功能,实时插入到hive对应表中。
难点分析
hive 中库表格式支持textfile(默认)、ORC、Parquet 、Sequence,但是只用ORC格式,支持数据的update、delete功能。
sqoop做数据迁移,outputFormat可选项只有TEXT_FILE、SEQUENCE_FILE、PARQUET_FILE格式。
那么如何讲MySQL库表读取数据,最终迁移到ORC格式hive库表中呢?
1、利用SQoop工具,将MySQL数据迁移到hdfs中,数据存储格式选择text_file;
2、利用hive的load data 命令,将数据迁移到hive的库表中,库表采用text_file格式;
3、利用hive同时支持text_file、ORC格式,不同格式库表之间的数据可以相互迁移的特性,采用”insert into table_ORC select * from table_text“语句插入数据,最后删除text_file中间表。
最终就实现了把数据从MySQL迁移到ORC格式数据仓库中的目的。