Datentypen (Java-Integrationsstufe in DataStage)
IBM® DataStage® unterstützt eine Gruppe von Datentypen, die sich von Java™ -Datentypen unterscheiden.
In einem Ausgabelink, bei dem DataStage -Spalten aus den von der Stage 'Java Integration' erzeugten Java-Datentypen festgelegt werden, konvertiert die Stage 'Java Integration' die Java-Datentypen in IBM DataStage -Datentypen. Umgekehrt werden in einem Eingabelink, bei dem JavaBeans -Eigenschaften oder -Spalten aus den DataStage -Spalten festgelegt werden, die IBM DataStage -Datentypen in Java-Datentypen konvertiert.
Datentypkonvertierungen von DataStage-Datentypen in Java-Datentypen
In einer Eingabeverknüpfung, in der Java-Typen aus DataStage gesetzt werden, die von der Java-Integrationsstufe konsumiert werden, konvertiert die Java-Integrationsstufe IBM DataStage in Java-Datentypen.
Die folgende Tabelle zeigt die Zuordnungsregeln zwischen IBM DataStage und Java-Datentypen.
| IBM DataStage | Java-Datentypen |
|---|---|
| BigInt | java.math.BigInteger |
| Binär | byte[] |
| Bit | int/java.lang.Integer oder boolean/java.lang.Boolean Hinweis: boolean/java.lang.Boolean gilt nur für Java Beans oder UDFs
|
| Char | java.lang.String |
| Datum | java.sql.Date |
| Dezimal | java.math.BigDecimal |
| Double | double/java.lang.Double |
| Float | float/java.lang.Float |
| Integer | long/java.lang.Long |
| LongNVarChar | java.lang.String |
| LongVarBinary | byte[] |
| LongVarChar | java.lang.String |
| NChar | java.lang.String |
| Numerisch | java.math.BigDecimal |
| NVarChar | java.lang.String |
| Real | java.lang.Float |
| SmallInt | java.lang.Integer |
| Zeit | java.sql.Time |
| Timestamp | java.sql.Timestamp |
| TinyInt | java.lang.Short |
| VarBinary | byte[] |
| VarChar | java.lang.String |
Datentypkonvertierungen von Java-Datentypen in DataStage-Datentypen
In einer Ausgabeverknüpfung, in der DataStage aus den von der Java Integration Stage erzeugten Java-Typen gesetzt werden, konvertiert die Java Integration Stage Java-Datentypen in IBM DataStage.
Ebenso werden nach dem Import von Metadaten über die Java-Integrationsstufe die Java-Datentypen in IBM DataStage konvertiert. Die folgende Tabelle zeigt die Zuordnungsregeln zwischen Java-Datentypen und IBM DataStage.
| Java-Datentyp | IBM DataStage |
|---|---|
| boolean/java.lang.Boolean Hinweis: gilt nur für JavaBeans oder UDF-Fälle
|
Bit |
| short/java.lang.Short | TinyInt |
| int/java.lang.Integer | SmallInt oder Bit |
| long/java.lang.Long | Integer |
| java.math.BigInteger | BigInt |
| float/java.lang.Float | Reelle Zahl oder Gleitkommazahl |
| double/java.lang.Double | Double |
| byte[] | Binär oder VarBinary oder LongVarBinary |
| java.lang.String | Char oder VarChar oder LongVarChar oder NChar oder NVarChar oder LongNVarChar |
| java.sql.Date | Datum |
| java.sql.Time | Zeit |
| java.sql.Timestamp | TimeStamp |
| java.math.BigDecimal | Dezimal oder numerisch |
Zeit mit Mikrosekundenauflösung
Der Zeitdatentyp von DataStage Parallel Engine kann eine Auflösung im Mikrosekundenbereich haben, aber der ' java.sql.Time hat nur eine Auflösung im Millisekundenbereich. Das Ergebnis ist, dass die letzten drei Ziffern von Mikrosekunden abgeschnitten werden. Das Abschneiden erfolgt auch, wenn Spalten von einem Eingabelink zu einem Ausgabelink weitergegeben werden. Um das Abschneiden zu vermeiden, bietet die Java Integration Stage API eine Klasse " com.ibm.is.cc.javastage.api.TimeMicroseconds, die den Zeitwert in der Spezifikation Mikrosekunden beibehält.
Die Klasse " com.ibm.is.cc.javastage.api.TimeMicroseconds erbt die Klasse java.sql.Time und verfügt über eine Mikrosekundenauflösung sowie über Stunde, Minute und Sekunde. Die Mikrosekunden werden nicht abgeschnitten, wenn Spalten von einem Eingabelink zu einem Ausgabelink weitergegeben werden. Wenn Sie die Daten mit Mikrosekundenauflösung in den Ausgabelink schreiben möchten, verwenden Sie diese Klasse.
Weitere Informationen über die Klasse " TimeMicroseconds finden Sie in der Javadoc-Information für die Java Integration stage API.