使用sqoop工具进行数据导入导出中可以进行并行导入的方法
例如 从mysql数据库中导入到hive中可以执行
sqoop import --connect jdbc:mysql://localhost/gamewave --username root --password 123456 --table log --hive-import -m 1
其中-m 1 参数代表的含义是使用多少个并行,这个参数的值是1,说明没有开启并行功能。
将m参数的数值调为5或者更大,Sqoop就会开启5个进程,同时进行数据的导入操作。
注意:mysql数据库的表中需要有个主键,如果没有主键的话需要手动选取一个合适的拆分字段。
sqoop import --connect jdbc:mysql://localhost/gamewave --username root --password 123456 --table log --hive-import -m 5 --split-by uid --where "rdate='2012-03-39'"
如果不能满足需求的话,则使用
sqoop import --connect jdbc:mysql://localhost/gamewave --username root --password 123456 --table log --hive-import -m 1 --where 'logtime<10:00:00'
sqoop import --connect jdbc:mysql://localhost/gamewave --username root --password 123456 --table log --hive-import -m 1 --where 'logtime>=10:00:00'
从而达到并行导入的目的