Skip to content
sasaki nobuya edited this page Aug 20, 2017 · 10 revisions

Usage

yamlにダンプ対象のテーブル名、データベース名、クレデンシャルなどを指定する。

mozaic dump sample.yml

コマンドラインでデータベース名、テーブル名、クレデンシャルなどを指定する。

mozaic dump --database=xxx --tables=samples,tests,yyy --methods=shuffle --default-method=encrypt -u user -p

仕様

マスクメソッド

マスクメソッドを選択可能にする。

シャッフル 

形式を維持するランダム化

長さ、位置、大文字と小文字の区別、特殊文字を維持したままランダムなデータを作る。 これにより以下のデータ形式を維持したままランダム化できる。 ただ、これだと実運用上のバリデーションに引っかかる可能性があるため正規表現で指定できるようにしておく。

  • 電話番号(ハイフンがあるときのみ)
  • クレジットカード番号(ハイフンがあるときのみ)
  • メールアドレス

さらに、unique性を担保したいときはunique: trueを指定できるようにしておく。

正規表現

ユーザーがカスタムで定義できる

ユーザーがカスタムコードで置き換えできる

Rubyのコードをはさめるようにする。

対応するデータベース

  • MySQL, PostgreSQL
  • パーティショニング
  • 大規模なデータベース(sql_in_batches)

can develop plugin easily

マスクメソッドの部分をプラグインで追加しやすくする。

can select setting file format

yamlがデフォルトだが、それ以外にも選択できるようにする。

AWS Code Build

定期実行する。 定期実行してDocker Imageのstorageにいれてpushする。 そしたらそれをもってきて起動するだけでローカルに本番データがくる。