一致類型是指 Avro 或 JSON 事件中顯示的資料類型。這是 Datastream 專屬的統一表示法,代表 Datastream 支援的多個資料來源和目的地中的資料類型。
統一類型是所有支援來源類型中所有類型表示法的超集,以一般但無損的方式表示原始來源類型。
下表列出:
- 與 Datastream 相關聯的統一類型
- Oracle、MySQL、SQL Server、PostgreSQL、Salesforce、Spanner、ServiceNow、MongoDB 和 Workday (預先發布版) 資料型別與 Datastream 統一型別之間的對應
如要瞭解不同來源的資料類型與 BigQuery 之間的對應關係,請參閱 BigQuery 目的地說明文件。
Datastream 統一類型
| 類型名稱 | 資訊 | Avro 定義 | JSON 定義 |
|---|---|---|---|
BOOLEAN |
布林值 | 布林值 | 布林值 |
BYTES |
未簽署的位元組序列 | 位元組 | 字串 |
DATE |
自 Unix 紀元以來的天數 | 日期邏輯類型 | 字串 [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 |
自午夜起經過的微秒數,與時區無關。 | 時間微秒邏輯型別 | 字串 [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 文件都會以 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 執行個體」。
- 如要進一步瞭解如何設定 Workday 來源,請參閱「設定來源 Workday 執行個體」。
- 如要進一步瞭解如何設定 MongoDB 來源,請參閱「設定來源 MongoDB 資料庫」。
- 如要進一步瞭解如何設定 Salesforce Marketing Cloud 來源,請參閱「設定 Salesforce Marketing Cloud 來源」。