feature09 发表于 2017-9-29 15:12:26

sqoop一次性抽取指定数量的表?

sqoop1
有一个mysql库,里面有5张表,但是我只想要其中的三张表。tb_data1,tb_data2,tb_data3
有什么语句可以一次性抽取出来三张么?
bin/sqoop import \
--connect jdbc:mysql://172.20.11.11:3306/kuku \
--username mysql \
--password 123456 \
--table tb_data1 \

-m 2 \
--append \
--target-dir /user/sqoop/test1 \


这里只能每次抽取一张表。
而import-all-tables是将五张都抽取出来了。


请问,有什么好的办法嘛?

qcbb001 发表于 2017-9-29 19:32:05

这三张表 有关系吗?
可以尝试union或则join试试
如下面
关联多表无关系全量进行查询:
sqoop import --connect jdbc:mysql://192.168.1.1:3306/kettle --username root --passwd 123456
--query 'select name,age from student1 union all select name,age from student2 where $CONDITIONS'
--target-dir /user/hdfs/test1 --split-by name--fields-terminated-by"\t"
--null-string "**"--null-non-string "##"-m1;

关联多张表关系查询:
sqoop import --connect jdbc:mysql://192.168.1.1:3306/kettle --username root --passwd 123456
--query 'select name,kc_name,c_cj from student1 join cjb on s_id = student1.student_id
join kcb on kc_id = cjb.c_id where $CONDITIONS'
--target-dir /user/hdfs/test1 --split-by name--fields-terminated-by"\t"
--null-string "**"--null-non-string "##"-m1;

如果都不行的话,可以在尝试Linux的shell。三个顺序执行。

feature09 发表于 2017-9-29 22:20:29

qcbb001 发表于 2017-9-29 19:32
这三张表 有关系吗?
可以尝试union或则join试试
如下面


没有关系的。
就写脚本吧,谢谢。
页: [1]
查看完整版本: sqoop一次性抽取指定数量的表?