Altova DiffDog 2024 Enterprise Edition

Vergleich von CSV- und Datenbankdaten

Zur Startseite Zurück Nach oben Weiter

Sie können Daten aus CSV-Dateien oder Datenbanken Seite an Seite nebeneinander vergleichen. Auch gemischte Vergleiche sind möglich. So können Sie etwa Daten aus einer CSV-Datei mit Daten aus einer Datenbanktabelle vergleichen. Die zu vergleichenden Objekte können entweder aus derselben oder zwei verschiedenen Datenbanken stammen.

 

Ein Datenbank- oder CSV-Vergleich ähnelt einem Dateivergleich, d.h. er besteht aus einer linken und einer rechten Komponente. Bei der Komponente handelt es sich nur um eine Darstellung der Datenbankstruktur, über die Sie die zu vergleichenden Tabellen oder Spalten bequem auswählen können.

dbdiff_compare_data_01

Datenbankdatenvergleich

Im Fall von CSV-Dateien enthält die Komponente nur eine Tabelle, die den Inhalt der CSV-Datei darstellt. Jede Spalte entspricht einem CSV-Feld. Die Spaltennamen entsprechen Kopfzeilenfeldern, wenn die CSV-Quelldatei eine Kopfzeile hat und Sie bei Herstellen der Verbindung zur CSV-Datenquelle die Option Erste Zeile ist die Kopfzeile aktiviert haben. Wenn die CSV-Datei keine Kopfzeile enthält, werden die Spalten automatisch benannt, z.B. mit "c1", "c2", usw.

 

Nachdem Sie Daten verglichen haben, haben Sie die Möglichkeit, Unterschiede entweder von links nach rechts oder von rechts nach links zusammenzuführen. Sie können entweder alle Unterschiede auf einmal zusammenführen oder die Unterschiede tabellenweise in einem Datenraster anzeigen und die einzelnen Unterschiede dann einzeln auf Zeilenebene überprüfen und zusammenführen. Nähere Informationen dazu finden Sie unter Anzeigen von Unterschieden zwischen Tabellen und Zusammenführen von CSV- und Datenbankunterschieden.

 

Wenn Sie denselben Datenvergleich häufig ausführen, können Sie diesen in einer Datenbankdatenvergleichsdatei (.dbdif) speichern, siehe Speichern von Vergleichen.

 

Voraussetzungen

Für jede zu vergleichende Datenbanktabelle oder Datei muss in Ihrem Projekt eine aktive Verbindung zu einer Datenquelle bestehen. Mit diesen Daten wird die "linke" und "rechte" Komponente befüllt. Nähere Informationen dazu finden Sie unter Herstellen einer Verbindung zu einer Datenquelle. Informationen zu CSV-Dateien finden Sie unter Hinzufügen von CSV-Dateien als Datenquelle.

Wenn Sie Tabellen vergleichen, muss jede Tabelle eine Primärschlüsselspalte haben. DiffDog benötigt die Primärschlüsselspalte, um die Tabellenzeilen vor dem eigentlichen Vergleich zu sortieren.

 

Einschränkungen

Wenn Sie CSV-Dateien vergleichen, wird die erste Spalte jeder Zeile immer als Primärschlüsselspalte behandelt.

Wenn die Primärschlüsselspalte nicht numerisch ist und eine Änderung in der Schlüsselspalte vorgenommen wird, wird die gesamte Zeile als neue Zeile behandelt. Dies gilt sowohl für CSV-Dateien als auch für Datenbankvergleiche. Betrachten Sie dazu das folgende Beispiel:

dd_pk_limitation

Das oben gezeigte Vergleichsergebnis ist das Ergebnis eines Vergleichs zweier CSV-Dateien. Wie bereits zuvor erwähnt, ist die erste Spalte in CSV-Dateien immer der Primärschlüssel. Obwohl der Wert "Bob" in "Bobby" umbenannt wurde, wird diese Änderung aus diesem Grund als neue Zeile (und nicht als Unterschied in dieser Spalte) angegeben. Der Unterschied zwischen "Birdsong" und "Beardsong" hingegen wird als Unterschied in derselben Zeile angezeigt, da diese Spalte keine Primärschlüsselspalte ist.

 

Datenbankspaltensymbole

Datenbankspalten werden durch das Symbol icDBTable gekennzeichnet. Datenbankspalten werden durch das Symbol icDBColumn gekennzeichnet. Falls für die Spalte ein Constraint definiert wurde, erhält das Spaltensymbol ein zusätzliches Symbol. Wenn einer Spalte mehr als ein Constraint zugewiesen wurde, wird nur der Constraint mit der höchsten Priorität im Spaltensymbol dargestellt. Die Tabelle unten enthält eine Erläuterung der Priorität von Constraints, beginnend mit der höchsten Priorität.

 

icDBPrimaryKeyColumn

Diese Spalte wird als Primärschlüssel der Tabelle verwendet.

icDBUniqueKeyColumn

Diese Spalte hat einen eindeutigen Constraint.

icDBForeignKeyColumn

Diese Spalte hat einen Sekundärschlüssel, der den Primärschlüssel einer anderen Tabelle referenziert.

icDBXMLColumn

Diese Spalte enthält XML-Daten.

icDBDefaultValueColumn

Für diese Spalte ist ein Standardwert definiert. Wenn für diese Spalte kein Wert bereitgestellt wird, wird stattdessen der Standardwert eingefügt.

 

© 2018-2024 Altova GmbH