Datenbank-Mapping

Mappen und Konvertieren von Daten zwischen Datenbanken oder anderen Datenformaten

  • Ausführung von Datenbankabfragen an allen wichtigen Datenbanken
  • Unterstützung für relationale & NoSQL-Datenbanken
  • Konvertieren von Daten von einem Datenbanktyp in einen anderen
  • Mappen von Datenbankdaten von oder auf andere Datenformate
  • Definition von Datenbankschlüssel-Einstellungen
  • Ausgabeprotokollierung & Fehlerbehandlung
  • Definition von Datenbankaktionen
  • Direkte Abfrage von Datenbanken
  • Verbinden mit und Mappen von XML-Datenbankdaten in Tabellen
  • Sortieren von Datenbank-Input-Komponenten

Datenbank-Mapping-Tools

MapForce ist ein Datenmapping und -integrationstool mit leistungsstarken Funktionen zur Datenbankkonvertierung. MapForce unterstützt die Konvertierung zwischen beliebigen Arten von Datenbankdaten und XML, JSON, PDF, CSV und anderen Flat Files, EDI, Excel (OOXML), protobuf, XBRL, Webservices und sogar anderen Datenbankformaten.

Beim Laden einer Datenbankstruktur im Design-Fenster interpretiert MapForce automatisch das Datenbankschema, stellt Ihnen die verfügbaren Tabellen und Ansichten zur Auswahl und erkennt die Tabellenbeziehungen.

Grafisches Datenbank-Mapping im MapForce zum einfachen Integrieren von Datenbankdaten

Nach dem Laden aller Inhaltsmodelle ziehen Sie nur mehr Verbindungslinien zwischen der Quell- und der Zielstruktur, um das Mapping fertigzustellen.

Unterstützte relationale Datenbanken:

  • Firebird 2.5, 3, 4
  • IBM DB2 for iSeries® v6.1, 7.1, 7.2, 7.3, 7.4
  • IBM DB2® 8, 9.1, 9.5, 9.7, 10.1, 10.5, 11.5, 11.5.7
  • Informix® 11.70, 12.10, 14.10
  • MariaDB 10, 10.3, 10.4, 10.5, 10.6.5, 10.9.2
  • Microsoft Access™ 2003, 2007, 2010, 2013, 2019
  • Microsoft® Azure SQL
  • Microsoft® SQL Server® 2005-2022
  • MySQL® 5, 5.1, 5.5, 5.6, 5.7, 8, 8.0.25, 8.0.28
  • Oracle® 9i, 10g, 11g, 12c, 18, 19
  • PostgreSQL 8, 9, 10, 11, 12, 13, 14, 15
  • Progress OpenEdge 11.6
  • SQLite 3.x
  • Sybase® ASE 15, 16
  • Teradata 16

Unterstützte NoSQL-Datenbanken:

  • MongoDB
  • CouchDB

MapForce unterstützt alle gängigen relationalen Datenbanken sowie beliebte NoSQL-Datenbanken und ermöglicht die Erstellung grafischer Mappings zwischen Datenbankquelldaten, Datenverarbeitungsfunktionen und Filtern und anderen Datenstrukturen der verschiedensten Art. Dadurch werden auch häufige Datenbankmigrationsszenarien wie MySQL in PostgreSQL sowie zahllose andere Möglichkeiten wie 1:n-Transformationen und verkettete Datentransformationen unterstützt.

Filtern und Verarbeiten von Datenbankdaten

Oft müssen Daten bei Datenbank-Mappings zwischen Quell- und Zielkomponente auf Basis von Booleschen Bedingungen oder SQL- und SQL/XML-Anweisungen bearbeitet werden. Es können logische Vergleiche, mathematische Berechnungen, String-Operationen oder andere Datenmodifikationsprozesse durchgeführt werden. In der Abbildung oben werden in den Kästchen zwischen den Linien, die das Quell- und das Zieldatenmodell verbinden, Datenverarbeitungsfunktionen angezeigt.

Mit Hilfe von Datenverarbeitungsfunktionen können Sie on-the-fly komplexe Datenbank-Mappings für die verschiedensten Transformationsanforderungen durchführen. So können Sie z.B. Datenbank-Mappings erstellen, die XML oder EDI-Nachrichten verwenden, um Datenbankzeilen auf Basis von Filterkriterien aus den XML- oder EDI-Elementen zu extrahieren.

