我想把mysql中多个表的数据加载到hdfs中,这些表的名称像a\u0\u0,a\u0\u1,a\u0\u2。如何使用sqoop一次将这些表中的数据加载到hdfs中?我能用吗 UNION ?
UNION
zfycwa2u1#
有很多方法可以做到这一点。如果要导入mysql db中的所有表,可以使用:import all tables-也可以使用此参数 --exclude-tables <tables> -逗号分隔值-从中排除某些表 impor-all-tables 如果要从某些表导入某些数据(有意义的数据),可以使用:自由形式查询导入如果要导入表的数量,可以右键shell脚本:
--exclude-tables <tables>
impor-all-tables
# !/bin/sh i=0 while [ ${i} -le 5 ] do echo "importing table a_0_${i}" #here write your full sqoop command, this is just an example #sqoop import --connect --table a_0_${i} i=$(( i + 1 )) done
现在运行shell脚本:sqoop命令将按照逻辑运行6次并导入6个表。
$ ./importAll.sh importing table a_0_0 importing table a_0_1 importing table a_0_2 importing table a_0_3 importing table a_0_4 importing table a_0_5
注意:您必须根据需要修改shell脚本中的逻辑。我提议的解决办法是基于所提供的细节。
1条答案
按热度按时间zfycwa2u1#
有很多方法可以做到这一点。
如果要导入mysql db中的所有表,可以使用:import all tables-也可以使用此参数
--exclude-tables <tables>
-逗号分隔值-从中排除某些表impor-all-tables
如果要从某些表导入某些数据(有意义的数据),可以使用:自由形式查询导入如果要导入表的数量,可以右键shell脚本:
现在运行shell脚本:sqoop命令将按照逻辑运行6次并导入6个表。
注意:您必须根据需要修改shell脚本中的逻辑。我提议的解决办法是基于所提供的细节。