我有一個新的挑戰,即從Oracle數據庫加載約100M行並將它們插入遠程MySQL數據庫服務器。Java ETL過程
我分了問題二:
- 負責將數據加載到MySQL服務器的服務器端REST服務器;
- 負責加載Oracle數據源的客戶端Java應用程序。
在Java方面,我使用普通的JDBC加載分頁內容並通過網絡將其傳輸到服務器。這種方法效果很好,但它使代碼繁瑣,而且不能很好的擴展,因爲我自己使用Oracle的ROWNUM進行分頁..... WHERE ROWNUM> x和ROWNUM < y。
我現在已經通過Annotations映射了我的實體,並嘗試了Hibernate的StatelessSession。該代碼更可讀和乾淨,但性能更差。
我聽說過ETL工具和SpringBatch,但我不太瞭解它們。 有沒有其他解決這個問題的方法?
在此先感謝。
UPDATE
感謝您的寶貴建議。 我選擇使用SpringBatch從Oracle數據庫加載數據,因爲環境非常緊張,我無法訪問Oracle的工具集。 SpringBatch是trie和真實的。 對於數據寫入步驟,我選擇使用MySQL的LOAD DATA INFILE來編寫記錄塊,正如你所說的那樣。 REST服務處於中間狀態,因爲出於安全原因它們彼此隱藏。
只需使用spring批處理。不要發明一些東西來解決這個問題。如果您有任何SQL Server框位於SSIS附近,那麼您也可以爲此做好這項工作。 – Deleted