Sofortige Datenbankkonvertierung

Nachdem Sie Ihr Mapping definiert haben, können Sie die Ergebnisse mit Hilfe des integrierten MapForce-Prozessors mit einem Klick anzeigen und speichern.

Mappings einer Datenbank auf XML erzeugen ein XML-Ausgabedokument, ein Datenbank-Mapping auf Flat Files bringt CSV- oder Textdokumente mit fester Länge hervor, Mappings von Datenbanken auf EDI produzieren EDIFACT-, X12- oder HL7-Nachrichten, Datenbank-Mappings auf Excel erzeugen Office XML (OOXML) Markup-Code und Mappings auf XBRL produzieren XBRL-Finanzberichte.

Werden Daten auf eine Datenbank gemappt, wird ein Resultat in Form von SQL-Skripts (z.B. SELECT, INSERT, UPDATE und DELETE-Anweisungen) oder NoSQL-Skripts erzeugt, die direkt von MapForce aus an der Zieldatenbank ausgeführt werden können.

Protokollierung der Datenbankausgabe (Ablaufverfolgung)

Dank der Datenbankablaufverfolgung können alle während der Mapping-Ausführung an einer Datenbank vorgenommenen Änderungen protokolliert werden.

Wenn die Ablaufverfolgung aktiviert wurde, werden Ereignisse wie Datenbankeinfüge- oder -aktualisierungsaktionen oder Fehler in einer XML-Datei aufgezeichnet, die später auf automatisierte Art analysiert oder weiterverarbeitet werden kann.

Die Datenbankablaufverfolgung kann auf Ebene der Datenbankkomponente, auf Ebene von Tabellen, gespeicherten Prozeduren oder Datenbankfeldern aktiviert werden. Wahlweise können alle Meldungen oder nur Fehlermeldungen protokolliert werden oder die Ablaufverfolgung kann komplett deaktiviert werden.

Nach Auswahl der gewünschten Ebene wird die jeweilige Datenbankkomponente im Mapping-Projekt durch eine XML-Struktur mit der Log-Struktur erweitert. Um die Log-Datei in einem anderen Format als XML zu erhalten, können Sie Daten daraus auf ein anderes von MapForce unterstütztes Datenformat (z.B. eine Textdatei oder sogar eine andere Datenbank) mappen.

Wenn der Entwickler auf die Schaltfläche "Ausgabe" klickt, um eine Vorschau auf das Mapping-Ergebnis zu sehen, sieht er ein Beispiel dafür, wie die Ablaufverfolgungsdatei aussieht, wenn das Mapping ausgeführt wird.

Datenbankablaufverfolgung zur Protokollierung der Ausgabe von Datenbankkonvertierungen

Fehlerbehandlung bei Datenbanktransaktionen

Außerdem ermöglicht MapForce die Behandlung von Datenbanktransaktionen, um die Änderungen bei Auftreten eines Fehlers am betroffenen Teil der Datenbank rückgängig zu machen und das restliche Mapping optional weiter auszuführen.

Manchmal treten Fehler auf, die sich nicht auf die Ausführung des restlichen Datenbank-Mappings auswirken, z.B. wenn ungültige Daten aufgrund bestimmter Constraints nicht eingefügt oder aktualisiert werden können.

Durch Aktivierung der Datenbanktransaktionsbehandlung werden alle durch die Datenbankkomponente vorgenommenen Änderungen in eine Transaktion eingeschlossen, die im Fall eines Fehlers mit Rollback rückgängig gemacht wird. Sie haben die Möglichkeit auszuwählen, ob das restliche Mapping danach fortgesetzt oder die Mapping-Ausführung beendet werden soll. Die Transaktionsbehandlung kann auf Ebene der Datenbankkomponente und auf Ebene von Tabellenaktionen aktiviert werden.

Aktivierung von Datenbanktransaktionen zur Behandlung von Fehlern

Diese Funktionalität ist sehr nützlich, um gültige eingehende Daten zu berücksichtigen und ungültige Daten einfach zu ignorieren.

Komplexe Datenbank-Mappings

