使用sqoop一次性将多个表加载到hdfs中

olhwl3o2  于 2021-06-03  发布在  Sqoop
关注(0)|答案(1)|浏览(388)

我想把mysql中多个表的数据加载到hdfs中,这些表的名称像a\u0\u0,a\u0\u1,a\u0\u2。
如何使用sqoop一次将这些表中的数据加载到hdfs中?
我能用吗 UNION ?

zfycwa2u

zfycwa2u1#

有很多方法可以做到这一点。
如果要导入mysql db中的所有表,可以使用:import all tables-也可以使用此参数 --exclude-tables <tables> -逗号分隔值-从中排除某些表 impor-all-tables 如果要从某些表导入某些数据(有意义的数据),可以使用:自由形式查询导入
如果要导入表的数量,可以右键shell脚本:


# !/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脚本中的逻辑。我提议的解决办法是基于所提供的细节。

相关问题