XDM欄位型別限制
在Experience Data Model (XDM)結構描述中,欄位的型別會限制欄位可包含哪種資料。 本檔案提供每種核心欄位型別的概觀,包括可對應的其他序列化格式,以及如何在API中定義自己的欄位型別,以強制實施不同的限制。
快速入門
使用本指南之前,請先檢閱結構描述組合的基本知識,以瞭解XDM結構描述、類別和結構描述欄位群組的簡介。
如果您打算在API中定義自己的欄位型別,強烈建議您從Schema Registry開發人員指南開始,瞭解如何建立欄位群組和資料型別,以包含您的自訂欄位。 如果您使用Experience Platform UI建立結構描述,請參閱在UI中定義欄位的指南,以瞭解如何對您在自訂欄位群組和資料型別中定義的欄位實作限制。
基底結構和範例 basic-types
XDM是以JSON結構描述為基礎建立,因此XDM欄位在定義其型別時繼承類似的語法。 瞭解不同的欄位型別在JSON結構描述中的呈現方式,有助於指出每種型別的基本限制。 自訂欄位名稱不區分大小寫,且在結構描述的相同層級上必須有不同的名稱。
NOTE
如需JSON結構描述和Experience Platform API中其他基礎技術的詳細資訊,請參閱API基礎指南。
下表概述每個XDM型別在JSON結構描述中的呈現方式,以及與型別相容的範例值:
XDM型別
JSON結構描述
範例
字串
{"type": "string"}
"Platinum"編號
{"type": "number"}
12925.49Long
{
"type": "integer",
"maximum":9007199254740991,
"minimum": -9007199254740991
}
1478108935整數
{
"type": "integer",
"maximum":2147483648,
"minimum": -2147483648
}
24906290Short
{
"type": "integer",
"maximum":32768,
"minimum": -32768
}
15781位元組
{
"type": "integer",
"maximum":128,
"minimum": -128
}
90日期*
{
"type": "string",
"format": "date"
}
"2019-05-15"日期時間*
{
"type": "string",
"format": "date-time"
}
"2019-05-15T20:20:39+00:00"Boolean
{"type": "boolean"}
true*所有日期格式字串都必須符合ISO 8601標準(RFC 3339,第5.6節)。
將XDM型別對應到其他格式
以下各節說明每個XDM型別如何對應至其他常見的序列化格式:
NOTE
在下表列出的標準XDM型別中,對應型別也包括在內。 當資料以對應到特定值的索引鍵來表示,或索引鍵無法合理地包含在靜態結構描述中且必須被視為資料值時,標準結構描述會使用對應。
許多標準XDM元件都使用對應型別,您也可以定義自訂對應欄位 (如果需要)。 下表包含對應型別,其用意是協助您決定如何將現有資料對應至XDM (如果目前儲存在下列任何格式中)。
Parquet、Spark SQL和Java parquet
XDM型別
Parquet
Spark SQL
Java
字串
型別:
註解:
BYTE_ARRAY註解:
UTF8StringTypejava.lang.String數字
類型:
DOUBLELongTypejava.lang.Double長
類型:
INT64LongTypejava.lang.Long整數
型別:
註解:
INT32註解:
INT_32IntegerTypejava.lang.Integer短整數
型別:
註解:
INT32註解:
INT_16ShortTypejava.lang.Short位元組
型別:
註解:
INT32註解:
INT_8ByteTypejava.lang.Short日期
型別:
註解:
INT32註解:
DATEDateTypejava.util.Date日期時間
型別:
註解:
INT64註解:
TIMESTAMP_MILLISTimestampTypejava.util.Date布林值
類型:
BOOLEANBooleanTypejava.lang.Boolean地圖
MAP — 註解的群組(
<key-type>必須為STRING)MapType(
keyType必須為StringType)java.util.MapScala、.NET和CosmosDB scala
XDM型別
Scala
.NET
CosmosDB
字串
StringSystem.StringString數字
DoubleSystem.DoubleNumber長
LongSystem.Int64Number整數
IntSystem.Int32Number短整數
ShortSystem.Int16Number位元組
ByteSystem.SByteNumber日期
java.util.DateSystem.DateTimeString日期時間
java.util.DateSystem.DateTimeString布林值
BooleanSystem.BooleanBoolean地圖
Map(不適用)
objectMongoDB、Surospike和Protobuf 2 mongo
XDM型別
MongoDB
尖峰
Protobuf 2
字串
stringStringstring數字
doubleDoubledouble長
longIntegerint64整數
intIntegerint32短整數
intIntegerint32位元組
intIntegerint32日期
dateInteger(Unix毫秒)
int64(Unix毫秒)
日期時間
timestampInteger(Unix毫秒)
int64(Unix毫秒)
布林值
boolInteger(0/1二進位)
bool地圖
objectmapmap<key_type, value_type>在API中定義XDM欄位型別 define-fields
Schema Registry API可讓您透過使用格式和選用限制來定義自訂欄位。 如需詳細資訊,請參閱在結構描述登入API中定義自訂欄位的指南。
recommendation-more-help
62e9ffd9-1c74-4cef-8f47-0d00af32fc07