统一类型是指 Avro 或 JSON 事件中显示的数据类型。它们是 Datastream 针对多个数据源和目标位置(Datastream 支持)的特定统一数据类型表示形式。
统一类型是所有受支持来源类型中的所有类型表示形式的超集,它们以通用但无损的方式表示原始来源类型。
下表列出了:
- 与 Datastream 关联的统一类型
- Oracle、MySQL、SQL Server、PostgreSQL、Salesforce、Spanner、ServiceNow 和 MongoDB 数据类型与 Datastream 统一类型之间的映射
如需了解不同来源的数据类型与 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) |
任意精度的带符号十进制数 | 十进制逻辑类型 | 数值 |
DOUBLE |
64 位浮点数 | double | 数字 |
FLOAT |
32 位浮点数 | float | 数字 |
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 |
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 |
将 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 文档都以 JSON 统一类型的形式写入 Datastream。
如需查看 BigQuery 中数据类型的写入示例,请参阅配置 BigQuery 目的地。
Microsoft Dataverse 数据类型
每个 Microsoft Dataverse 记录都以 JSON 统一类型的形式写入 Datastream。
Salesforce Marketing Cloud 数据类型
每个 Salesforce Marketing Cloud 记录都以 JSON 统一类型的形式写入 Datastream。
后续步骤
- 如需详细了解如何配置 Oracle 来源,请参阅配置 Oracle 源数据库。
- 如需详细了解如何配置 MySQL 源,请参阅配置源 MySQL 数据库。
- 如需详细了解如何配置 PostgreSQL 来源,请参阅配置源 PostgreSQL 数据库。
- 如需详细了解如何配置 SQL Server 源,请参阅配置源 SQL Server 数据库。
- 如需详细了解如何配置 Salesforce 源,请参阅配置源 Salesforce 组织。
- 如需详细了解如何配置 ServiceNow 来源,请参阅配置源 ServiceNow 实例。
- 如需详细了解如何配置 MongoDB 源,请参阅配置源 MongoDB 数据库。
- 如需详细了解如何配置 Salesforce Marketing Cloud 源,请参阅配置 Salesforce Marketing Cloud 源。