Jede Datenmigration ist anders. Und doch gibt es bei der Migration von Daten einige Schritte, die immer wieder kehren:
- Analyse der Daten des zu migrierenden Quell- und des Zielsystems, um ein Verständnis von den Daten zu bekommen.
- Anpassen der Struktur der einzelnen Tabellen aus dem Quellsystem an die Struktur der Datenbank in die die Daten migriert werden sollen. Das schließt die Entscheidung mit ein, Teile der Daten aus dem Quellsystem nicht mit zu übernehmen.
- Anpassen des Formats der Daten aus den Quell-Tabellen an das Format der Ziel-Tabelle, damit diese dort hineinpassen.
- Prüfen der Daten auf deren Vollständigkeit und Korrektheit hin. Unbrauchbare Daten sollten nach Möglichkeit nicht mit übernommen werden.
- Vervollständigung und Korrektur der Daten wo dies notwendig und/oder möglich ist.
- Prüfen der zu portierenden Daten auf Redundanzen hin. Doppelt oder mehrfach vorhandene Einträge sind überflüssig und sollten von daher erst gar nicht mit übernommen werden.
- Export und anschließender Import der zu migrierenden Daten in das Zielsystem.
Und falls bei der Migration der Daten die Ziel-Datenbank bereits Daten enthält oder dabei zwei oder mehrere Datenbestände zusammengeführt werden sollen, dann kommen möglicherweise noch die folgenden Aufgaben hinzu:
- Abgleich der einzelnen an der Datenmigration beteiligten Datenbestände gegeneinander, damit durch das Portieren der Daten keine Redundanzen und Mehrfacheinträge entstehen.
- Anreichern einzelner Datensätze, um die Datensätze in der Ziel-Tabelle durch Informationen aus der Quell-Tabelle zu vervollständigen und die Daten so zu vervollständigen.
Im Idealfall lässt sich eine Datenmigration mit einfachen Mitteln und/oder unter alleiniger Verwendung von Datenbankabfragen durchführen. Meist aber gibt es gute Gründe sich dabei von einem Tool wie den DataQualityTools unter die Arme greifen zu lassen.
Hinweis: Die DataQualityTools verarbeiten die Daten lokal. Eine Weitergabe der zu verarbeitenden Daten an Dritte ist nicht nötig. Dies vereinfacht den Einsatz des Tools unter dem Gesichtspunkt der Datenschutzgrundverordnung (DSGVO) erheblich:
1. Abgleich der einzelnen an der Datenmigration beteiligten Datenbestände gegeneinander, um Mehrfacheinträge zu vermeiden
Enthält bei einer Datenmigration die Ziel-Datenbank bereits Daten oder sollen dabei Daten aus mehreren Datenquellen zusammengeführt werden, dann ergibt sich das Problem zu verhindern, dass bestimmte Datensätze nach der Migration in der Ziel-Datenbank doppelt und dreifach vorkommen. Es dürfen in diesem Fall nur diejenigen Datensätze aus der Quell-Tabelle in die Ziel-Tabelle übertragen werden, die dort noch nicht existieren. Dazu müssen die beiden Datenbestände zunächst gegeneinander abgeglichen werden. Enthalten die beiden Tabellen jeweils ein eindeutiges Kriterium wie eine IBAN oder eine EAN, dann reicht hierfür eine einfache Datenbankabfrage aus. Ist das nicht der Fall, wie beispielsweise bei Adressdaten, dann muss hierfür auf eine spezielle Lösung mit einer fehlertoleranten / unscharfen Suche nach Dubletten zurückgegriffen werden. Nur so kann eine sinnvolle Verknüpfung zwischen den einzelnen Datensätzen der beiden Tabellen erzeugt werden. Hierfür bieten sich unter anderem die DataQualityTools an: Näheres dazu können Sie in dem Artikel 'Intelligente Suche nach Dubletten und doppelten Adressen' nachlesen.
2. Anreichern einzelner Datensätze, um diese zu vervollständigen
Enthält bei einer Datenmigration die Ziel-Datenbank bereits Daten oder sollen dabei Daten aus mehreren Datenquellen zusammengeführt werden, dann ergibt sich unter Umständen die Anforderung einzelne Datensätze in der Ziel-Tabelle mit Informationen aus der Quell-Tabelle anzureichern und so zu vervollständigen. Auch hier reicht für die Migration der Daten unter Umständen wieder eine einfache Datenbankabfrage aus. Wenn es komfortabler sein soll oder wenn in den beiden Tabellen kein eindeutiges Kriterium vorhanden ist, um diese zu verknüpfen, dann bietet sich auch hier wieder eine Lösung wie die DataQualityTools an. Näheres dazu können Sie in dem Artikel 'Daten anreichern: Informationen aus einer zweiten Tabelle ergänzen' nachlesen.
3. Prüfen der zu migrierenden Daten auf deren Vollständigkeit und Korrektheit hin
Eine Migration von Daten in ein neues System ist eine gute Gelegenheit um falsche oder unvollständige Datensätze und Informationen zu identifizieren und ggf. zu korrigieren. In einigen Fällen gibt es hierfür formale Kriterien, wie bei einer IBAN oder EAN, die eine Prüfziffer enthalten. Manchmal kann man zumindest die Länge eines Werts überprüfen, beispielsweise bei Postleitzahlen. Oder man prüft ob eine bestimmte Spalte überhaupt einen Wert enthält, ob also beispielsweise die Postleitzahl bei einer bestimmten Adresse fehlt. Eine darüberhinausgehende Prüfung ist in der Regel nur möglich, wenn man über die dazu passenden Referenzdaten verfügt, was nicht immer möglich und/oder mit mehr oder weniger hohen Kosten verbunden ist. Hierfür enthalten die DataQualityTools die folgenden Funktionen:
- Prüfen der postalischen Adresse auf deren Vollständigkeit und die formale Korrektheit von Postleitzahlen hin.
- Prüfen der persönlichen Anrede, also ob die angegebene Anrede auch zu dem dazu gehörenden Vornamen passt.
- IBAN auf deren formale Korrektheit prüfen.
- EAN auf deren formale Korrektheit prüfen.
4. Vervollständigung und Korrektur der zu portierenden Daten wo dies notwendig und/oder möglich ist
Unvollständige oder falsche Daten sollten im Rahmen einer Datenmigration nach Möglichkeit korrigiert werden. Oft sind hierfür aufwendige manuelle Recherchen oder zumindest die entsprechenden Referenzdaten nötig, aus denen man den korrekten Wert entnehmen kann. Einige Korrekturen lassen sich auch mit den DataQualityTools durchführen:
- Korrektur des Postleitzahlen-Formats. Dabei wird bei ostdeutschen Postleitzahlen ggf. die führende Null und bei britischen und kanadischen Postleitzahlen das Leerzeichen ergänzt.
- Ermitteln der persönlichen Anrede bzw. des Geschlechts, also "Herr" oder "Frau", aus dem Vornamen.
- Eine Spalte mit einer fortlaufenden Nummer oder mit einer Konstante befüllen.
5. Abgleich der zu portierenden Daten auf Redundanzen hin, um Mehrfacheinträge zu vermeiden
Auch wenn beim Daten portieren keine Tabellen zusammengefasst werden sollen kann es vorkommen, dass einzelne der zu übernehmenden Tabellen Mehrfacheinträge enthalten. Derartige Redundanzen sind nicht überall erwünscht und sollten von daher nach Möglichkeit erst gar nicht mit übernommen werden. Enthält die fragliche Tabelle ein eindeutiges Kriterium wie eine IBAN oder eine EAN, dann reicht hierfür eine einfache Datenbankabfrage aus. Andernfalls, wie beispielsweise bei Adressdaten, muss auf eine leistungsfähigere Lösung zurückgegriffen werden, um die redundanten Einträge zu finden. Hierfür bietet sich eine fehlertolerante / unscharfe Suche nach Dubletten an, wie sie unter anderem die DataQualityTools bieten:
Näheres dazu und zu möglichen Datenbankabfragen, die alternativ dazu verwendet werden können, können Sie in dem Artikel 'ACCESS: Nach Dubletten suchen' nachlesen.
6. Zerlegen des Inhalts einzelner Datenfelder, um diese an die neue Struktur anzupassen
Wenn bei der Datenmigration Daten in eine Tabelle übertragen werden sollen und dort bestimmte Informationen über mehrere Datenfelder verteilt gespeichert sind, in der Quell-Tabelle aber in einem einzigen Datenfeld, dann kommt man nicht umhin den Inhalt des betreffenden Datenfelds aus der Quell-Tabelle vor der Migration in seine Bestandteile zu zerlegen. Das könnte beispielsweise der Namen sein, der vor dem Portieren der Daten erst noch in den Vornamen und den Nachnamen zerlegt werden muss oder die Telefonnummer. Anders herum kann es natürlich genauso vorkommen, dass der Inhalt von zwei oder mehreren Datenfeldern für die Migration zu einem einzigen Wert zusammengefasst werden muss. Hierfür enthalten die DataQualityTools die folgenden Funktionen:
- Name in den Vornamen und den Nachnamen zerlegen.
- Anrede, also "Herr" oder "Frau", aus dem Namen extrahieren.
- Titel, also "Dr." oder "Prof.", aus dem Namen extrahieren.
- Straße in den Straßennamen und die Hausnummer zerlegen.
- Telefonnummer in Ländervorwahl, Ortsvorwahl, Rufnummer und Durchwahl zerlegen.
- Email-Adresse in ihre Bestandteile zerlegen.
- Zerlegen von beliebigen Datenfeldern anhand von Trennzeichen oder einer festen Anzahl an Zeichen.
- Zusammenfassen des Inhalts von zwei oder mehreren Datenfeldern.
7. Zusammenfasen von Tabellen aus unterschiedlichen Datenquellen und/oder mit unterschiedlicher Struktur zu einer einzigen Tabelle
Manchmal ist es aber gerade eine vergleichsweise einfache Lösung wie eine Funktion für das Zusammenfassen von Tabellen aus unterschiedlichen Datenquellen und/oder mit unterschiedlicher Struktur zu einer einzigen Tabelle, die einem beim Daten migrieren viel Arbeit abnimmt. Näheres dazu können Sie in dem Artikel 'Tabellen zusammenfassen: Zwei oder mehrere Tabellen zusammenführen' nachlesen.
Die Migration von Daten ist dabei umso einfacher ...
- ... je ähnlicher sich die zu mirgierende Quell- und die Ziel-Datenbank sind:
Wenn Daten 1:1 übernommen werden können ist das natürlich einfacher als wenn dafür eine Überleitung in die neue Struktur nötig ist. Das gilt umso mehr, wenn sich die zu migrierenden Daten in der Ziel-Datenbank über mehrere Tabellen verteilen, in der Quell-Datenbank aber in einer einzigen Tabelle gespeichert sind oder umgekehrt. - ... je weniger Tabellen bei der Datenmigration zu berücksichtigen sind:
Da bei einer Migration von Daten ja letztlich jede der zu migrierenden Tabellen einzeln auf die Datenmigration vorbereitet und dann migriert werden muss, ist es natürlich einfacher die Daten aus einer einzigen Tabelle zu portieren als die Daten aus einer großen Anzahl an Tabellen. - ... je weniger Datensätze zu migrieren sind:
Wenn man die zu migrierenden Daten noch vervollständigen oder korrigieren muss, dann ist das natürlich bei wenigen Datensätzen einfacher als bei sehr vielen. Das gilt insbesondere dann, wenn fehlende Angaben erst noch aufwendig manuell recherchieren werden müssen. Dazu kommt, dass ein Im- oder Export von Daten ab einer bestimmten Anzahl an Datensätzen schwierig wird. Es sei hier nur an die 1-Million-Zeilen-Grenze bei Excel erinnert, aber auch an die maximalen Laufzeiten (= Timeout) für Datenbankoperationen bei vielen Datenbankservern. - ... wenn die zu migrierenden Daten im gleich Datenformat vorliegen und nicht erst aufwendig importiert und/oder exportiert werden müssen:
Im Idealfall liegen die zu portierenden Daten bereits im gleichen Format vor, beispielsweise in Excel, oder aber sie liegen auf dem gleichen Datenbankserver, beispielsweise MySQL oder dem SQL Server. In diesem Fall kann man dann darauf direkt Datenbankabfragen anwenden.
Definition: Datenmigration = "Bei der Datenmigration werden Daten von einem alten System in ein neues System überführt."