我想将mysql中多表的数据加载到hdfs中,表格为'名称类似于a_0_0,a_0_1,a_0_2。
如何使用Sqoop将这些表格中的数据一次加载到hdfs中?
我可以使用UNION
吗?
答案 0 :(得分:0)
有很多方法可以实现这一目标。
如果要导入mysql db中的所有表,可以使用:import-all-tables - 也可以使用此参数--exclude-tables <tables>
- 逗号分隔值 - 排除某些表来自impor-all-tables
如果您想从某些表中导入一些数据(有意义的数据),您可以使用:Free-form Query Imports
如果要导入表数,可以使用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脚本中的逻辑。我提议的解决方案基于所提供的详细信息。