这些版本的发布标志着重要的里程碑,极大地扩展了 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)。引入了两个新状态:失败和进行中。如果转储缺少“完成”心跳或最后心跳时间戳超过 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:修剪具有“未知或失败”状态的转储。此选项仅与 --prune-failed 结合使用。如果您有任何问题或需要帮助,请随时与我们联系