sqoop匯出資料時如何選擇update key

2021-08-21 07:52:39 字數 596 閱讀 4902

在增量匯出模式下,無論是allowinsert模式還是updateonly模式,都需要設定update-key:

ø  allowinsert模式:該模式下生成的是insert語句,從這個角度講update-key是沒有作用的,但是在cdh sandbox上測試時發現,如果不指定update-key則會導致reduce執行失敗。

ø  updateonly模式:該模式下生成的是update語句,update-key中指定的字段用於構成update語句中的where字句,因此是必須的,同時也可以看出選擇的update-key欄位必須是未被更新的字段,這樣才能確定一條記錄匯出前後是否一致,而如果將update-key設定為被更新過的字段,則在目標表中通過where條件篩選不到匹配的記錄,從而造成資料無法被更新。此外,如果update-key中指定了所有字段,也會報錯。

假設如下為抽取到mysql中的資料,假設hive中的源資料被更新,如name列不一致,則可以指定update-key為id;若是id被更新了,則可以指定update-key為name(此時再指定id是無法更新資料的)

如何使用sqoop匯入匯出資料

匯出sqoop,即sql to hadoop,目的是完成關係型資料庫匯入匯出到hadoop sqoop的原理是將命令翻譯為mapreduce程式執行,mr沒有reduce階段,只有map階段 配置環境 可以在 etc profile中配置,匯出為全域性變數或在sqoop env.sh檔案配置 注 需...

Sqoop(二) Sqoop匯入 匯出資料

1.2 rdbms hive 1.3 rdbms hbase 2.匯出資料 在sqoop中,匯入 概念指 從非大資料集群 rdbms 向大資料集群 hdfs,hive,hbase 中傳輸資料,叫做 匯入,即使用import關鍵字。sqoop import connect jdbc mysql top...

Sqoop匯出MySQL資料

匯入所有表 sqoop import all tables connect jdbc mysql ip port dbname username username password password m 1 hive import 匯入乙個表 sqoop import connect jdbc my...