我有一個用於生產服務器的postgresql數據庫。我想設置一個Hadoop/Spark集羣來運行mapreduce作業。爲了做到這一點,我需要從我的postgres數據庫加載數據到hdfs。天真的做法是有一個批量作業,每天一次將數據庫內容(120GB)轉儲到HDFS。這將是浪費和昂貴的。由於大多數數據不會從一天到下一天發生變化,因此從理論上講,每天只發送差異可以更便宜,更高效。這可能嗎?如何加載將PostgresSQL中的數據逐步遷移到HDFS?
我讀過一些關於sqoop,它似乎提供我想要的功能,但它需要在更改數據庫和應用程序。有沒有辦法不需要對數據庫進行任何更改?
無法添加觸發器來記錄更改,您無法從版本9.4之前的PostgreSQL中獲取增量更改。在PostgreSQL 9.4中,這可以使用[邏輯解碼](http://www.postgresql.org/docs/9.4/static/logicaldecoding.html),但是您必須編寫獲取邏輯解碼更改流的代碼並將其調整爲供Hadoop使用。 – 2014-12-02 02:34:48