Опубликован nxs-data-anonymizer 1.4.0 - инструмент для анонимизации дампа баз данных PostgreSQL и MySQL/MariaDB/Percona. Утилита поддерживает анонимизацию данных на основе шаблонов и функций библиотеки Sprig. Среди прочего, для заполнения можно использовать значения других столбцов для той же строки. Допустимо использовать инструмент через неименованные каналы (pipe) в командной строке и перенаправить дамп из исходной БД непосредственно в целевую БД с необходимыми преобразованиями. Инструмент написан на языке Go и выпускается под лицензией Apache License 2.0.
Менее чем за год после первого релиза версии 1.0.0, в инструменте появились следующие возможности:
Добавлена функция фильтров для работы со значениями null.
Реализована команда -l/--log-format, позволяющая выбрать формат логирования (json или plain).
Добавлена индикация процесса анонимизации - через указанные промежутки выводятся данные о прогрессе выполнения операции.
В версии 1.4 появилась возможность задавать значения полей с помощью внешних команд, через добавление в значение столбца "type: command". Например:
filters:
some_table_name:
columns:
some_column_name:
type: command
value: /path/to/command/or/script.shЕсли для столбца указано "type: command", то значение поля value воспринимается как файловых путь к команде, которая будет запущена каждый раз для этого поля. Во время выполнения команды будут доступны дополнительные переменные окружения:
- ENVVARTABLE={TABLE_NAME}: содержит имя фильтруемой таблицы
- ENVVARCOLUMN_{COLUMN_NAME}={COLUMN_VALUE}: содержит все столбцы и их значения (до замены) для текущей фильтруемой строки Stdout команды считается за новое значение фильтруемого поля.
Источник: https://www.opennet.ru/opennews/art.shtml?num=61062