Sqoop - 如何将多个mysql表导入一个HBase / Hive表

时间:2014-01-28 12:58:02

标签: hadoop sqoop

如果我有多个类似的表,例如:

表A:“用户”,列:user_name,user_id,user_address等

表B:“customers”列:customer_name,customer_id,customer_address等

表C:“employee”列:employee_name,employee_id,employe_address等

是否可以使用Sqoop将三个表导入一个HBase或Hive表?所以在导入之后,我有一个HBase表包含表A,B,C中的所有记录?

1 个答案:

答案 0 :(得分:1)

如果表格以某种方式相关,那肯定是可能的。可以在Sqoop中使用自由格式查询来完成该操作。在这种情况下,自由格式查询将是一个连接。例如,  导入Hive时:

sqoop import --connect jdbc:mysql:/// mydb --username hue --password hue --query“SELECT * FROM users JOIN customers ON users.id = customers.user_id JOIN employee ON users.id = employee .user_id WHERE \ $ CONDITIONS“--split-by oozie_job.id --target-dir”/ tmp / hue“--hive-import --hive-table hive-table

同样,对于Hbase:

sqoop import --connect jdbc:mysql:/// mydb --username hue --password hue --query“SELECT * FROM users JOIN customers ON users.id = customers.user_id JOIN employee ON users.id = employee .user_id WHERE \ $ CONDITIONS“--split-by oozie_job.id --hbase-table hue --column-family c1

所有这一切的关键因素是提供的SQL语句:

SELECT * FROM users JOIN customers ON users.id = customers.user_id JOIN employee ON userss.id = employee.user_id WHERE \ $ CONDITIONS