這些版本標誌著重要的里程碑,顯著擴展了 Greenmask 的功能,並將其轉變為一個簡單、可擴展且可靠的資料庫安全性、資料匿名化和日常操作解決方案。我們的目標是建立一個核心系統,作為全面動態預備環境和強大的資料安全性的基礎。
這些更新引入了資料庫子集、pgzip 支援、拓撲順序還原和重構轉換器等新功能,極大地增強了 Greenmask 的靈活性,以滿足多樣化的業務需求。它們還包括許多修復和改進。
Greenmask 是一個強大的開源工具,專為邏輯資料庫備份轉儲、匿名化、合成資料生成和還原而設計。它是無狀態的,不需要對資料庫結構描述進行任何更改。它被設計為高度可客製化,並且與現有的 PostgreSQL 工具向後相容,快速且可靠。
非常適合用於
Greenmask 在 GitHub 上
PostgreSQL 17 支援 - 修訂了移植庫以支援 PostgreSQL 17
資料庫子集 - 一個新功能,允許您定義資料庫的子集,從而縮小轉儲大小 (#110)。這對於多用途來說非常可靠,尤其適用於測試和開發環境。它支援
polymorphic_exprs
屬性為具有多態參考的資料表定義虛擬參考,並使用 greenmask 為此類資料表產生子集。--pgzip
可以透過並行壓縮來加速轉儲和還原過程。在某些測試中,它顯示轉儲和還原操作速度最多可提高 5 倍。Insert 格式還原 - 為了實現靈活的還原過程,Greenmask 現在支援以 INSERT
格式還原資料。它會根據轉儲中的 COPY
記錄產生 insert 語句。您無需重新轉儲資料即可使用此功能;它可以在 restore
命令中定義。與 INSERT
格式相關的新功能清單
--on-conflict-do-nothing
,則產生具有 ON CONFLICT DO NOTHING
子句的 INSERT
語句。還原資料批次處理 (#173) - 預設情況下,COPY 協定僅在事務提交時傳回錯誤。要覆寫此行為,請使用 --batch-size
標誌來指定在 COPY 命令期間於單一批次中插入的列數。當您想要控制事務大小並提交時,這非常有用。
為 RandomPerson
轉換器引入了 keep_null
參數。
cast_to
存取。 這些函數涵蓋了頻繁的操作,例如 UnixTimestampToDate
和 IntToBool
。random
- 根據偽隨機演算法產生轉換器值。hash
- 使用雜湊函數產生轉換器值。目前,它使用 sha3
雜湊函數,這些函數很安全但執行速度較慢。在穩定版本中,將可以選擇 sha3
和 SipHash
。傾印檔保留管理 - 為 delete 指令引入保留參數 (#201)。 引入了兩個新狀態:failed(失敗)和 in progress(進行中)。 如果傾印檔缺少 "done"(完成)心跳信號,或者最後一個心跳信號時間戳記超過 30 分鐘,則該傾印檔將被視為失敗。 delete 指令現在支援以下保留參數:
--dry-run
:以測試模式執行刪除操作,並提供詳細輸出,但實際上不刪除任何內容。--before-date 2024-08-27T23:50:54+00:00
:刪除早於指定日期的傾印檔。 日期必須以 RFC3339Nano 格式提供,例如:2021-01-01T00:00:00Z
。--retain-recent 10
:保留最近的 N 個傾印檔,其中 N 由使用者指定。--retain-for 1w2d3h4m5s6ms7us8ns
:保留指定時長的傾印檔。 格式支援週 (w)、天 (d)、小時 (h)、分鐘 (m)、秒 (s)、毫秒 (ms)、微秒 (us) 和奈秒 (ns)。--prune-failed
:修剪(移除)所有已失敗的傾印檔。--prune-unsafe
:修剪具有 "unknown-or-failed"(未知或失敗)狀態的傾印檔。 此選項僅與 --prune-failed
結合使用。如果您有任何問題或需要協助,請隨時與我們聯繫