Wenn die zu migrierenden Daten derzeit fehlerhaft sind, muss behoben werden, ob Sie eine Migration durchführen oder nicht. Schlechte Daten = unbrauchbare Daten.
Migrationen sind riskant, das stimmt. Aber auch jedes größere IT-Projekt. Es gibt Möglichkeiten zur Risikominimierung und sie sollten im Vorfeld einer Migration unbedingt geplant werden.
Erstens sollten Sie immer die Möglichkeit haben, zum aktuellen System zurückzukehren. Zweite Migrationen sollten auf Testservern durchgeführt werden, die nur für die Migration eingerichtet wurden. Es ist töricht, eine Migration durchzuführen, ohne sie zuerst testen zu können. Drittens sollte sich der gesamte Code für die Migration in der Quellcodeverwaltung befinden.
Viertens benötigen Sie Anforderungen und Testpläne, bevor Sie mit der Migration beginnen. Sie müssen wissen, dass wenn Sie im alten System 1.293.687 Datensätze hatten, dass Sie dieselben im neuen System haben oder wissen, wohin sie gegangen sind (vielleicht zu einer Ausnahmetabelle). Wenn Sie ein denormalisiertes Schema normalisieren, müssen Sie berechnen, mit wie vielen Datensätzen Sie enden sollen, bevor Sie beginnen, und dies dann überprüfen. Sie benötigen eine Dokumentation, die angibt, wie die Zuordnungen von einem System zum anderen aussehen. Auf diese Weise können Ihre QA-Mitarbeiter überprüfen, ob die Daten an der richtigen Stelle eingegangen sind.
Sie müssen festlegen, wie mit den aktuellen fehlerhaften Daten umgegangen werden soll. Was kann bereinigt werden, was muss in einem erforderlichen Feld mit der Aufschrift "Unbekannt" angegeben werden, was muss in eine Ausnahmetabelle verschoben werden, was muss manuell von einer Benutzergruppe eingegriffen werden (um zu entscheiden, ob es sich bei diesen beiden Personen wirklich um einen Betrüger handelt oder nicht) Gibt es in dieser Praxis zwei Ärzte mit demselben Namen, und wenn es sich um ein Dup handelt, welche Daten zu wählen sind, wenn sich die beiden Aufzeichnungen unterscheiden, usw.)?
Der Schlüssel zu einer erfolgreichen Migration liegt in der Planung. Ich habe festgestellt, dass die Planung (einschließlich des Schreibens der Testfälle und der Komponententests) in der Regel mehr Zeit in Anspruch nimmt als die eigentliche Entwicklung.
Der nächste Schlüssel für eine erfolgreiche Datenmigration ist die Qualitätssicherung. Dies ist kein Projekt, das Sie dem QA-Team am Tag vor dem Start vorwerfen sollten. Dies ist kein Projekt, das gestartet werden soll, wenn QA angibt, dass ein Problem vorliegt.
Ein weiterer Schlüssel für eine erfolgreiche Migration besteht darin, den Großteil der Daten bereitzustellen und zu testen, während das ursprüngliche System noch ausgeführt wird. Wenn Sie viele Datensätze verschieben, ist dies möglicherweise zeitaufwändig und es werden neue Änderungen vorgenommen. Daher muss Ihr Prozess in der Lage sein, die Datenänderungen auch nach dem Start der Migration abzurufen. SQL Server hat zum Beispiel etwas, das sich Change Data Capture nennt und das dabei helfen kann. Sie können eine Sicherungskopie des Orginalsystems erstellen und gleichzeitig die Erfassung von Änderungsdaten aktivieren. Anschließend können Sie die Sicherung erneut auf Ihren Migrationsserver übertragen, die Migration testen, den Großteil der Daten laden und anschließend nur die geänderten Datensätze laden. Wenn Sie die endgültigen Datensätze migrieren, deaktivieren Sie das Quellsystem, bis die Migration abgeschlossen ist. Dies ist ein Grund, einen Großteil der Datensätze vorzeitig zu migrieren. Daher ist die Anwendung in der kürzesten Zeit nicht verfügbar. Wählen Sie Ihre Migrationszeit gut aus, schließen Sie die Personalabrechnung nicht an dem Tag, an dem sie die Personalabrechnung bearbeiten oder W2s versenden soll. Und das während der geringen Nutzungsdauer. Wenn Sie mehrere Clients haben, können Sie einen zuerst migrieren und sicherstellen, dass alles in Ordnung ist, bevor Sie die anderen Clients ausführen. Es ist viel einfacher, die Daten eines Kunden zurückzusetzen als 10000, wenn es ein Problem gibt. Aber planen Sie dies sorgfältig, wenn Sie es tun. s Daten als 10000, wenn ein Problem vorliegt. Aber planen Sie dies sorgfältig, wenn Sie es tun. s Daten als 10000, wenn ein Problem vorliegt. Aber planen Sie dies sorgfältig, wenn Sie es tun.
Wenn die Migration eine neue Benutzeroberfläche umfasst, bitten Sie die tatsächlichen Benutzer, diese im Rahmen des Migrationstests zu verwenden. Trainieren Sie dann die anderen Benutzer, bevor Sie live gehen (aber weniger als eine Woche, bevor Sie live gehen, sonst werden sie es vergessen). Lassen Sie die an den Tests beteiligten Benutzer das Training mitgestalten, sie wissen, welche Fragen sie hatten und was die Benutzer in welcher Reihenfolge wissen müssen. Holen Sie sich Ihre Eingabe, indem Sie ein Feld erforderlich machen, da Sie der Meinung sind, dass es nicht hilfreich sein sollte, wenn die Benutzer diese Daten normalerweise nicht haben, wenn sie die Datensätze eingeben. Sie werden nur Junk in das neu erforderliche Feld einfügen, da sie die Daten sonst nicht abrufen können.
Sehen Sie sich an, was mit den aktuellen Daten nicht stimmt. Können Sie in der Anwendung Fremdschlüssel, Einschränkungen, Trigger, Geschäftsregeln, Standardwerte usw. hinzufügen, um dies in Zukunft zu vermeiden? Wenn Sie fehlerhafte Daten bereinigen, müssen Sie auch eine Möglichkeit schaffen, um zu verhindern, dass in Zukunft ähnlich fehlerhafte Daten eingehen. Analysieren Sie, warum die fehlerhaften Daten zugeordnet wurden, und korrigieren Sie die Löcher im Design.