2010-12-21 6 views
1

Quelqu'un connaît l'efficacité dans le masquage (anonymisation) de certaines tables dans un mysqldump? J'ai déjà terminé mon analyseur mais malheureusement cela ne fonctionne pas aussi bien sur les gros vidages (disons un vidage de 1 Go ++) car cela augmente vraiment le temps de vidage dû à l'analyse. Ce que j'ai fait était d'analyser les colonnes de la table d'abord (ce qui ne devrait pas prendre longtemps) et d'analyser toute la chaîne d'insertion pour une table spécifique. J'utilise du rubis et je voudrais l'utiliser si possible. J'ai aussi examiné l'idée d'exporter la décharge, de la jeter, de la mettre à jour (en la masquant) à l'aide d'un code ruby ​​interne, puis de l'exporter à nouveau. Bien que je n'ai pas essayé combien de temps cela va prendre.comment masquer un mysqldump?

Le flux de travail actuel pour ce serait: get décharge d'un serveur, décompressez, puis vidage dans mysql

la nouvelle serait get décharge d'un serveur, les données décompresse, masquées confidentielles et jeter dans mysql Le flux de travail actuel prendrait au plus 2 heures pour un vidage de 1 à 2 Go ++, mais malheureusement, j'ai déjà passé 4 heures sur le nouveau mais il n'est pas encore terminé sur la partie analyse/masquage.

On m'a également conseillé d'improviser le code en supprimant les variables et les choses qui consomment plus de mémoire puisque le gy ruby ​​n'est pas sur un ratio de 1: 1. Je crois que c'est optimisé sur REE (Ruby Enterprise Edition) mais j'utilise actuellement REE aussi maintenant.

Est-ce que quelqu'un a fait cela et peut-être partager leurs pensées? Merci.

Répondre

3

Des années plus tard, mais peut-être utile pour les recherches futures (comme le mien). Ce que vous pouvez faire, si votre structure ne change pas tout le temps, c'est abuser de la fonction custom where de mysqldump pour injecter SQL.

Par exemple:

mysqldump -options -w "0=1 union select field1, 'constant', 
anonymize(field3) from table" database table 

Cette volonté, pour trois colonnes table, faites une décharge avec la première colonne intacte, la deuxième série à une valeur constante et la troisième mutilée avec une fonction arbitraire.