0

分割されたハイブ テーブルに増分データをロードする方法

次の列を持つテーブル「ユーザー」があり、created_onフィールドに基づいてハイブパーティションを作成しました

id bigint,
name string,
created_on string(yyyy-MM-dd),
updated_on string

最終更新日に基づいて段階的にインポートする sqoop ジョブを作成しました

sqoop job --create users -- import --connect jdbc:mysql://<ip>/product  --driver com.mysql.jdbc.Driver --username <> -P --table users --incremental lastmodified --check-column updated_on --last-value "2016-11-15"--hive-table users --hive-import --hive-partition-key created_on --hive-partition-value "2016-11-15" --m 1

上記のジョブを観察すると、これは最後に変更された値に基づいてフェッチされ、間違ったパーティションに挿入されます

この問題の回避策はありますか

4

1 に答える 1

0

1 つの列のパーティションにロードし、別の列に基づいて書き込むことを期待していますか? それは単に「一致しない」だけです。

解決策は、負荷とパーティションを整列させることです。

そのため、created_on が 2016-11-15 に等しいすべてのレコードを書き込みたい場合は、それらのレコードを正確にロードするようにしてください。(この場合、標準の増分機能を使用しないでください)。

于 2016-11-18T13:39:15.660 に答える