2016-08-02 24 views

回答

3

--append將數據添加到HDFS中

--append 
--where "dpt_id >10" 

現有數據集是一樣的:(ONLY追加數據到現有的數據集還可以追加重複 - 注意:這不會覆蓋數據,但將追加):

--incremental append 
--check-column dpt_id 
--last-value 10 

但不是下列選項(追加新數據並更新現有數據 - 沒有重複 - 注意:這不會覆蓋數據,但將更新或追加)

--incremental lastmodified 
--check-column lastupdated 
--last-value 20160802000000 

Sqoop支持兩種類型的incremental進口:appendlastmodified

您可以使用--incremental參數來指定要執行的增量導入的類型。

追加:

  • 進口,其中會不斷添加隨着行ID值新行的表時,應指定append模式。
  • 指定包含行ID的列爲--check-column
  • Sqoop導入行的檢查列的值大於--last-value指定的值。

上次更改時間:

  • 的備用表更新通過Sqoop支持策略稱爲lastmodified模式。 當源表的行可能更新爲時,您應該使用它,每個這樣的更新都會將最後修改的列的值設置爲當前時間戳。
  • 行中檢查列中保存的時間戳比導入的--last-value指定的時間戳更新。
  • 運行後續導入時,應該用這種方式指定--last-value以確保只導入新數據或更新數據。
  • 這是通過創建增量導入作爲保存作業自動處理的,這是執行循環增量導入的首選機制。

read more about incremental_imports here. . .

1

指定

--incremental lastmodified 

將生成更新語句因此如果它取決於

--checkcolumn 

提到的列中存在將更新該行雖然提

--incremental append 

將插入重複的記錄,因爲它只會追加