「揭祕GP」Greenplum新一代數據遷移工具gpcopy,更快更穩更易用

gpcopy 是新一代的 Greenplum 數據遷移工具,可以幫助客戶在不同集羣間,不同版本間,快速穩定地遷移數據。同上一代遷移工具 gptransfer 相比,gpcopy 具有巨大的優勢:更快,更穩定,更易用,功能更豐富。另外,gpcopy 只包含在商業版本中。

gpcopy 可以幹什麼

gpcopy 可以遷移整個集羣,也可以具體傳輸某些數據庫、某些命名空間和某些表;可以從文件讀取傳輸或者略過的表,支持正則表達式;可以略過、追加或者替換目標集羣的數據;可以並行傳輸;可以只遷移結構信息;可以靜默自動化執行……

簡單說,就是集羣間遷移所存儲的信息,使得用戶業務可以遷移:

「揭祕GP」Greenplum新一代數據遷移工具gpcopy,更快更穩更易用

集羣遷移

和 gptransfer 的速度對比

「揭祕GP」Greenplum新一代數據遷移工具gpcopy,更快更穩更易用

gpcopy vs. gptransfer

爲什麼 gpcopy 可以更快速

segment 間直接傳輸

gpcopy 的數據傳輸利用了 Greenplum 最新的 COPY ON SEGMENT 特性,首先 COPY 相較於 gptransfer 單純使用的外部表就更快,因爲它是批量操作,而外部表的 SELECT 和 INSERT 都是逐條操作;另外 COPY ON SEGMENT 特性使得 gpcopy 可以做到兩個集羣的多節點間併發傳輸,快上加快

以下是 gpcopy 應用於相同節點數 Greenplum 集羣間傳輸的架構,還是很簡單直接的。

「揭祕GP」Greenplum新一代數據遷移工具gpcopy,更快更穩更易用

相同節點數的集羣遷移

Snappy 壓縮傳輸

gpcopy 默認打開壓縮選項,使用 Google 的 Snappy 格式對所傳輸得數據進行壓縮,網絡傳輸少了很多壓力,速度也更快。

Snappy 對大多數的輸入比 zlib 的最快模式要快幾個數量級。在 core i7 的單核64位模式下,Snappy 壓縮速度可以達到250MB/s或者更快,解壓縮可以達到大約500MB/s或更快。

更快的數據校驗

判斷兩個數據庫系統的表是否一致從來不是一個簡單的問題,簡單使用哈希校驗的話要考慮條目的順序,排序的話又會把速度拖得更慢。如果這兩個數據庫系統和 Greenplum 一樣是集羣系統,這個問題就更難了。而 gpcopy 靈活地解決了這個問題,不需要排序,數據校驗的速度是對所導出CSV格式文件做哈希的幾倍!

爲什麼 gpcopy 可以更穩定

沒有命名管道文件

命名管道以文件的形式存在於文件系統中,任何進程只要有權限,打開該文件即可通信。命令管道遵守先進先出的規則,對命名管道讀總是從開始處返回數據,讀過的數據不再存在於命名管道中,對它寫則是添加到末尾,不支持lseek等操作。

命名管道文件難以管理,也容易出問題。例如不限制其它進程讀、讀過的數據不再存在這兩個特點,結合起來會發生什麼?想象一下,如果用戶系統中存在着殺毒軟件,所有文件都會被它讀取採樣……(這是一個真實案例)

完善的日誌記錄和錯誤處理

gpcopy 在這一塊花了很大力氣,每一步的操作,執行的查詢,命令和結果都寫到了日誌文件,並根據用戶指定的級別顯示到標準輸出。

遷移操作也都在事務內,發生錯誤可以做到表一級的回滾。運行結束的時候會有詳細的成功和失敗總結,同時生成和提示用戶運行命令去重試所有的錯誤。

可以說,萬一用戶環境出現了錯誤,結合 gpcopy 和 Greenplum 的日誌文件,我們的支持人員可以迅速地定位問題和給出解決方案,最大程度保障客戶順利遷移。

“能用”而且好用的數據校驗

這個前面提過了,前代 gptransfer 的數據校驗是對數據進行排序然後哈希,用戶基本都因爲太慢而不得不略過,“穩定和一致”也就無從談起了。

gpcopy 可以用於升級

Greenplum 版本升級一般會有 catalog 變化,只升級可執行文件是不兼容的。而利用 gpcopy 則可以做到原地升級,另外因爲有了快速好用的數據校驗,用戶也可以放心地一邊遷移數據一邊釋放空間。(即使這樣也強烈建議備份)

gpcopy 1.1.0 現已支持不同節點數的 Greenplum 集羣間傳輸!

現階段導出依然是最快的 COPY ON SEGMENT,導入則是利用外部表。多節點間併發傳輸、壓縮和更快的數據校驗,一個特性也不少。後續還會針對這個場景做更多的優化,敬請期待。

以下是 gpcopy 從小集羣到大集羣傳輸的基本架構,圖片之外我們還做了傳輸量傾斜的優化。

「揭祕GP」Greenplum新一代數據遷移工具gpcopy,更快更穩更易用

從小集羣到大集羣

以下是 gpcopy 從大集羣到小集羣傳輸的基本架構,一樣也會有避免傾斜的優化。

「揭祕GP」Greenplum新一代數據遷移工具gpcopy,更快更穩更易用

從大集羣到小集羣

歡迎大家試用 gpcopy。下面是 gpcopy 的官方文檔供大家參考。

  1. https://gpdb.docs.pivotal.io/5120/utility_guide/admin_utilities/gpcopy.html
  2. https://gpdb.docs.pivotal.io/5120/admin_guide/managing/gpcopy-migrate.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章