如果我有多个类似的表,例如:
表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中的所有记录?
答案 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