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 dans plusieurs sources et destinations de données, par exemple 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 les destinations 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 écoulés 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 | entier | 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 logique 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 horaire spécifique au fuseau horaire | 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) SIGNED |
LONG |
BIGINT(size) UNSIGNED |
Si la destination est BigQuery, utilisez DECIMAL . Si elle est Cloud Storage, utilisez NUMBER . |
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 , s'il s'agit de Cloud Storage, alors TIMESTAMP |
DATETIME(fsp) |
Si la destination est BigQuery, utilisez DATETIME . Si elle est Cloud Storage, utilisez TIMESTAMP . |
DECIMAL(size, d) |
DECIMAL(size, d) |
DOUBLE(size, d) |
DOUBLE |
ENUM(val1, val2, val3, ...) |
STRING |
FLOAT(p) |
FLOAT |
FLOAT(size, d) |
FLOAT |
GEOMETRY |
UNSUPPORTED |
INTEGER(size) SIGNED |
INTEGER |
INTEGER(size) UNSIGNED |
LONG |
JSON |
Si la destination est BigQuery, JSON , s'il s'agit de Cloud Storage, alors STRING
|
LONGBLOB |
STRING (hex encoded) |
LONGTEXT |
STRING |
MEDIUMBLOB |
STRING (hex encoded) |
MEDIUMINT(size) |
INTEGER |
MEDIUMTEXT |
STRING |
SET(val1, val2, val3, ...) |
STRING |
SMALLINT(size) |
INTEGER |
TEXT(size) |
STRING |
TIME(fsp) |
Si la destination est BigQuery, utilisez INTERVAL . Si elle est Cloud Storage, utilisez TIME_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 avec 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 aux 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 |
Étape suivante
- Pour en savoir plus sur la configuration d'une source Oracle, consultez Configurer une base de données Oracle source.
- Pour en savoir plus sur la configuration d'une source MySQL, consultez Configurer une base de données MySQL source.
- Pour en savoir plus sur la configuration d'une source PostgreSQL, consultez Configurer une base de données PostgreSQL source.
- Pour en savoir plus sur la configuration d'une source SQL Server, consultez Configurer une base de données SQL Server source.