2016-05-16 265 views
0

到現在爲止,我一直使用導入命令導入數據,並且已經在默認Metastore中保存了--last-value。如何使用增量導入 - 存儲在sqoop Metastore中的--last-value

  1. 根據上次修改的值,最初在導入命令中爲增量導入指定--last-value的內容。我發現它在追加模式下爲0,但應該在上次修改模式下是什麼?

  2. 我有一張表,我需要從增量導入數據,但該表的modified_at字段存儲在通過外鍵引用的另一個表中。現在,由於這裏涉及多個表格,我知道我需要使用免費的查詢表單,但是它是如何從存儲庫獲取最新值的?我當然不會硬編碼免費查詢中的最後一個值。

另外,如何提供此引用表中的modified_at列?

在這種情況下應該是什麼確切的語法?

回答

-1

增量數據取指取決於主鍵和主鍵始終處於增量格式。您可以使用導入命令創建Sqoop工作,並給予--last價值的說法是你的表

sqoop job --create Job_name -- import --connect "jdbc_url" --username "uid" -P --table "table_name" --check-column "primary-key column" --incremental append --last-value 0 --target-dir /hdfs_path 

的最後一個主鍵值的數值做邊

sqoop job --list 

你可以看到列表創造的就業機會。你可以通過運行

sqoop job --exec jobname 

請讓我知道如果它有幫助!!!!

+0

增量數據不依賴於主鍵。它只取決於日期或時間戳。 – Ishpreet

+0

如果表沒有任何時間戳列,那麼增量如何工作呢? –

+0

數據提取僅取決於時間戳而不是主鍵。所以檢查列必須是時間戳或日期不一定是主鍵! – Ishpreet