2010-12-21 9 views
1

誰かがmysqldumpのいくつかのテーブルのマスキング(匿名化)の効率を知っていますか?私はすでにパーザを終了しましたが、残念ながら、パースのためにダンプ時間が実際に増えるので、大きなダンプ(1GB ++のダンプを言いましょう)ではうまくいきません。どのようにいくつかの方法は、mysqldumpをマスクするには?

私がしたことは、まずテーブルの列を解析していました(これは時間がかかりません)。特定のテーブルの挿入文字列全体を解析しました。

私はrubyを使用しており、可能であれば使用したいと考えています。

また、ダンプのエクスポート、ダンプ、内部ルビコードによる更新(マスキング)、ダンプの再エクスポートの考え方についても調べました。私はこれがどれくらいかかるか試していませんが。

このため、現在のワークフローは次のようになります。 サーバーからダンプを取得し、解凍し、新しいものには、サーバーからダンプを取得 も解凍し、機密データをマスクしてmysqlのにダンプしますmysqlの

にダンプ

現在のワークフローは1〜2GB ++のダンプでは最大2時間かかりますが、残念ながら私はすでに4時間以上新しいものを費やしましたが、解析/マスキングの部分ではまだ終了していません。

Ruby gcが1:1の比率ではないと言われているため、変数とメモリを消費するものを取り出すことでコードを即興にすることもお勧めしました。私はこれがREE(ルビーエンタープライズ版)で最適化されていると信じていますが、現在もREEを使っています。

誰でもこれを行い、多分彼らの考えを共有していますか?ありがとう。 http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_ignore-table

答えて

3

あなたがダンプしたくないテーブルを指定することができます。あなたの構造が常に変化しなければ、mysqldumpのcustom where関数を乱用してSQLを注入することです。例えば

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

これは、3つの列のテーブルのため、そのまま最初の列、ある一定の値に第二の組と任意の関数とマングルされた第三のとダンプを行います。

3

数年後、しかし、(私のような)将来の検索のために役に立つかもしれません:

関連する問題