[Sqoop] mysqlテーブルをハイブパーティションテーブルに同期します

 次の記事は、mysqlテーブルをハイブTEXTfileストレージ形式でパーティションテーブルにインポートしています。

mysqlテーブルをハイブORCストレージ形式のパーティションテーブルにインポートします。ジャンプするにはここをクリックしてください

 1. mysqlからハイブテーブルパーティションデータにインポートされたhdfsの保存場所==(mysql->> hdfs)

sqoop import \
--connect jdbc:mysql://IP:3306/DATABASE \
--username USENAME--password PWD \
--fields-terminated-by ',' \
--m 1 \
--query "select * from TABLE where COLUMN='VALUE' and \$CONDITIONS" \
--target-dir /user/hive/warehouse/DATABASE.db/TABLE/PARTITION_NAME=PARTITION_VALUE/ \
--delete-target-dir 

大文字の場所は自分で変更する必要があります

where句のおよび\ $ CONDITIONSは変更しないでください、追加する必要があります

 2. mysql->> hiveパーティションテーブル(hiveテーブルが存在しない場合は自動的に作成されます)

sqoop import \
--connect jdbc:mysql://IP:3306/DB\
--username root --password PWD \
--query "select * from tab_task where task_createTime='2020-12-30' and \$CONDITIONS" \
--fields-terminated-by ',' \
--delete-target-dir \
--hive-import \
--m 1 \
--hive-partition-key dt \
--hive-partition-value 2020-12-30 \
--hive-database DB\
--hive-table tab_task \
--target-dir /user/hive/warehouse/DB.db/tab_task/dt=2020-12-30/ \
--delete-target-dir \
--direct

 パーティションフィールドtask_createTimeがyyyy-MM-dd形式でない場合は、date_format($ {task_createTime}、 '%Y-%m-%d')を使用できます。

  1. パーティションテーブルを同期するには、クエリを指定します
  2. クエリを実行し、最後に\ $ CONDITIONSを追加します

おすすめ

転載: blog.csdn.net/qq_44065303/article/details/112916572