一般的な問題は、データ統合と呼ばれるより大きなサブエリアの一部であるデータクレンジングと呼ばれるプログラミングのサブエリア全体です。こうした種類の問題を回避することが、Excelシートからの移行の理由の大部分である可能性が高く、上級開発者がフィールドをNULL可能にしたくない理由です。これがデータ移行の複雑さの大きな原因の1つであると言っても不合理ではないと思います。
ちょうどあなたができた非常に多くの可能性があるときは常にNULLを使用することを選択間違っおろか、まだ多くのNULL可能フィールドにするために、データモデルを変更し、実行すること。Excelには、これらの問題の多くの原因である可能性がある整合性チェックが弱いか、まったくありません。間違った方法は、新しいデータベースの整合性チェックを削除し、ガベージをダンプすることです。これは問題を永続させるだけであり、無意味なデータを何らかの形で処理しなければならない将来の統合を大幅に複雑にします。
違いの一部は、データモデルの不一致が原因である可能性があります。これに対処するには、主に両方のデータモデルに(親密に)精通し、古いモデルを新しいモデルにマッピングする方法を知っている必要があります。新しいものが古いものをキャプチャできる限り。(そうでない場合、チームにはおそらく非常に大きな問題があります。)これは、単に列をコピーするよりも多くの作業を行う必要がある場合があります。Darkwingは、これの優れた例を示しています(同様に、盲目的にNULLを挿入するのが間違っている理由と同様に)。古いモデルが持っていた場合、それにエラボReceivedDate
とInProgress
ビットと新しいモデルがありStartDate
とProcessingEndTime
、あなたがして設定する方法かどうかを判断する必要がありますProcessingEndTime
。使用方法に応じて、合理的な(ただし任意の)選択肢は、StartDate
(または、それが問題を引き起こす場合、その後すぐに)。
ただし、違いの一部は、存在するはずのデータが欠落または破損しているためと考えられます。(データ入力エラーまたはデータ処理システムの過去の移行やバグの処理が不十分である可能性が高い。)チームの誰もこれを予想していなかった場合、(集合的に)プロジェクトの時間の20%を費やすように設定しているほとんど」完了。(それは構成された数でしたが、それは遠くなる可能性がありますそれより悪い、または良い。それは、データがどれだけ間違っているか、それがどれだけ重要か、どれだけ複雑か、データの責任者から関与するのがどれだけ簡単か、そしてその他の要因に依存します。)ありますが、欠落しています。通常は、古いデータソースにクエリを実行して、問題の範囲を特定しようとします。数十または数百のエントリの場合、おそらくデータ入力エラーであり、データの責任者は手動で解決する必要があります(つまり、値がどうあるべきかを教えてください)。数百万のエントリ(またはデータのかなりの部分) 、「あるべき」と正しく認識したかどうかを再検討する必要があるかもしれません。これは、新しいシステムのモデリングエラーを示している可能性があります。
たとえば、数量とアイテムごとの合計(ただし、単価ではない)を含む請求書を想像してください。ただし、数量の一部は不可解に欠落していました。そのような請求書を処理する人と話すと、次のシナリオの1つ(またはそれ以上)が生成される可能性があります。1)「ああ、空の量は1の量を意味する」、2)「ああ、明らかに、これは2の注文です。3)「それが起こったとき、この他のシステムで価格を調べて割って丸めます」、4)「別のシステムで調べます」、5)「実際のデータではありません"、6)"これまで見たことがない "。
提案されているように、これは状況を自動的に解決するいくつかの方法を示すことができますが、すべての場合に解決策が適用されることに注意する必要があります。データをクロスチェックできる他のシステムが関与することは一般的であり、これは良いことです。しかし、クロスチェックを実行するためにこれらのシステムにアクセスして統合するのが困難な場合、それはしばしば悪いことであり、データが欠落しているだけでなく、システムが互いに競合していることがしばしば明らかになります。多くの場合、手動による介入が必要であり、規模によっては、データクレンジングタスク専用のツールとインターフェイスを作成する必要があります。多くの場合、データは部分的にインポートされますが、データが欠落している行は別のテーブルに送信され、そこで確認できます。