0

同様のテーブルが複数ある場合、たとえば次のようになります。

テーブル A: "users"、列:user_name, user_id, user_address, etc etc

表 B:"customers"列:customer_name, customer_id, customer_address, etc etc

表 C:"employee"列:employee_name, employee_id, employe_address, etc etc

Sqoop を使用して 3 つのテーブルを 1 つの HBase または Hive テーブルにインポートすることは可能ですか? インポート後、テーブル A、B、C のすべてのレコードを含む 1 つの HBase テーブルがありますか?

4

1 に答える 1

7

テーブルが何らかの形で関連している場合、それは間違いなく可能です。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 users.id = employee.user_id WHERE \$CONDITIONS

フリーフォーム クエリの詳細については、http://sqoop.apache.org/docs/1.4.4/SqoopUserGuide.html#_free_form_query_importsをご覧ください。

于 2013-12-23T20:34:11.063 に答える