Als Ergänzung zu den Datenbank-Mapping- und Integrationsfunktionen bietet MapForce ein Datenbankabfrageregister zur Durchführung direkter Datenbankabfragen. Wenn Sie über das Datenbankabfrageregister eine Verbindung zu einer Datenbank herstellen, werden ihre Tabellen im Browser-Fenster von MapForce in einer hierarchischen Struktur angezeigt. Hierbei bietet MapForce spezifische Unterstützung für die folgenden Datenbanken:

  • Firebird
  • IBM DB2 for iSeries
  • IBM DB2®
  • Informix®
  • MariaDB
  • Microsoft Access™
  • Microsoft® Azure SQL
  • Microsoft® SQL Server®
  • MySQL®
  • Oracle®
  • PostgreSQL
  • Progress OpenEdge
  • SQLite
  • Sybase®
  • Teradata
  • MongoDB
  • CouchDB
Abfrage der Datenbank während ein Datenbankkonvertierungsmapping definiert wird

Anschließend können Sie über das SQL Editor-Register SQL- oder SQL/XML-Anweisungen anzeigen, bearbeiten und ausführen - entweder durch Öffnen bestehender SQL-Dateien oder durch Neuerstellung von SQL-Anweisungen mittels der Drag-and-Drop und Autokomplettierungsfunktionen.

Sie können Ihr SQL Script ausführen, die Ergebnisse in tabellarischern Form anzeigen und die abgerufenen Daten und das SQL Script in separaten Dateien speichern.

Datenbankschlüssel-Einstellungen

Mit Hilfe der Datenbankschlüssel-Einstellungen können Sie in MapForce einstellen, wie Primär- und Sekundärschlüsselwerte zu einer als Zielkomponente für ein Datenmapping verwendeten Datenbank hinzugefügt werden sollen. Dabei haben Sie die Möglichkeit, entweder in MapForce Werte für Schlüssel zu definieren oder die Werte automatisch vom Datenbanksystem generieren zu lassen.

In Situationen, in denen Primär- und/oder Sekundärschlüsselbeziehungen in Ihren Datenbanktabellen nicht explizit definiert sind, können Sie mit MapForce diese Beziehungen inline ohne Auswirkung auf die Quelldaten definieren.

Definition von Datenbankaktionen

Beim Mappen auf eine Datenbank können Sie in MapForce Datenbankaktionen auswählen, mit denen Sie steuern können, wie Daten in die Datenbank geschrieben werden. Damit haben Sie volle Flexibilität, um die komplexesten Datenverwaltungsaufgaben zu automatisieren.

Über das einfach zu verwendende Dialogfeld "Datenbankaktionen" können Sie die Spalten in der ausgewählten Tabelle definieren, anhand derer Sie festlegen, welche Aktion (INSERT, UPDATE, DELETE) an der Datenbank ausgeführt werden soll.

Dank dieser Funktion stehen Ihnen in MapForce noch nie dagewesene Möglichkeiten zur Bearbeitung von Datenbankzeilen bei der Integration von XML-, Datenbank-, EDI-, XBRL-, Flat File-, Excel-, JSON-, JSON5-, Webservice- oder anderen Datenbankdaten zur Verfügung.

Gespeicherte SQL-Prozeduren

MapForce bietet solide Unterstützung für gespeicherte Prozeduren als Input-Komponenten (Prozeduren, die Ergebnisse liefern) oder Output-Komponenten (Prozeduren, die Daten einfügen oder aktualisieren). Gespeicherte Prozeduren können auch als funktionsähnlicher Aufruf eingefügt werden, wodurch Input-Daten definiert, die gespeicherte Prozedur ausgeführt und die Output-Daten gelesen und auf andere Komponente gemappt werden können.

In dieser Abbildung sehen Sie das Mapping einer gespeicherten Prozedur in SQL Server, um eine XML-Datei zu erstellen. Die Prozedur gibt eine Datentabelle zurück, in der alle Manager in der Weisungskette oberhalb der als Input-Parameter angegebenen Mitarbeiter-ID angezeigt werden - in diesem Beispiel die Konstante 67.

Der Parameter könnte anders, z.B. als berechneter Wert oder als von anderswo in der Datenbank abgerufenes Datenelement geliefert werden.

MapForce verfügt über ein Kontextmenü, über das die gespeicherte Prozedur ausgeführt werden kann, damit die für das Mapping verwendete Datenstruktur sichtbar wird: Das gezeigte Mapping generiert die XML-Ausgabe.

