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 |
日期 (自 Epoch 時間起算的天數) 和時間 (自午夜起算的微秒數) | 自訂類型
{
"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 位元浮點數 | 雙精度值 | 數字 |
FLOAT |
32 位元浮點數 | 浮點數 | 數字 |
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 位元整數 | long | 數字 |
NUMBER |
數值資料類型 | 自訂邏輯類型
{
"type": "string",
"logicalType": "number"
}
|
字串 |
STRING |
不限字串長度 | 字串 | 字串 |
TIME |
自午夜起經過的微秒數,不考慮時區。 | time-micros 邏輯類型 | 字串 [ISO-8601] |
TIME INTERVAL |
兩個事件之間經過的微秒數 | 自訂邏輯類型
{
"type": "long",
"logicalType": "time-interval-micros"
}
|
long |
TIMESTAMP |
自 Epoch 時間起經過的微秒數,不限時區 | 時間戳記邏輯類型 | 字串 [ISO-8601] |
TIMESTAMP WITH TIME ZONE |
自 Epoch 時間起經過的微秒數,並以毫秒為單位指定時區偏移量 | 自訂類型
{
"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 來源」。