统一类型与源数据类型和目标数据类型的映射

统一类型是指 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,则 LONG。如果 p>18 或 p=*,则 NUMBER

NUMBER(p,s>0)

如果 p=*,则为 DECIMAL(38,s),否则为 DECIMAL(p,s)

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
  • 如果长度有限制,则映射到 VARCHAR
  • 否则,映射到 STRING
CHARACTER VARYING
  • 如果长度有限制,则映射到 VARCHAR
  • 否则,映射到 STRING
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
  • 如果精度 = -1 且标度 = -1,则映射到 NUMBER
  • 否则,映射到 DECIMAL
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

(可以是 STRINGDATENUMBERBOOLEAN

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。

后续步骤