Komplexe Datenmapping-Tools bieten Unterstützung für gespeicherte Prozeduren

Mappen von XML-Datenbankdaten

MapForce gestattet auch das Mappen von in relationalen Datenbankfeldern gespeicherten XML-Daten (Unterstützung derzeit nur für SQL Server & IBM DB2). Sie weisen dem Feld einfach ein XML-Schema zu - entweder ein in der Datenbank registriertes oder eines aus Ihrem lokalen Dateisystem - und MapForce stellt das Schema zu Mappingzwecken als Substruktur des Datenbankfelds dar.

Sortieren von Datenbank-Input-Komponenten

Nicht immer jedoch genügt bei komplexen Datenmapping-Aufgaben eine einfache SQL-Abfrage innerhalb einer Datenbank. Für solche Zwecke oder wenn sich andere Daten oder Bedingungen im Mapping auf die Sortierreihenfolge auswirken, bietet MapForce mit der SQL-WHERE/ORDER-Komponente für Datenbank-Input zusätzliche Datenbanksortierfunktionen.

Unterstützung für NULL-Werte in Datenbankaktionen

Das Dialogfeld "Datenbankaktionen" unterstützt den Vergleich von NULL-Werten. Dies erleichtert die Arbeit mit Datenbanken, die Nullwerte enthalten. In MapForce können Datenbankmappings so konfiguriert werden, dass Datenvergleiche gemäß den Regeln für die im Mapping verwendeten Datenbanken NULL-fähig durchgeführt werden.

Mit dem Datenmapping rechts soll die Zieltabelle aktualisiert werden, ohne dass doppelte Einträge eingefügt werden. Beide Tabellen erlauben laut Definition NULL im Feld "email", daher könnten in jeder Tabelle übereinstimmende Datensätze mit NULL-Email-Feldern vorhanden sein.

Durch Klick auf das Aktionssymbol neben der Datenbank "TARGET" rufen Sie das Dialogfeld "Datenbankaktionen" auf. Wenn das Kontrollkästchen "NULL equal" neben dem Feld "email" aktiviert wird, werden NULL-Werte in der Quell- und Zielkomponente im Datenmapping als gleich behandelt, auch wenn sie laut Datenbankregeln nicht identisch sind.

Null-fähiges Datenbank-Mapping in MapForce

Datenbanken auf XML

MapForce unterstützt Datenbankmappings von oder auf XML auf Basis von XML-Schema- oder DTD-Inhaltsmodellen. Laden Sie zur Erstellung eines Datenbankmappings von oder auf XML einfach ein XML-Schema und eine Datenbank in MapForce und ziehen Sie Verbindungslinien zwischen XML-Nodes und Datenbankobjekten.

Falls es kein Schema zu einem XML-Instanzdokument gibt, kann MapForce ein XML-Schema anhand eines XML-Instanzdokuments generieren.

MapForce XML-Datenbank-Mappings

Unterstützung für XML Wildcards

Mittels <xs:any> und <xs:anyAttribute> in einem Schema-Design kann an der entsprechenden Stelle im XML-Instanzdokument ein beliebiges neues Element oder Attribut eingefügt werden, auch wenn das neue Element oder Attribut im XML-Schema nicht definiert ist. Diese so genannten XML Wildcards sind eine beliebte Methode, um XML-Schemas, die Standards für die verschiedensten Branchen unterstützen, anpassen zu können.

MapForce unterstützt beim Mappen auf XML oder andere Ausgabeformate <xs:any> und <xs:anyAttribute>. Über eine neue Auswahlschaltfläche neben <xs:any> oder <xs:anyAttribute> in einer XML-Input-Komponente wird ein Dialogfeld zur Auswahl der Wildcard geöffnet.

Die Unterstützung der im XML-Schema-Design häufig verwendeten <xs:any> und <xs:anyAttribute> Wildcards in MapForce wurden von vielen Benutzern gefragt.

Lernen Sie, wie Sie in MapForce Datenbankdaten in XML und andere Formate konvertieren

JSON-Datenbank-Mapping

MapForce bietet Unterstützung für das Definieren und Ausführen von Datenbank-Mappings auf Basis von JSON (JavaScript Object Notation)-Modellen. JSON-Instanzen oder JSON-Schema-Dateien können als Quell- oder Zielkomponente von Datenbank-Mappings hinzugefügt werden. MapForce liest und schreibt JSON-Dateien auf Basis des JSON Draft 04-Schemas.

