Transformation von Daten
DataWeave ist eine Sprache welche die Anforderung einer flexiblen Datenintegration erfüllt. DataWeave erlaubt die Abfrage und Transformation von Daten und sorgt so für eine effiziente Anwendugsintegration. Der Prozess der Konvertierung von Daten oder Informationen in ein Zielformat wird als Datentransformation bezeichnet. Heutige Unternehmensinfrastrukturen nutzen selten die gleichen Datenformate. Transformation von Datenstrukturen ist eines der wichtigsten Themen für die Integration von Enterprise Applikationen. Unterstützt werden die gängigen Datenformate wie JSON, XML, Java, CSV, Excel, Cobol Copybook und Flat Files.
DataWeave 1.0
Das DataWeave-Skript besteht aus einem Header und einem Body und wird durch ---
getrennt.
DataWeave Header
Der Header erlaubt die folgenden Elemente in separaten Zeilen, denen jeweils ein '%' vorangestellt ist.
Element | Beschreibung | Beispiel |
---|---|---|
%dw |
DataWeave Version |
%dw 1.0 |
%output |
Ausgabe-Format als MIME type |
%output application/json |
%input |
Input-Format als MIME type |
%input application/xml |
%namespace |
XML Namespaces |
%namespace soap http://www.w3.org/2003/05/soap-envelope |
%var |
Konstanten können im nachfolgenden Header oder im Script-Body verwendet werden. Die Referenzausdrücke der DataWeave Expression Language werden unterstützt. |
%var user = {"firstname": "John", "lastname": "Doe", "user_id" : "jdoe"} |
%function |
Funktion - DataWeave Expression Language wird unterstützt. |
%function fullname(user) (user.firstname ' ' user.lastname) |
%type |
Benutzerdefinierter Datentyp |
%type order = :object {class: "com.dataliquid.domain.User"} |
DataWeave Body
Der DataWeave Body beschreibt die Transformationslogik und definiert die Ausgabestruktur. Die Anwendungsbereiche sind sehr vielfältig und reichen von einfachen Mappings bis hin zu komplexen Transformationsregeln. Unterstützung von Datentypen und umfangreiche Funktionen (Zusammenführung, Aggregation, Anreicherung, Filterung) erleichtern die Umsetzung von fachlich komplexen Transformationsregeln.
Input
{
"fname": "John",
"name": "Doe",
"id" : "jdoe"
}
DataWeave-Skript
%dw 1.0
%output application/json
---
{
uid : payload.id,
firstname : payload.fname,
lastname : payload.name
}
Output
{
"uid": "jdoe",
"firstname": "John",
"lastname": "Doe"
}
Zusammenfassung
In diesem Artikel wurden Grundlagen von DataWeave vorgestellt. Neben dem recht einfachem Datenmapping ist DataWeave in der Lage sehr komplexe Transformationen durchzuführen. Als wichtiger Bestandteil des Mule ESB vereinfacht DataWeave die Datenintegration stark.