Présentation
Les types unifiés sont les types de données qui apparaissent dans les événements Avro ou JSON. Il s'agit d'une représentation unifiée spécifique à Datastream d'un type de données pour plusieurs sources de données et destinations, telles qu'une base de données Oracle source, une base de données MySQL ou une base de données PostgreSQL, et une destination BigQuery ou Cloud Storage.
Les types unifiés constituent le sur-ensemble de toutes les représentations de types de tous les types de sources acceptés. Ils représentent le type de source d'origine de manière générique, mais sans perte.
Les tableaux suivants répertorient :
- Les types unifiés associés à Datastream.
- Mappages entre les types de données d'une base de données Oracle, d'une base de données MySQL ou d'une base de données PostgreSQL, et les types unifiés Datastream
Consultez la documentation sur la destination BigQuery pour en savoir plus sur les mappages entre les types de données pour les différentes sources et BigQuery.
Types unifiés Datastream
Nom du type | Infos | Définition Avro | Définition JSON |
---|---|---|---|
BOOLEAN |
boolean | boolean | boolean |
BYTES |
Une séquence d'octets non signés | bytes | chaîne |
DATE |
Jours depuis l'epoch | Un type logique de date | Chaîne (ISO 8601) |
DATETIME |
Date (en jours depuis l'epoch) et heure (en microsecondes depuis minuit) | Un type personnalisé { "type": "record", "name": "datetime", "fields": [ {"name": "date", "type": "int", "logicalType": "date"}, {"name": "time", "type": "long", "logicalType": "time-micros"} ] } |
Chaîne (ISO 8601) |
DECIMAL (p,s) |
Nombre décimal signé de précision arbitraire | Un type logique décimal | nombre |
DOUBLE |
Nombres à virgule flottante de 64 bits | double | Nombre |
FLOAT |
Nombres à virgule flottante de 32 bits | float | nombre |
INTEGER |
Un entier de 32 bits | int | Nombre |
INTERVAL |
Durée entre deux événements (en mois, heures et microsecondes) | Un type personnalisé { "type": "record", "name": "interval", "fields": [ {"name": "months", "type": "int"} {"name": "hours", "type": "int"}, {"name": "micros", "type": "long"} ] } |
Chaîne (ISO 8601) |
JSON |
Un objet JSON | Un type logique personnalisé { "type": "string", "logicalType": "json" } |
JSON imbriqué |
LONG |
Un entier de 64 bits | long | nombre |
NUMBER |
Un type de données numériques | Un type logique personnalisé { "type": "string", "logicalType": "number" } |
chaîne |
STRING |
Une longueur de chaîne illimitée | chaîne | chaîne |
TIME |
Nombre de microsecondes écoulées depuis minuit, quel que soit le fuseau horaire. | Un type de micro-micros-time-micros | Chaîne (ISO 8601) |
TIME_INTERVAL |
Nombre de microsecondes écoulées entre deux événements | Un type logique personnalisé { "type": "long", "logicalType": "time-interval-micros" } |
long |
TIMESTAMP |
Nombre de microsecondes écoulées depuis l'epoch, quel que soit le fuseau horaire | Un type logique d'horodatage | Chaîne (ISO 8601) |
TIMESTAMP WITH TIME ZONE |
Nombre de microsecondes écoulées depuis l'epoch avec un décalage horaire spécifique, en millisecondes | Un type personnalisé { "type": "record", "name": "timestampTz", "fields": [ {"name": "timestamp", "type": "long" "logicalType": "timestamp-micros"}, {"name": "offset", "type": "int" "logicalType": "time-millis"} ] } |
Chaîne (ISO 8601) |
TIME WITH TIME ZONE |
Nombre de microsecondes écoulées depuis minuit avec un décalage de fuseau horaire spécifique | Un type personnalisé { "type": "record", "name": "timeTz", "fields": [ {"name": "time", "type": "long" "logicalType": "time-micros"}, {"name": "offset", "type": "int", "logicalType": "time-millis"} ] } |
Chaîne (ISO 8601) |
UNION |
Un type de données variable | Union | tableau |
UNSUPPORTED |
Un type de données non compatible | Un type logique personnalisé { "type": "null", "logicalType": "unsupported" } |
null |
VARCHAR |
Une chaîne d'une longueur maximale de n caractères | Un type logique personnalisé { "type": "string", "logicalType": "varchar" "length": N } |
chaîne |
Mapper les types de données Oracle aux types unifiés Datastream
Type de donnée Oracle | Type unifié Datastream |
---|---|
ANYDATA |
UNSUPPORTED |
BFILE |
STRING |
BINARY DOUBLE |
DOUBLE |
BINARY FLOAT |
FLOAT |
BLOB |
BYTES |
CHAR |
VARCHAR |
CLOB |
STRING |
DATE |
DATETIME
|
DOUBLE PRECISION |
DOUBLE |
FLOAT(p) |
DOUBLE |
INTERVAL DAY TO SECOND |
UNSUPPORTED |
INTERVAL YEAR TO MONTH |
UNSUPPORTED |
LONG/LONG RAW |
UNSUPPORTED |
NCHAR |
STRING |
NCLOB |
STRING |
NUMBER |
NUMBER |
NUMBER(p,s<=0) |
Si p<=18, alors |
NUMBER(p,s>0) |
Si p= |
NVARCHAR2 |
STRING |
RAW |
STRING |
ROWID |
STRING |
SDO_GEOMETRY |
UNSUPPORTED |
SMALLINT |
INTEGER |
TIMESTAMP |
TIMESTAMP
|
TIMESTAMP WITH TIME ZONE |
TIMESTAMP WITH TIME ZONE
|
UDT (type défini par l'utilisateur) |
UNSUPPORTED |
UROWID |
UNSUPPORTED |
VARCHAR |
VARCHAR |
VARCHAR2 |
VARCHAR |
XMLTYPE |
UNSUPPORTED |
Mapper les types de données MySQL aux types unifiés Datastream
Type de donnée MySQL | Type unifié Datastream |
---|---|
BIGINT(size) |
Si la signature est signée, LONG si elle n'est pas signée, DECIMAL |
BINARY(size) |
STRING (hex encoded) |
BIT(size) |
LONG |
BLOB(size) |
STRING (hex encoded) |
BOOL |
INTEGER |
CHAR(size) |
STRING |
DATE |
Si la destination est BigQuery, DATE . Si Cloud Storage, alors TIMESTAMP |
DATETIME(fsp) |
DATETIME |
DECIMAL(size, d) |
DECIMAL(size, d) |
DOUBLE(size, d) |
DOUBLE |
ENUM(val1, val2, val3, ...) |
STRING |
FLOAT(p) |
FLOAT |
FLOAT(size, d) |
FLOAT |
INTEGER(size) |
INTEGER |
JSON |
JSON
Les types de données |
LONGBLOB |
STRING (hex encoded) |
LONGTEXT |
STRING (hex encoded) |
MEDIUMBLOB |
STRING (hex encoded) |
MEDIUMINT(size) |
INTEGER |
MEDIUMTEXT |
STRING |
SET(val1, val2, val3, ...) |
STRING |
SMALLINT(size) |
INTEGER |
TEXT(size) |
STRING |
TIME(fsp) |
INTERVAL |
TIMESTAMP(fsp) |
TIMESTAMP |
TINYBLOB |
STRING (hex encoded) |
TINYINT(size) |
INTEGER |
TINYTEXT |
STRING |
VARBINARY(size) |
STRING (hex encoded) |
VARCHAR |
STRING |
YEAR |
INTEGER |
Mapper les types de données PostgreSQL sur les types unifiés Datastream
Type de données PostgreSQL | Type unifié Datastream |
---|---|
ARRAY |
JSON
|
BIGINT |
LONG |
BIT |
BYTES |
BIT_VARYING |
BYTES |
BOOLEAN |
BOOLEAN |
BOX |
UNSUPPORTED |
BYTEA |
BYTES |
CHARACTER |
|
CHARACTER_VARYING |
|
CIDR |
STRING |
CIRCLE |
UNSUPPORTED |
CITEXT |
STRING |
DATE |
DATE |
DOUBLE_PRECISION |
DOUBLE |
ENUM |
STRING |
INET |
STRING |
INTEGER |
INTEGER |
INTERVAL |
INTERVAL |
JSON |
JSON |
JSONB |
JSON |
LINE |
UNSUPPORTED |
LSEG |
UNSUPPORTED |
MACADDR |
STRING |
MONEY |
DOUBLE |
NUMERIC |
|
OID |
LONG |
PATH |
UNSUPPORTED |
POINT |
UNSUPPORTED |
POLYGON |
UNSUPPORTED |
REAL |
FLOAT |
SMALLINT |
INTEGER |
SMALLSERIAL |
INTEGER |
SERIAL |
INTEGER |
TEXT |
STRING |
TIME |
TIME |
TIMESTAMP |
TIMESTAMP |
TIMESTAMP_WITH_TIMEZONE |
TIMESTAMP_WITH_TIMEZONE |
TIME_WITH_TIMEZONE |
TIME_WITH_TIMEZONE |
TSQUERY |
STRING |
TSVECTOR |
STRING |
TXID_SNAPSHOT |
STRING |
UUID |
STRING |
XML |
STRING |
Mapper les types de données SQL Server sur les types unifiés Datastream
Type de données SQL Server | Type unifié Datastream |
---|---|
BIGINT |
LONG |
BINARY |
BYTES |
BIT |
BOOLEAN |
CHAR |
STRING |
DATE |
DATE |
DATETIME2 |
DATETIME |
DATETIME |
DATETIME |
DATETIMEOFFSET |
TIMESTAMP WITH TIMEZONE |
DECIMAL |
DECIMAL (p, s) |
FLOAT |
DOUBLE |
HIERARCHYID |
STRING |
INT |
INTEGER |
IMAGE |
BYTES |
MONEY |
DECIMAL |
NCHAR |
STRING |
NVARCHAR |
STRING |
NVARCHAR(MAX) |
STRING |
NTEXT |
STRING |
NUMERIC |
DECIMAL (p, s) |
REAL |
FLOAT |
SMALLDATETIME |
DATETIME |
SMALLINT |
INTEGER |
SMALLMONEY |
DECIMAL |
TEXT |
STRING |
TINYINT |
INTEGER |
TIME |
TIME |
TIMESTAMP/ROWVERSION |
BYTES |
UNIQUEIDENTIFIER |
STRING |
VARCHAR |
STRING |
VARCHAR(MAX) |
STRING |
VARBINARY |
BYTES |
VARBINARY(MAX) |
BYTES |
XML |
STRING |