Wie unten gezeigt, werden JSON-Komponenten mit der entsprechenden Elementsyntax und ihren Datentypen angezeigt.

MapForce-Konvertierung von Datenbankdaten in JSON

Mit Hilfe der Datenverarbeitungsfunktionen aus der MapForce-Funktionsbibliothek können Sie JSON-Daten genau wie andere Komponenten transformieren.

JSON-Schemas automatisch generieren

Wenn Sie eine JSON- oder JSON5-Datei zu einem Datenbank-Mapping hinzufügen, erkennt MapForce automatisch, ob es sich um ein Schema oder eine Instanzdatei handelt. Bei JSON- oder JSON5-Instanzdateien fordert MapForce Sie auf, ein Schema anzugeben oder automatisch eines zu generieren. Anhand des JSON- oder JSON5-Schemas wird die Struktur der Komponente erstellt.

Automatisieren der Datenbank-Mapping-Ausführung mit MapForce Server

Altova MapForce Server enthält den für MapForce entwickelten Datentransformationsprozessor und wurde für den Betrieb in Serverumgebungen optimiert. MapForce Server führt anhand von in MapForce erstellten und optimierten Datenmappings, die in Ausführungsdateien gespeichert wurden, Datentransformationen für jede beliebige Kombination von XML-, Datenbank-, EDI-, XBRL-, Flat File-, Excel-, JSON-, und/oder Webservice-Daten durch. Mit seinen Server-Funktionalitäten wie Parallelverarbeitung und Multi-Threading, Bulk SQL Merge, plattformübergreifender Unterstützung und mehr, eröffnet MapForce Server ganz neue Möglichkeiten für Datentransformationen.

Dank Vorverarbeitung lassen sich die meisten Datenmappings schneller und mit weniger Arbeitsspeicherbedarf durchführen. MapForce Server wird über FlowForce Server, in einer Standalone-Konfiguration über die Befehlszeile oder programmatisch über eine API ausgeführt.

Nachdem ein MapForce Mapping erstellt und getestet wurde, kann es von MapForce Server ausgeführt werden, um Geschäftsprozesse, für die wiederholte Datentransformationen erforderlich sind, zu automatisieren.

Automatisierung von Datenbank-Mapping-Aufgaben mit MapForce

Mit Altova MapForce werden Datenmappings erstellt, diese für die Befehlszeilenausführung durch MapForce Server in MapForce Server-Ausführungsdateien gespeichert und zur Verwendung in FlowForce Server Aufträge geladen.

Wenn MapForce Server unter der Verwaltung von FlowForce Server ausgeführt wird, werden Datenmappings als FlowForce Server-Auftragsschritte, die auf Basis von Triggern ausgelöst werden, ausgeführt. Ein Beispiel wäre ein neues XBRL-Instanzdokument in einem Verzeichnis, wodurch ein aus mehreren Schritten bestehender FlowForce Server-Auftrag ausgelöst wird, bei dem die Datei zuerst mit RaptorXML+XBRL Server validiert wird. Anschließend werden bestimmte Daten mit Hilfe von MapForce Server aus der XBRL-Datei extrahiert und in eine Datenbank eingefügt.

MapForce Server mit Bulk-Einfügung für Datenbanken

Die Bulk-Einfügung ist eine Operation für bestimmte Datenbanken, mit der Sie große Datenmengen mit einer einzigen SQL-Anweisung in eine Datenbanktabelle einfügen können, anstatt wie üblich für jede Zeile eine eigene Insert-Anweisung zu verwenden. Da der Datenbankprozessor dadurch weniger Speicherplatz benötigt, erfolgt die Verarbeitung viel rascher. Bei Tests von MapForce Server erwies sich die Bulk-Einfügung als bis zu 10 Mal so schnell wie die Verwendung einzelner Insert-Anweisungen.

Auch bei Multi-User-Umgebungen ist die Bulk-Einfügung hilfreich. Eine lange Reihe von Insert-Befehlen, die von einem Benutzer an die Datenbank gesendet wird, könnte z.B. durch eine von einem anderen Benutzer gesendete Select-Anweisung an dieselbe Tabelle unterbrochen werden. In diesem Fall wären das Resultat der Select-Anweisung unvollständige oder ungültige Daten.