資料遷移工具簡單分析

2021-09-22 09:37:12 字數 1473 閱讀 3568

exp/imp

對於資料結構的複製和同步,還是比較理想的工具。

在資料量比較小的情況下,這個工具的效能要遠遠好於datapump,而且重點推薦,他對於各種常用資料型別的支援還是很不錯的。

有一些特性,在某種程度上要好於datapump,在做資料遷移的時候,commit特性還是很重要的。因為通過datapump碰到了很多undo空間不足帶來的問題。

datapump

在10g版本開始,就開始推薦使用的datapump,算是對exp/imp的補充說明。在使用資料量中等的資料遷移中,是比較好的方案,它有幾個亮點的特性,乙個就是並行,能夠在資料匯出匯入的時候開啟多個並行加速,還有direct選項,這一點上合exp沒有太大的差別,個人比較喜歡的是remap選項,比如某個表中還有lob欄位,從源庫中匯出的時候,表空間的資訊就在dump檔案裡,如果匯入的環境沒有指定的表空間,那基本上就沒有直接的解決方案了,要麼臨時建立需要的表空間,然後在匯入成功後,嘗試做move操作。

這一點在datapump而言,就不是事了,remap選項很輕鬆的解決了這個問題。

當然了,datapump是基於服務端的,需要一些其他的依賴因素,在做lob的資料匯入的時候速度比imp至少快10倍以上。

sql*loader

可以理解sqlldr是基於客戶端的,而言這個工具可能更具有通用性,因為一些資料在它面前都是可擴充套件的,我們可以嘗試從sqlserver中匯出資料,然後通過sqlldr來做為資料的匯入,sql*loader最快的方式就是開啟並行+direct,但是對於lob資料的處理還是需要做額外的工作,對於資料結構的複製而言,就無能為力了。如果作為純粹的資料的匯入,還是很好的工具。

比較納悶的是,sqlldr作為可擴充套件的資料匯入工具,oracle為什麼沒有出類似sqlldr這樣的資料匯出工具,因為exp/expdp匯出的是二進位制檔案,生成平面檔案還是有一定的距離,在tom的**答疑中,他提供了乙個簡單的pl/sql版本的工具,大家有興趣可以參考。

oracle_loader

外部表在較新的版本中開始出現,可能大家用的比較多的還是通過oracle_loader來讀取alert日誌的資訊,其實在某種程度上而言,oracle_loader可以在某種程度上作為sqlldr的補充和加強。因為我們可以和快的建立乙個外部表。而無須消耗額外的資料空間,相比於sqlldr生成的dump而言,基於oracle_loader建立的外部表更加的具體,我們可以在資料匯入前做一些相關的資料檢查和審核工作。

oracle_datapump

oracle_datapump算是對datapump的乙個加強版本,因為生成的dump檔案類似datapump,但是生成的dump可移植性就好的多,我們可以直接copy dump到外部表相關的目錄下,如果外部表定義中的dump檔名沒有變化的話,直接拷貝dump,然後可以無需做其他操作就載入資料。

insert

sqoop資料遷移工具

注 為了表達清晰做了換行,執行時請放在一行中,使用空格隔開,或者加 進行行連線 在profiles中新增sqoop到環境變數 將資料庫連線驅動拷貝到 sqoop home lib裡 sqoop import connect jdbc mysql username root password 123 ...

sqoop工具資料遷移

sqoop 發音 skup 是一款開源的工具,主要用於在hadoop hive 與傳統的資料庫 mysql postgresql 間進行資料的傳遞,可以將乙個關係型資料庫 例如 mysql oracle postgres等 中的資料導進到hadoop的hdfs中,也可以將hdfs的資料導進到關係型資...

rsync資料遷移工具

rsync acv src to path dst to path rsync option src dest rsync option src user host dest rsync option user host src dest rsync option src user host des...