Anonimização de dados open source e dados sintéticos para Postgres e Mysql
(github.com/nucleuscloud)Olá, pessoal do Hada News, estamos felizes em lançar o Neosync!
O Neosync é uma plataforma open source que ajuda desenvolvedores a criar versões anonimizadas e sintéticas de dados de produção para melhorar testes locais, depuração e a experiência do desenvolvedor, sem riscos de privacidade ou segurança.
A maioria dos desenvolvedores e equipes tem algum script de seed de banco de dados que gera dados simulados para bancos locais e de staging. O problema que ouvimos dos desenvolvedores é que, localmente, parece que os recursos funcionam bem, mas em produção surgem bugs e casos extremos porque os dados de seed não representam os dados de produção. O segundo problema era que, ao depurar erros em produção, não havia uma boa forma de obter dados próximos dos reais de produção.
Usar diretamente os dados de produção pode resolver esses problemas, mas a maioria das equipes não consegue fazer isso por 1. questões de privacidade/segurança e 2. escala.
Por isso, nós nos propusemos a resolver esses dois problemas com o Neosync.
Resolvemos as questões de privacidade e segurança usando anonimização e dados sintéticos. Com mais de 40 transformadores pré-construídos (ou escritos diretamente em código), é possível anonimizar PII ou dados sensíveis para usá-los com segurança em ambiente local. Além disso, em vez de anonimizar os dados, você também pode gerar do zero dados sintéticos que se parecem com dados de produção, ajustados ao schema existente do banco de dados.
O segundo problema é a escala. Alguns bancos de dados de produção são grandes demais para caber localmente ou contêm muito mais dados do que o necessário. Também pode haver casos em que você queira depurar os dados de um cliente específico e precise de uma forma de filtrar apenas os dados dele. Resolvemos isso com subsetting. Você fornece uma consulta SQL para filtrar tabelas, e o Neosync cuida de toda a complexidade.
O núcleo do Neosync é sua capacidade de lidar com integridade referencial. Ao trabalhar com bancos de dados relacionais, existem chaves primárias, chaves estrangeiras, restrições de unicidade, dependências circulares dentro e entre tabelas, sequências e muito mais.
Portanto, seja para anonimizar dados ou gerar dados sintéticos, é necessário preservar essas restrições e relações; caso contrário, o schema quebra.
O Neosync lida com isso de forma transparente. Se surgirem problemas com restrições, como chaves estrangeiras quebradas, novas colunas que precisam de mapeamento, chaves estrangeiras não nulas e assim por diante, ele avisa para que você possa agir e corrigir.
Veja como funciona:
-
Conecte os bancos de dados de origem e destino.
-
Defina o tipo de job e decida se ele será executado em uma agenda. Jobs de sincronização sincronizam dados da origem para o destino, e jobs de geração de dados criam dados sintéticos do zero e os enviam em streaming para o destino.
-
Defina os schemas e tabelas a serem sincronizados e transformados. No nível de coluna, selecione transformadores que definem como anonimizar dados ou gerar dados sintéticos, ou use dados sintéticos gerados por IA para criar dados no banco de destino.
-
Por fim, você pode definir um subset. Essa é a forma de filtrar os dados enviados ao destino. Para isso, você pode fornecer uma consulta SQL personalizada ou filtros.
É só isso! Os jobs serão executados conforme a agenda configurada. Nós cuidamos de retries, backoff e integridade referencial em todo o banco de dados. Também oferecemos API, CLI e Github Actions, para que você possa usar o Neosync para preencher bancos de dados de CI no pipeline de CI.
O Neosync é um projeto open source escrito em Go e Typescript, e pode ser executado com Helm ou Docker compose. Também oferecemos uma plataforma hospedada, com um generoso plano gratuito disponível.
Estamos ansiosos pelo feedback e contribuições são sempre bem-vindas.
Ainda não há comentários.