Datastream convertit les types de données spécifiques à la source en un ensemble standard de types unifiés dans les événements de modification Avro et JSON. Les types unifiés représentent le sur-ensemble de tous les types de données sources compatibles, de sorte que Datastream puisse répliquer les données entre les sources et les destinations sans perte de données.
Ce document liste les types unifiés Datastream et les mappages de types de données pour les sources suivantes :
- Oracle
- MySQL
- PostgreSQL
- SQL Server
- Salesforce
- Workday (Preview)
- Spanner GoogleSQL
- Spanner PostgreSQL
- ServiceNow (preview)
- MongoDB
- Microsoft Dataverse (preview)
- Salesforce Marketing Cloud (preview)
Pour en savoir plus sur les mappages de destination BigQuery, consultez Mappages de types de données dans 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 | string |
DATE |
Nombre de jours depuis l'epoch | Type logique de date | Chaîne (ISO 8601) |
DATETIME |
La date (en jours depuis l'epoch) et l'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 |
GEOMETRY |
Un objet de géométrie ou de géographie spatiale | Un type personnalisé
{
"type": "record",
"name": "geometry",
"fields": [
{"name": "value",
"type": "bytes"},
{"name": "srid",
"type": "int"},
{"name": "type",
"type": "string"}
]
}
|
JSON imbriqué |
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"
}
|
string |
STRING |
Une longueur de chaîne illimitée | chaîne | string |
TIME |
Nombre de microsecondes écoulées depuis minuit, indifféremment du 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, indifféremment du 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 au fuseau horaire (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) |
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, alors DECIMAL. Si la destination est Cloud Storage, alors 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, alors DATE. Si la destination est Cloud Storage, alors TIMESTAMP. |
DATETIME(fsp) |
Si la destination est BigQuery, alors DATETIME. Si la destination est Cloud Storage, alors 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, alors la valeur est JSON. Si elle est Cloud Storage, alors la valeur est 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, alors INTERVAL. Si la destination est Cloud Storage, alors 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 |
COMPOSITE |
UNSUPPORTED |
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 TIME ZONE |
TIMESTAMP WITH TIME ZONE |
TIME WITH TIME ZONE |
TIME WITH TIME ZONE |
TSQUERY |
STRING |
TSVECTOR |
STRING |
TXID SNAPSHOT |
STRING |
UUID |
STRING |
XID |
STRING |
XID8 |
STRING |
XML |
STRING |
Mapper les types de données SQL Server avec 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 TIME ZONE |
DECIMAL |
DECIMAL (p, s) |
FLOAT |
DOUBLE |
GEOGRAPHY |
GEOMETRY |
GEOMETRY |
GEOMETRY |
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 |
Mapper les types de données Salesforce avec les types unifiés Datastream
Salesforce accepte deux types de données :
Mappages des types de données primitifs
| Type de données Salesforce | Type unifié Datastream |
|---|---|
BOOLEAN |
BOOLEAN |
BYTE |
BYTES |
DATE |
Si la destination est BigQuery, alors DATE. Si la destination est Cloud Storage, alors TIMESTAMP. |
DATETIME |
Si la destination est BigQuery, alors DATETIME. Si la destination est Cloud Storage, alors TIMESTAMP. |
DOUBLE |
DOUBLE |
INT |
INTEGER |
STRING |
STRING |
TIME |
TIME |
Mappages des types de données des champs
| Type de données Salesforce | Type unifié Datastream |
|---|---|
ADDRESS |
Les sous-champs de ce champ composé sont répliqués avec leurs types de données respectifs. |
ANYTYPE
(peut être |
STRING |
COMBOBOX |
STRING |
CURRENCY |
DOUBLE |
DATACATEGORYGROUPREFERENCE |
STRING |
EMAIL |
STRING |
ENCRYPTEDSTRING |
STRING |
GEOLOCATION |
Les sous-champs de ce champ composé sont répliqués avec leurs types de données respectifs |
ID |
STRING |
JUNCTIONIDLIST |
STRING |
MASTERRECORD |
STRING |
MULTIPICKLIST |
STRING |
PERCENT |
DOUBLE |
PHONE |
STRING |
PICKLIST |
STRING |
REFERENCE |
STRING |
TEXTAREA |
STRING |
URL |
STRING |
Mapper les types de données Workday avec les types unifiés Datastream
| Type de données Workday | Type unifié Datastream |
|---|---|
ARRAYS |
ARRAY |
BASE64BINARY |
BYTES |
BOOLEAN |
BOOLEAN |
COMPLEX TYPES |
JSON |
DATE |
DATE |
DATETIME |
TIMESTAMP |
DECIMAL |
DECIMAL |
STRING |
STRING |
Mapper les types de données Spanner (GoogleSQL) avec les types unifiés Datastream
| Type de données Spanner | Type de données unifié |
|---|---|
ARRAY |
ARRAY |
BOOL |
BOOLEAN |
BYTES |
BYTES |
DATE |
DATE |
FLOAT32 |
FLOAT |
FLOAT64 |
DOUBLE |
INT64 |
LONG |
JSON |
JSON |
NUMERIC |
NUMBER |
STRING |
STRING |
TIMESTAMP |
TIMESTAMP WITH TIME ZONE |
UUID |
STRING |
PROTO |
UNSUPPORTED |
ENUM |
UNSUPPORTED |
Mapper les types de données Spanner (PostgreSQL) avec les types unifiés Datastream
| Type de données Spanner | Type de données unifié |
|---|---|
ARRAY |
ARRAY |
BIGINT |
LONG |
BOOL |
BOOLEAN |
BYTEA |
BYTES |
CHARACTER VARYING |
STRING |
DATE |
DATE |
DECIMAL |
NUMBER |
DOUBLE PRECISION |
DOUBLE |
FLOAT8 |
DOUBLE |
INT8 |
LONG |
JSONB |
JSON |
NUMERIC |
NUMBER |
TEXT |
STRING |
TIMESTAMP WITH TIME ZONE |
TIMESTAMP WITH TIME ZONE |
TIMESTAMPTZ |
TIMESTAMP WITH TIME ZONE |
VARCHAR |
STRING |
UUID |
STRING |
Mapper les types de données ServiceNow avec les types unifiés Datastream
| Type de données ServiceNow | Type unifié Datastream |
|---|---|
action_conditions |
STRING |
approval_rules |
STRING |
audio |
STRING |
auto_increment |
LONG |
auto_number |
STRING |
boolean |
BOOLEAN |
bootstrap_color |
STRING |
breakdown_element |
STRING |
calendar_date_time |
DATETIME |
catalog_preview |
STRING |
char |
STRING |
choice |
STRING |
collection |
STRING |
color |
STRING |
color_display |
STRING |
composite_field |
STRING |
composite_name |
STRING |
compressed |
STRING |
conditions |
STRING |
condition_string |
STRING |
counter |
STRING |
css |
STRING |
currency |
DOUBLE |
currency2 |
JSON |
data_array |
STRING |
data_object |
JSON |
data_structure |
JSON |
date |
STRING |
datetime |
DATETIME |
days_of_week |
STRING |
day_of_week |
INTEGER |
decimal |
DOUBLE |
documentation_field |
STRING |
document_id |
JSON |
domain_id |
JSON |
domain_path |
STRING |
due_date |
DATETIME |
dynamic_attribute_store |
STRING |
email |
STRING |
email_script |
STRING |
expression |
STRING |
external_names |
STRING |
field_list |
STRING |
field_name |
STRING |
file_attachment |
STRING |
float |
DOUBLE |
formula |
STRING |
geo_point |
STRING |
glide_action_list |
STRING |
glide_date |
DATE |
glide_date_time |
DATETIME |
glide_duration |
TIME INTERVAL |
glide_encrypted |
STRING |
glide_list |
STRING |
glide_precise_time |
DATETIME |
glide_time |
DATETIME
|
glide_utc_time |
TIME |
glide_var |
STRING |
glyphicon |
STRING |
graphql_schema |
STRING |
guid |
STRING |
hash |
STRING |
html |
STRING |
html_script |
STRING |
html_template |
STRING |
icon |
STRING |
image |
STRING |
index_name |
STRING |
insert_timestamp |
DATETIME |
int |
INTEGER |
integer |
INTEGER |
integer_date |
DATE |
integer_time |
TIME |
internal_type |
STRING |
ip_addr |
STRING |
ip_address |
STRING |
journal |
STRING |
journal_input |
STRING |
journal_list |
STRING |
json |
JSON |
json_translations |
JSON |
language |
STRING |
le_progress |
STRING |
long |
LONG |
longint |
LONG |
mask_code |
STRING |
metric_absolute |
DOUBLE |
metric_counter |
DOUBLE |
metric_derive |
DOUBLE |
metric_gauge |
DOUBLE |
mid_config |
STRING |
month_of_year |
INTEGER |
multi_small |
STRING |
multi_two_lines |
STRING |
name_values |
JSON |
nds_icon |
STRING |
nl_task_int1 |
INTEGER |
order_index |
INTEGER |
password |
STRING |
password2 |
STRING |
percent_complete |
DOUBLE |
phone_number |
STRING |
phone_number_e164 |
STRING |
ph_number |
STRING |
price |
DOUBLE |
properties |
STRING |
radio |
STRING |
records |
STRING |
record_hierarchy_path |
STRING |
reference |
JSON |
reference_name |
STRING |
related_tags |
STRING |
reminder_field_name |
STRING |
repeat_count |
INTEGER |
repeat_type |
STRING |
replication_payload |
STRING |
schedule_date_time |
TIMESTAMP WITH TIME ZONE |
schedule_interval_count |
INTEGER |
script |
STRING |
script_client |
STRING |
script_plain |
STRING |
script_server |
STRING |
short_field_name |
STRING |
short_table_name |
STRING |
simple_name_values |
JSON |
slushbucket |
STRING |
snapshot_template_value |
STRING |
source_id |
JSON |
source_name |
STRING |
source_table |
STRING |
string |
STRING |
string_boolean |
STRING |
string_full_utf8 |
STRING |
structure |
STRING |
sysevent_name |
STRING |
sysrule_field_name |
STRING |
sys_class_name |
STRING |
sys_class_path |
STRING |
table_name |
STRING |
template_value |
STRING |
timer |
TIME INTERVAL |
time |
TIME |
translated |
STRING |
translated_field |
STRING |
translated_html |
STRING |
translated_text |
STRING |
tree_code |
STRING |
tree_path |
STRING |
url |
STRING |
user_image |
STRING |
user_input |
STRING |
user_roles |
STRING |
variables |
STRING |
variable_conditions |
STRING |
variable_template_value |
STRING |
version |
STRING |
video |
STRING |
week_of_month |
INTEGER |
wide_text |
STRING |
wiki_text |
STRING |
wms_job |
STRING |
workflow |
STRING |
workflow_conditions |
STRING |
xml |
STRING |
Types de données MongoDB
Chaque document MongoDB est écrit en tant que type unifié JSON dans Datastream.
Pour obtenir des exemples d'écriture de types de données dans BigQuery, consultez Configurer une destination BigQuery.
Types de données Microsoft Dataverse
Chaque enregistrement Microsoft Dataverse est écrit en tant que type unifié JSON dans Datastream.
Types de données Salesforce Marketing Cloud
Chaque enregistrement Salesforce Marketing Cloud est écrit en tant que type unifié JSON dans Datastream.
Étapes suivantes
- 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.
- Pour en savoir plus sur la configuration d'une source Salesforce, consultez Configurer une organisation Salesforce source.
- Pour en savoir plus sur la configuration d'une source ServiceNow, consultez Configurer une instance ServiceNow source.
- Pour en savoir plus sur la configuration d'une source Workday, consultez Configurer une instance Workday source.
- Pour en savoir plus sur la configuration d'une source MongoDB, consultez Configurer une base de données MongoDB source.
- Pour en savoir plus sur la configuration d'une source Salesforce Marketing Cloud, consultez Configurer une source Salesforce Marketing Cloud.