Datastream 会将特定于来源的数据类型转换为 Avro 和 JSON 变更事件中的一组标准统一类型。统一类型表示所有受支持的源数据类型的超集,以便 Datastream 可以在源和目标之间复制数据,而不会丢失数据。
本文档列出了 Datastream 统一类型以及以下来源的数据类型映射:
- Oracle
- MySQL
- PostgreSQL
- SQL Server
- Salesforce
- Workday(预览版)
- Spanner GoogleSQL
- Spanner PostgreSQL
- ServiceNow(预览版)
- MongoDB
- Microsoft Dataverse(预览版)
- Salesforce Marketing Cloud(预览版)
如需了解 BigQuery 目标映射,请参阅 BigQuery 中的数据类型映射。
Datastream 统一类型
| 类型名称 | 信息 | Avro 定义 | JSON 定义 |
|---|---|---|---|
BOOLEAN |
布尔值 | 布尔值 | 布尔值 |
BYTES |
无符号字节序列 | 字节 | 字符串 |
DATE |
自纪元以来的天数 | 日期逻辑类型 | 字符串 [ISO-8601] |
DATETIME |
日期(自纪元以来的天数)和时间(自午夜以来的微秒数) | 自定义类型
{
"type": "record",
"name": "datetime",
"fields": [
{"name": "date",
"type": "int",
"logicalType": "date"},
{"name": "time",
"type": "long",
"logicalType": "time-micros"}
]
}
|
字符串 [ISO-8601] |
DECIMAL (p,s) |
任意精度的有符号十进制数 | decimal 逻辑类型 | 数值 |
DOUBLE |
64 位浮点数 | double | 数字 |
FLOAT |
32 位浮点数 | float | 数值 |
GEOMETRY |
空间几何图形或地理位置对象 | 自定义类型
{
"type": "record",
"name": "geometry",
"fields": [
{"name": "value",
"type": "bytes"},
{"name": "srid",
"type": "int"},
{"name": "type",
"type": "string"}
]
}
|
嵌套 JSON |
INTEGER |
32 位整数 | 整数 | 数值 |
INTERVAL |
两个事件之间的时长(以月、小时和微秒为单位) | 自定义类型
{
"type": "record",
"name": "interval",
"fields": [
{"name": "months",
"type": "int"}
{"name": "hours",
"type": "int"},
{"name": "micros",
"type": "long"}
]
}
|
字符串 [ISO-8601] |
JSON |
JSON 对象 | 自定义逻辑类型
{
"type": "string",
"logicalType": "json"
}
|
嵌套 JSON |
LONG |
64 位整数 | 长整型 | 数字 |
NUMBER |
数值数据类型 | 自定义逻辑类型
{
"type": "string",
"logicalType": "number"
}
|
字符串 |
STRING |
字符串长度不受限制 | 字符串 | 字符串 |
TIME |
自午夜起经过的微秒数,不考虑时区。 | time-micros 逻辑类型 | 字符串 [ISO-8601] |
TIME INTERVAL |
两个事件之间经过的微秒数 | 自定义逻辑类型
{
"type": "long",
"logicalType": "time-interval-micros"
}
|
长整型 |
TIMESTAMP |
自纪元以来经过的微秒数,不考虑时区 | 时间戳逻辑类型 | 字符串 [ISO-8601] |
TIMESTAMP WITH TIME ZONE |
自纪元以来经过的微秒数,具有特定的时区偏移量(以毫秒为单位) | 自定义类型
{
"type": "record",
"name": "timestampTz",
"fields": [
{"name": "timestamp",
"type": "long"
"logicalType": "timestamp-micros"},
{"name": "offset",
"type": "int"
"logicalType": "time-millis"}
]
}
|
字符串 [ISO-8601] |
TIME WITH TIME ZONE |
自午夜起经过了多少微秒(采用特定时区偏移量) | 自定义类型
{
"type": "record",
"name": "timeTz",
"fields": [
{"name": "time",
"type": "long"
"logicalType": "time-micros"},
{"name": "offset",
"type": "int",
"logicalType": "time-millis"}
]
}
|
字符串 [ISO-8601] |
UNSUPPORTED |
不受支持的数据类型 | 自定义逻辑类型
{
"type": "null",
"logicalType": "unsupported"
}
|
null |
VARCHAR |
长度不超过 n 个字符的字符串 | 自定义逻辑类型
{
"type": "string",
"logicalType": "varchar"
"length": N
}
|
字符串 |
将 Oracle 数据类型映射到 Datastream 统一类型
| Oracle 数据类型 | 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) |
如果 p<=18,则 |
NUMBER(p,s>0) |
如果 p= |
NVARCHAR2 |
STRING |
RAW |
STRING |
ROWID |
STRING |
SDO_GEOMETRY |
UNSUPPORTED |
SMALLINT |
INTEGER |
TIMESTAMP |
TIMESTAMP
|
TIMESTAMP WITH TIME ZONE |
TIMESTAMP WITH TIME ZONE
|
UDT(用户定义的类型) |
UNSUPPORTED |
UROWID |
UNSUPPORTED |
VARCHAR |
VARCHAR |
VARCHAR2 |
VARCHAR |
XMLTYPE |
UNSUPPORTED |
将 MySQL 数据类型映射到 Datastream 统一类型
| MySQL 数据类型 | Datastream 统一类型 |
|---|---|
BIGINT(size) SIGNED |
LONG |
BIGINT(size) UNSIGNED |
如果目标位置是 BigQuery,则为 DECIMAL;如果目标位置是 Cloud Storage,则为 NUMBER |
BINARY(size) |
STRING (hex encoded) |
BIT(size) |
LONG |
BLOB(size) |
STRING (hex encoded) |
BOOL |
INTEGER |
CHAR(size) |
STRING |
DATE |
如果目标位置是 BigQuery,则为 DATE;如果目标位置是 Cloud Storage,则为 TIMESTAMP |
DATETIME(fsp) |
如果目标位置是 BigQuery,则为 DATETIME;如果目标位置是 Cloud Storage,则为 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 |
如果目标是 BigQuery,则为 JSON;如果目标是 Cloud Storage,则为 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) |
如果目标位置是 BigQuery,则为 INTERVAL;如果目标位置是 Cloud Storage,则为 TIME_INTERVAL |
TIMESTAMP(fsp) |
TIMESTAMP |
TINYBLOB |
STRING (hex encoded) |
TINYINT(size) |
INTEGER |
TINYTEXT |
STRING |
VARBINARY(size) |
STRING (hex encoded) |
VARCHAR |
STRING |
YEAR |
INTEGER |
将 PostgreSQL 数据类型映射到 Datastream 统一类型
| PostgreSQL 数据类型 | 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 |
将 SQL Server 数据类型映射到 Datastream 统一类型
| SQL Server 数据类型 | 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 |
将 Salesforce 数据类型映射到 Datastream 统一类型
Salesforce 支持两种类型的数据类型:
基元数据类型映射
| Salesforce 数据类型 | Datastream 统一类型 |
|---|---|
BOOLEAN |
BOOLEAN |
BYTE |
BYTES |
DATE |
如果目标位置是 BigQuery,则为 DATE;如果目标位置是 Cloud Storage,则为 TIMESTAMP |
DATETIME |
如果目标位置是 BigQuery,则为 DATETIME;如果目标位置是 Cloud Storage,则为 TIMESTAMP |
DOUBLE |
DOUBLE |
INT |
INTEGER |
STRING |
STRING |
TIME |
TIME |
字段数据类型映射
| Salesforce 数据类型 | Datastream 统一类型 |
|---|---|
ADDRESS |
此复合字段的子字段会以各自的数据类型进行复制 |
ANYTYPE
(可以是 |
STRING |
COMBOBOX |
STRING |
CURRENCY |
DOUBLE |
DATACATEGORYGROUPREFERENCE |
STRING |
EMAIL |
STRING |
ENCRYPTEDSTRING |
STRING |
GEOLOCATION |
此复合字段的子字段会以各自的数据类型进行复制 |
ID |
STRING |
JUNCTIONIDLIST |
STRING |
MASTERRECORD |
STRING |
MULTIPICKLIST |
STRING |
PERCENT |
DOUBLE |
PHONE |
STRING |
PICKLIST |
STRING |
REFERENCE |
STRING |
TEXTAREA |
STRING |
URL |
STRING |
将 Workday 数据类型映射到 Datastream 统一类型
| Workday 数据类型 | Datastream 统一类型 |
|---|---|
ARRAYS |
ARRAY |
BASE64BINARY |
BYTES |
BOOLEAN |
BOOLEAN |
COMPLEX TYPES |
JSON |
DATE |
DATE |
DATETIME |
TIMESTAMP |
DECIMAL |
DECIMAL |
STRING |
STRING |
将 Spanner (GoogleSQL) 数据类型映射到 Datastream 统一类型
| Spanner 数据类型 | 统一数据类型 |
|---|---|
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 |
将 Spanner (PostgreSQL) 数据类型映射到 Datastream 统一类型
| Spanner 数据类型 | 统一数据类型 |
|---|---|
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 |
将 ServiceNow 数据类型映射到 Datastream 统一类型
| ServiceNow 数据类型 | 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 |
MongoDB 数据类型
每个 MongoDB 文档都会在 Datastream 中写入为 JSON 统一类型。如需查看 BigQuery 中数据类型的写入方式示例,请参阅配置 BigQuery 目标位置。
Microsoft Dataverse 数据类型
每条 Microsoft Dataverse 记录都会在 Datastream 中写入为 JSON 统一类型。
Salesforce Marketing Cloud 数据类型
每条 Salesforce Marketing Cloud 记录都会在 Datastream 中写入为 JSON 统一类型。
后续步骤
- 如需详细了解如何配置 Oracle 源,请参阅配置 Oracle 源数据库。
- 如需详细了解如何配置 MySQL 来源,请参阅配置源 MySQL 数据库。
- 如需详细了解如何配置 PostgreSQL 来源,请参阅配置来源 PostgreSQL 数据库。
- 如需详细了解如何配置 SQL Server 来源,请参阅配置源 SQL Server 数据库。
- 如需详细了解如何配置 Salesforce 来源,请参阅配置来源 Salesforce 组织。
- 如需详细了解如何配置 ServiceNow 来源,请参阅配置来源 ServiceNow 实例。
- 如需详细了解如何配置 Workday 来源,请参阅配置来源 Workday 实例。
- 如需详细了解如何配置 MongoDB 源,请参阅配置源 MongoDB 数据库。
- 如需详细了解如何配置 Salesforce Marketing Cloud 来源,请参阅配置 Salesforce Marketing Cloud 来源。