24

実際の顧客情報 (名前、住所、電話番号など) を含む本番データを取得し、それを開発環境に移動する必要がありますが、実際の顧客情報の類似性を削除したいと考えています。

この質問への回答のいくつかは、新しいテスト データを生成するのに役立ちますが、本番データでこれらの列を置き換えるにはどうすればよいでしょうか。ただし、他の関連する列は保持します。

仮の名前が 10000 個あるテーブルがあるとします。SQL 更新でクロス結合を行う必要がありますか? または、次のようなことをします

UPDATE table
SET lastname = (SELECT TOP 1 name FROM samplenames ORDER By NEWID())
4

3 に答える 3

17

データベースを理解していれば、これは思ったより簡単です。必要なことの 1 つは、個人情報が正規化されていない場所を理解することです。たとえば、顧客マスター ファイルには名前と住所がありますが、注文ファイルにも異なる名前と住所があります。

私の基本的なプロセス:

  1. データ (つまり、列) と、それらの列を含むテーブルを識別します。
  2. それらの列の「マスター」テーブルと、それらの列の正規化されていないインスタンスも識別します。
  3. マスターファイルを調整します。それらをランダム化しようとする(またはそれらを偽物にする)のではなく、それらをファイルのキーに接続します。顧客 123 の場合、名前を name123 に、住所を 123 123rd St, 123town, CA, USA, phone 1231231231 に設定します。これにより、デバッグが非常に簡単になるという追加のボーナスが得られます。
  4. マスターファイルから更新するか、同じ種類の非個人化を行うことにより、非通常のインスタンスを変更します

見た目は良くありませんが、機能します。

于 2008-11-04T00:20:43.347 に答える
14

データの匿名化は難しい場合があり、正しく行わないと問題が発生する可能性があります。たとえば、AOL が以前に検索データをリリースしたときに起こったことです。既存の顧客データを変換する前に、テスト データをゼロから作成しようとしました。行動分析や機密とは考えないその他のデータ ポイントなどを使用して、データが誰のものであるかを特定できるようになる場合があります。申し訳ありませんが、むしろ安全です。

于 2008-11-03T23:24:45.503 に答える