我舉個例子:昨天我輸出了1TB的數據。今天,數據庫又獲得了1GB的數據。如果我今天再次嘗試導入數據,Sqoop會導入1TB + 1GB的數據,然後我將它合併。所以這是一個令人頭疼的問題。我只想導入新數據並將其附加到舊數據。通過這種方式,我將每天將RDBMS數據導入HDFS。如何使用Sqoop僅導入新數據?
2
A
回答
4
您可以使用sqoop增量導入:
Sqoop提供了incremental import
模式可用於檢索比一些以前導入的行集更新的唯一行。
增量導入參數:
--check-column (col)
指定列於確定要導入的行時被檢查。 --incremental (mode)
指定Sqoop如何確定哪些行是新的。模式的合法值包括追加和上次修改。
--last-value (value)
指定上一次導入的檢查列的最大值。
參考:https://sqoop.apache.org/docs/1.4.2/SqoopUserGuide.html#_incremental_imports
對於增量導入:您需要在打擊對最近進口參考值的檢查列指定的值。例如,如果指定了–incremental
附加參數以及–check-column id and –last-value 100
,則會導入id> 100的所有行。如果從命令行運行增量導入,則應在後續增量導入中指定爲–last-value
的值將被打印到屏幕以供參考。如果從保存的作業運行增量導入,則此值將保留在保存的作業中。後續運行sqoop job –exec
某些增量作業將繼續僅導入比之前導入的行更新的行。
對於一氣呵成導入所有的表,你就需要使用sqoop-進口的所有桌命令,但該命令必須滿足以下標準工作
每個表必須有單列主鍵。 您必須打算導入每個表的所有列。 您不得打算使用非默認拆分列,也不能通過WHERE子句強加任何條件。
參考:https://hortonworks.com/community/forums/topic/sqoop-incremental-import/
相關問題
- 1. 導入數據Sqoop
- 2. 使用Sqoop導入頭文件數據
- 3. 使用SQOOP從RDBMS導入數據
- 4. 使用sqoop從oracle導入數據
- 5. 如何使用sqoop從MySQL數據庫導入到Datastax DSE Hive?
- 6. 使用sqoop從多個數據庫導入數據
- 7. 使用Sqoop導入數據,時間戳數據類型
- 8. 如何優化Sqoop導入?
- 9. 如何使用Sqoop當使用指定的蜂房數據庫導入
- 10. sqoop不導入數據類型varchar2
- 11. 導入Sqoop中的數據1.99.6
- 12. Sqoop未能從SQL Server導入數據
- 13. Sqoop Hive導入
- 14. 導入在sqoop
- 15. Sqoop-Hive導入
- 16. 如何使用sqoop將數據從Hive導出到rdbms
- 17. 無法使用Sqoop將數據從Vertica導入到Cassandra
- 18. 使用sqoop(1.4.5)將mysql數據導入到hdfs(hadoop 2.4.1)
- 19. 無法使用sqoop導入數據表到hbase
- 20. 使用Sqoop從Sybase導入數據的問題
- 21. 使用Sqoop將數據從Redshift導入到Hive
- 22. 使用Apache Sqoop將數據從MySQL導入到MySQL
- 23. 使用Sqoop將數據從mysql導入HDFS
- 24. 使用sqoop將數據從Mysql導入到Hbase時出錯
- 25. Hadoop的sqoop錯誤,而使用數據導入選項文件
- 26. 我可以使用Sqoop將數據導入RCFile格式嗎?
- 27. 使用Sqoop將數據從mysql導入到Hadoop,但失敗
- 28. 使用import-all-tables優化Sqoop數據從MySQL導入到Hive
- 29. 如何在使用Hadoop Sqoop將數據導入到Hive時更改表模式?
- 30. 如何sqoop將oracle clob數據導入hdfs上的avro文件