一致類型是指在 Avro 或 JSON 事件中顯示的資料類型。這是 Datastream 專用的資料類型統一表示法,適用於 Datastream 支援的多個資料來源和目的地。
統一類型是所有支援來源類型的所有類型表示法的超集,以通用但無損的方式表示原始來源類型。
下表列出:
- 與 Datastream 相關聯的統一類型
- Oracle、MySQL、SQL Server、PostgreSQL 和 Salesforce (預先發布版) 資料類型與 Datastream 統一類型之間的對應關係
如要瞭解不同來源和 BigQuery 之間的資料類型對應關係,請參閱 BigQuery 目的地說明文件。
Datastream 統一類型
類型名稱 | 資訊 | Avro 定義 | JSON 定義 |
---|---|---|---|
BOOLEAN |
布林值 | 布林值 | 布林值 |
BYTES |
一串未簽署的位元組 | 位元組 | 字串 |
DATE |
自紀元以來的天數 | 日期邏輯類型 | string [ISO-8601] |
DATETIME |
日期 (自紀元時間起算的日期天數) 和時間 (自午夜起算的微秒數) | 自訂類型 { "type": "record", "name": "datetime", "fields": [ {"name": "date", "type": "int", "logicalType": "date"}, {"name": "time", "type": "long", "logicalType": "time-micros"} ] } |
string [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"} ] } |
string [ISO-8601] |
JSON |
JSON 物件 | 自訂邏輯類型 { "type": "string", "logicalType": "json" } |
巢狀 JSON |
LONG |
64 位元整數 | long | 數字 |
NUMBER |
數值資料類型 | 自訂邏輯類型 { "type": "string", "logicalType": "number" } |
字串 |
STRING |
字串長度不受限制 | 字串 | 字串 |
TIME |
自午夜起經過的微秒數 (不限時區)。 | 時間微秒邏輯類型 | string [ISO-8601] |
TIME_INTERVAL |
兩個事件之間的微秒間隔 | 自訂邏輯類型 { "type": "long", "logicalType": "time-interval-micros" } |
long |
TIMESTAMP |
自紀元起算,不論時區為何,經過多少微秒 | 時間戳記邏輯類型 | string [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"} ] } |
string [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"} ] } |
string [ISO-8601] |
UNION |
變化資料類型 | Union | 陣列 |
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 |
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_TIMEZONE |
TIMESTAMP_WITH_TIMEZONE |
TIME_WITH_TIMEZONE |
TIME_WITH_TIMEZONE |
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 TIMEZONE |
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 |
MongoDB 資料類型
每個 MongoDB 文件都會以 Datastream 中的 JSON
統一類型寫入。如需資料類型在 BigQuery 中寫入方式的範例,請參閱「設定 BigQuery 目的地」。
後續步驟
- 如要進一步瞭解如何設定 Oracle 來源,請參閱「設定 Oracle 來源資料庫」。
- 如要進一步瞭解如何設定 MySQL 來源,請參閱「設定來源 MySQL 資料庫」。
- 如要進一步瞭解如何設定 PostgreSQL 來源,請參閱「設定來源 PostgreSQL 資料庫」。
- 如要進一步瞭解如何設定 SQL Server 來源,請參閱「設定來源 SQL Server 資料庫」。
- 如要進一步瞭解如何設定 Salesforce 來源,請參閱「設定來源 Salesforce 組織」。
- 如要進一步瞭解如何設定 MongoDB 來源,請參閱「設定來源 MongoDB 資料庫」。