Inhaltsverzeichnis

Search

  1. Preface
  2. Einführung in Umwandlungen
  3. Umwandlungsports
  4. Umwandlungs-Caches
  5. Adressvalidator-Umwandlung
  6. Aggregator-Umwandlung
  7. Assoziations-Umwandlung
  8. Ausnahmeumwandlung bei fehlerhaftem Datensatz
  9. Fallumwandlerumwandlung
  10. Klassifizierumwandlung
  11. Vergleichsumwandlung
  12. Konsolidierungsumwandlung
  13. Datenmaskierungsumwandlung
  14. Datenprozessor-Umwandlung
  15. Entscheidungsumwandlung
  16. Ausnahmeumwandlung bei dupliziertem Datensatz
  17. Ausdrucksumwandlung
  18. Filterumwandlung
  19. Umwandlung von hierarchisch in relational
  20. Java-Umwandlung
  21. Java-Umwandlungs-API-Referenz
  22. Java-Ausdrücke
  23. Joiner-Umwandlung
  24. Schlüsselgeneratorumwandlung
  25. Labeler-Umwandlung
  26. Lookup-Umwandlung
  27. Lookup-Caches
  28. Dynamischer Lookup-Cache
  29. Match-Umwandlung
  30. Match-Umwandlungen in der Feldanalyse
  31. Match-Umwandlungen in der Identitätsanalyse
  32. Merge-Umwandlung
  33. Normalizer-Umwandlung
  34. Parser-Umwandlung
  35. Python-Umwandlung
  36. Rang-Umwandlung
  37. Leseumwandlung
  38. Relational-in-hierarchisch-Umwandlung
  39. REST-Webdienst-Verbraucher-Umwandlung
  40. Router-Umwandlung
  41. Sequenzgeneratorumwandlung
  42. Sortierer-Umwandlung
  43. SQL-Umwandlung
  44. Standardisierungs-Umwandlung
  45. Union-Umwandlung
  46. Update-Strategie-Umwandlung
  47. Web-Dienst-Verbraucher-Umwandlung
  48. Parsen von Webdienst-SOAP-Meldungen
  49. Generieren von Webdienst-SOAP-Meldungen
  50. Umwandlung für gewichteten Durchschnitt
  51. Schreibumwandlung
  52. Umwandlungs-Delimiter

Developer Transformation Guide

Developer Transformation Guide

Konvertieren in Struct-Daten, Beispiel

Konvertieren in Struct-Daten, Beispiel

Ihr Unternehmen muss eine große Menge an Kundendaten aus einer einfachen Datei in Daten des Typs „struct“ konvertieren und diese in eine Avro-Datei schreiben. Die Eingabedatei enthält Kundendaten wie Name, Alter und Telefonnummer. Wenn der Kundenname in der Eingabedatei Null ist, sollten Sie der Ausgabedatei keine Kundendaten hinzufügen.
Sie können ein Mapping mit einer Java-Umwandlung entwickeln, um die Umwandlungsfunktionalität zu definieren. Führen Sie in der Hadoop-Umgebung das Mapping auf der Spark-Engine aus, um die Daten zu übertragen und die „struct“-Daten in eine Avro-Datei zu schreiben.
Erstellen Sie ein Mapping und konfigurieren Sie die folgenden Umwandlungen:
  • Leseumwandlung, die Kundendaten aus einer Einfachdateiquelle liest
  • Java-Umwandlung als aktive Umwandlung, die einfache Daten in „struct“-Daten konvertiert und inkonsistente Daten entfernt
  • Schreibumwandlung, die die „struct“-Daten in eine Avro-Datei schreibt
Die folgende Abbildung zeigt das Mapping mit einer Leseumwandlung, einer Java-Umwandlung und einer Schreibumwandlung.
Das Mapping m_JavaTx_StructConversion enthält eine Leseumwandlung, die die Einfachdateiquelle „Customer_Flat“ darstellt. Das Mapping enthält eine Java-Umwandlung, die einfache Daten in „struct“-Daten konvertiert, sowie eine Schreibumwandlung, die das Avro-Ziel „Customer_Avro“ darstellt.
Erstellen Sie auf der Registerkarte „Typdefinitionsbibliothek“ des Mapping-Editors die komplexe Datentypdefinition „Customer“. Die komplexe Datentypdefinition stellt das Schema der „struct“-Daten dar. Benennen Sie die Typdefinitionsbibliothek in „CustomerInfo“ um. Fügen Sie die komplexe Datentypdefinition den folgenden Elementen hinzu:
  • „name“mit dem Typ „string“
  • „age“ mit dem Typ „integer“
  • „phones“ mit dem Typ „array“ mit String-Elementen
Die folgende Abbildung zeigt die komplexe Datentypdefinition in der Typdefinitionsbibliothek:
Die Typdefinitionsbibliothek „CustomerInfo“ enthält die komplexe Datentypdefinition „Customer“ mit den Elementen „name“, „age“ und „phones“.
Fügen Sie in der Java-Umwandlung einen „struct“-Ausgabeport hinzu und geben Sie die Typkonfiguration des Ports an, um die von Ihnen erstellte komplexe Datentypdefinition zu referenzieren. Die Java-Umwandlung generiert eine Klasse „Customer“ mit Settern und Gettern, um die Member-Felder zu lesen und festzulegen. Die Klasse enthält die folgenden Member-Felder:
  • _name
  • _age
  • _phones
Die folgende Abbildung zeigt die für den struct-Port erstellte Klasse auf der Registerkarte
Full-Code
der
Java
-Ansicht:
Die Registerkarte „Full-Code“ der Java-Ansicht auf der Registerkarte „Eigenschaften“ der Java-Umwandlung zeigt die äußere Klasse „CustomerInfo“ und die innere Klasse „Customer“ mit Gettern und Settern für die Member-Felder. Die Member-Felder „_name“, „_age“ und „_phones“ sind Java-Datentypen.
Der Java-Datentyp für den struct-Port verwendet den Namen der Typdefinitionsbibliothek und die komplexe Datentypdefinition. Die folgende Abbildung zeigt den Java-Datentypnamen „CustomerInfo.Customer“ für das „cust“-Feld im generierten Code:
Die Registerkarte „Full-Code“ der Java-Ansicht zeigt den Code, den die Java-Umwandlung generiert. Der Code zeigt das „cust“-Feld, das für den struct-Port erstellt wird. Das Feld hat den Java-Datentyp „CustomerInfo.Customer“.
Importieren Sie in der
Java
-Ansicht der Java-Umwandlung integrierte und benutzerdefinierte Java-Pakete sowie Java-Pakete von Drittanbietern, die die Umwandlung benötigt. Schreiben und kompilieren Sie den Java-Code, der einfache Daten in „struct“-Daten zu konvertiert und die Kundenzeile entfernt, wenn der Kundenname null ist.
Die folgende Abbildung zeigt den Code auf der Registerkarte
Bei Eingabe
:
 Die Registerkarte „Bei Eingabe“ der Java-Ansicht zeigt den Code, der die Umwandlungsfunktionalität definiert.
Validieren Sie das Mapping und führen Sie es auf der Spark-Engine aus, um die umgewandelten Daten in die Avro-Dateiausgabe zu schreiben.