一致類型是指 Avro 或 JSON 事件中顯示的資料類型。這是 Datastream 專屬的統一表示法,適用於 Datastream 支援的多個資料來源和目的地。
統一類型是所有支援來源類型中所有類型表示法的超集,以通用但無損的方式表示原始來源類型。
下表列出:
- 與 Datastream 相關聯的統一類型
- Oracle、MySQL、SQL Server、PostgreSQL、Salesforce、Spanner、ServiceNow 和 MongoDB 資料類型與 Datastream 統一類型的對應關係
如要瞭解不同來源的資料類型與 BigQuery 之間的對應關係,請參閱 BigQuery 目的地說明文件。
Datastream 一致的類型
| 類型名稱 | 資訊 | Avro 定義 | JSON 定義 |
|---|---|---|---|
BOOLEAN |
布林值 | 布林值 | 布林值 |
BYTES |
不帶正負號的位元組序列 | 位元組 | 字串 |
DATE |
自 Unix 紀元以來的日數 | 日期邏輯類型 | 字串 [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 位元浮點數 | 雙精度值 | 數字 |
FLOAT |
32 位元浮點數 | 浮點數 | 數字 |
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 |
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 文件都會在 Datastream 中以 JSON 統一型別寫入。
如需 BigQuery 中資料類型的寫入方式範例,請參閱「設定 BigQuery 目的地」。
Microsoft Dataverse 資料類型
每個 Microsoft Dataverse 記錄都會以 JSON 統一型別寫入 Datastream。
Salesforce Marketing Cloud 資料類型
每個 Salesforce Marketing Cloud 記錄都會以 JSON 統一型別寫入資料串流。
後續步驟
- 如要進一步瞭解如何設定 Oracle 來源,請參閱「設定來源 Oracle 資料庫」。
- 如要進一步瞭解如何設定 MySQL 來源,請參閱「設定來源 MySQL 資料庫」。
- 如要進一步瞭解如何設定 PostgreSQL 來源,請參閱「設定來源 PostgreSQL 資料庫」。
- 如要進一步瞭解如何設定 SQL Server 來源,請參閱「設定來源 SQL Server 資料庫」。
- 如要進一步瞭解如何設定 Salesforce 來源,請參閱「設定來源 Salesforce 組織」。
- 如要進一步瞭解如何設定 ServiceNow 來源,請參閱「設定來源 ServiceNow 執行個體」。
- 如要進一步瞭解如何設定 MongoDB 來源,請參閱「設定來源 MongoDB 資料庫」。
- 如要進一步瞭解如何設定 Salesforce Marketing Cloud 來源,請參閱「設定 Salesforce Marketing Cloud 來源」。