...
Odysseus has different Datatypes (see Data Types for details) like Integer or String while e.g. a MySQL uses int and varchar for the same types. Furthermore, there is the JDBC driver between the database, which also uses other datatypes. So, Odysseus has a mapping that maps all (default) datatypes (called SDFDatatype) to appropriate datatypes from JDBC (see java.sql.Types). The following table shows how Odysseus maps a database data type to a Odysseus datatype:
JDBC Types | SDFDatatypes |
---|---|
Array | Object |
BigInt | Long |
Binary | Long |
Bit | Boolean |
Blob | Object |
Boolean | Boolean |
Char | String |
Clob | Object |
Datalink | Object |
Date | Date |
Decimal | Integer |
Distinct | Object |
Double | Double |
Float | Float |
Integer | Integer |
Java Object | Object |
Long NVarChar | String |
Long VarBinary | Long |
Long VarChar | String |
NChar | String |
NClob | Object |
Null | Object |
Numeric | Double |
NVarChar | String |
Other | Object |
Real | Float |
Ref | Object |
RowId | Object |
SmallInt | Integer |
SQLXML | String |
Struct | Object |
Time | Timestamp |
Timestamp | Timestamp |
TinyInt | Integer |
VarBinary | Long |
VarChar | String |
you may see, for example, that a TINYINT of JDBC is mapped to an integer in Odysseus. Therefore, if the DATABASESOURCE reads a table with datatypes BIGINT and VARCHAR, therse datatypes are mapped to LONG an STRING in Odysseus. Since this mapping is used when reading from the database, there is also a direction how Odysseus transforms its datatypes to JDBC-datatypes for writing data:
SDFDatatypes | JDBC Types |
---|---|
Boolean | Boolean |
Byte | Binary |
Date | Date |
Double | Double |
End Timestamp | BigInt |
Float | Float |
Integer | Integer |
Long | BigInt |
Object | Object |
Point in Time | BigInt |
String | VarChar |
Timestamp | Timestamp |
StartTimestamp | BigInt |
EndTimestamp | BigInt |
For example, if the DATABASESINK operator creates a new table to insert data, it uses, e.g. Types.BIGINT for a LONG or any timestamp.
...
The following databases are supported:
- MariaDB
- MySQL
- PostgreSQL
- Derby
HSQL(currently not supported) - Oracle
CQL has some problems at the moment, so please use PQL to create DB connections.
...