Transformation und Konvertierung von Protobuf-Dateien

MapForce unterstützt die Konvertierung von Protocol Buffers (Protobuf) in andere strukturierte Datenformate und umgekehrt Zuordnung von Quellen oder ZielenIm ständigen Bestreben, effizientere Methoden zur Übertragung, Verarbeitung und Verwaltung großer, strukturierter Datensätze zu entwickeln, hat Google ein sprach- und plattformunabhängiges Datenformat geschaffen, das XML ähnelt, aber kleiner, schneller und einfacher ist als selbst JSON-Daten. Es stehen Werkzeuge zur Verfügung, mit denen sich Protobuf-Dateien mit Java, Python, C++, C#, Ruby und anderen Programmiersprachen erstellen und verarbeiten lassen.

Die Struktur jeder Protobuf-Nachricht wird in einer .proto-Datei definiert, die jeden Feldnamen und Datentyp festlegt. Mit Altova MapForce können Benutzer diese .proto-Dateien in eine Datenzuordnung als Quelle oder Ziel einfügen, zusammen mit anderen Daten, einschließlich XML, JSON, relationalen Datenbanken, Excel-Dateien, einfachen Textdateien, REST- und SOAP-Webdiensten und mehr. Die Versionen 2 und 3 von .proto-Dateien werden unterstützt.

Eine MapForce-Datenzuordnung ermöglicht die Kompatibilität zwischen bestehenden XML-, JSON-, Datenbank- oder älteren Datenformaten und neuen Anwendungen, indem sie die Effizienz von Protobuf nutzt.

Um mit der Konvertierung und Transformation von Protobuf-Dateien zu beginnen, können Sie einfach die Menüoption "Einfügen" oder die Schaltfläche in der Schnellzugriffsleiste verwenden, um eine .proto-Datei in die Zuordnung einzufügen.

MapForce enthält ein Beispiel für eine Datenabbildung im Protobuf-Format, das hier dargestellt wird:

Die .proto-Datei, die als Ausgabeziel verwendet wird, entspricht dem Beispiel, das in der Online-Dokumentation für die Kontaktliste "Personen" beschrieben ist. Die Quelldaten sind eine XML-Datei, die viele zusätzliche Elemente enthält, die für diesen Protobuf-Datenstrom nicht benötigt werden. Bei der Ausführung der Datenzuordnung werden die notwendigen Elemente aus der XML-Datei extrahiert, um den Ausgabedatenstrom zu erstellen.

Bitte beachten Sie, dass der Dateityp für die Protobuf-Ausgabe BLOB (Binary Large Object) ist. MapForce ermöglicht es Entwicklern, Protokollpuffer-Datenströme zu erstellen oder Protokollpuffer-Eingabedaten zu lesen, ohne Quellcode in Java, C++ oder einer anderen Sprache zu generieren, diesen dann zu kompilieren und für jede Protobuf-Datei basierend auf einer neuen .proto-Datei auszuführen.

Die konvertierten Daten anzeigen

Durch Klicken auf die Schaltfläche "Ausgabe" am unteren Rand des Hauptfensters von MapForce wird die Datenzuordnung ausgeführt. Dabei wird die Datei "Altova_Hierarchical.xml" als Datenquelle verwendet. Der resultierende Datenstrom wird im Vorschaufenster in einer JSON-ähnlichen Darstellung angezeigt:

Für einmalige Anforderungen können MapForce-Benutzer die Binärdatei über eine Option im Menü "Ausgabe" speichern:

Hier ist eine teilweise Darstellung der tatsächlich generierten Binärdaten, wie sie in einem gängigen Hexadezimal-Viewer angezeigt werden:

Die Effizienz des Protobuf-Formats zeigt sich in den binären Daten. Der zusätzliche Ballast von XML- oder JSON-Elementnamen entfällt vollständig, ebenso wie Leerzeichen, Tabulatoren, Klammern und andere Zeichen, die normalerweise zur besseren Lesbarkeit für Menschen hinzugefügt werden.

Abbildung und Transformation von Protobuf-Daten

Wenn Sie einen Protobuf-Datenstrom empfangen, können Sie diesen auf Ihr internes Unternehmensdatenformat abbilden. Die folgende Abbildung zeigt eine Zuordnung zu einer Datenbank:

Die Mapping-Funktion verwendet verschiedene Datenverarbeitungs- und Umwandlungsfunktionen, um die eingehenden Binärdaten so zu verarbeiten, dass sie der Struktur der bestehenden Datenbanktabelle entsprechen. MapForce unterstützt die Datenzuordnung zu und von allen gängigen relationalen Datenbanken sowie NoSQL-Datenbanken. Klicken Sie hier, um die vollständige Liste anzuzeigen.

Das Ergebnis dieser Zuordnung ist ein SQL-Skript, das Daten von einem Binärformat in eine Datenbank einfügt

Nachdem das Skript ausgeführt wurde, können wir den Inhalt der Datenbank mit DatabaseSpy überprüfen, dem SQL-Editor von Altova:

Automatisierte Ausführung

Produktionsworkflows können die wiederholte Ausführung von Datenzuordnungen erfordern, um neue Datenströme basierend auf derselben .proto-Definition zu generieren, wobei jedoch unterschiedliche Quelldaten verwendet werden. Im ersten oben genannten Beispiel könnte ein anderes XML-Dokument als Quelle dienen. Eine Datenzuordnung von einer Datenbank oder von einem REST-Webdienst zu Protobuf muss möglicherweise in regelmäßigen Abständen ausgeführt werden, um die aktualisierten Quelldaten zu berücksichtigen.

In solchen oder ähnlichen Fällen, in denen eine wiederholte Ausführung erforderlich ist, können MapForce-Benutzer die Datenzuordnung als eine Ausführungsdatei für den MapForce Server über eine einfache Menüauswahl speichern:

Die Ausführungsdatei definiert die Eingaben, Ausgaben und alle notwendigen Zwischenschritte, die auf die Daten angewendet werden müssen (einschließlich Sortierung, Filterung, benutzerdefinierte Funktionen oder andere), und zwar in einer Form, die für die Ausführung in einer Serverumgebung optimiert ist. MapForce Server automatisiert die Ausführung dieser kompilierten Datenzuordnungen über eine Befehlszeilenschnittstelle oder eine API.

MapForce Server kann je nach den Anforderungen des Unternehmens auch mit FlowForce Server, RaptorXML Server oder StyleVision Server konfiguriert werden. Wenn MapForce Server unter der Verwaltung von FlowForce Server betrieben wird, werden die Datenzuordnungen als Arbeitsablaufschritte von FlowForce Server ausgeführt, die zu einem bestimmten Zeitpunkt oder in einem bestimmten Zeitintervall ausgelöst werden können, oder aufgrund eines Ereignisses, wie z. B. dem Eintreffen einer neuen Datei in einem überwachten Ordner.

Für Protobuf-Datenabbildungen, bei denen die Quelle eine Datenbankabfrage oder eine REST-Anfrage ist, wird die Abfrage im Rahmen der Abbildung ausgeführt. Wenn die Eingabe eine Datei ist, wie z. B. ein JSON- oder XML-Dokument, wird die neue Datei zur Laufzeit als Parameter für den FlowForce-Job angegeben.

Sie können das jetzt alles mit einem... ausprobieren Voll funktionsfähige Testversion von MapForce.