XDM フィールドタイプ制約
エクスペリエンスデータモデル(XDM)スキーマでは、フィールドのタイプによって、フィールドに含めることができるデータの種類が制限されます。 このドキュメントでは、マッピング可能なその他のシリアル化形式や、様々な制約を適用するために API で独自のフィールドタイプを定義する方法など、各コアフィールドタイプの概要を説明します。
はじめに
このガイドを使用する前に、 スキーマ構成の基本を参照して、XDM スキーマ、クラス、スキーマフィールドグループの概要を確認してください。
API で独自のフィールドタイプを定義する予定がある場合は、 スキーマレジストリ開発者ガイドを参照して、フィールドグループとデータタイプを作成し、カスタムフィールドを含める方法を確認することを強くお勧めします。 Experience Platform UI を使用してスキーマを作成する場合は、UI でのフィールドの定義に関するガイドを参照して、カスタムフィールドグループおよびデータタイプ内で定義するフィールドに対する制約の実装方法を確認してください。
基本構造と例 basic-types
XDM は JSON スキーマを基に構築されているので、XDM フィールドはタイプを定義する際に同様の構文を継承します。 JSON スキーマで様々なフィールドタイプがどのように表現されるかを理解することは、各タイプのベース制約を示すのに役立ちます。 カスタムフィールド名では、大文字と小文字が区別されず、スキーマの同じレベルで異なる名前を持つ必要があります。
次の表に、各 XDM タイプが JSON スキーマでどのように表現されるかを、タイプに準拠する値の例とともに示します。
{"type": "string"}
"Platinum"
{"type": "number"}
12925.49
{
"type": "integer",
「maximum」:9007199254740991、
"minimum": -9007199254740991
}
1478108935
{
"type": "integer",
「maximum」:2147483648、
"minimum": -2147483648
}
24906290
{
"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"
{"type": "string"}
true
*すべての日付形式の文字列は、ISO 8601 規格(RFC 3339、セクション 5.6)に準拠している必要があります。
他の形式への XDM タイプのマッピング
以下の節では、各 XDM タイプがその他の一般的なシリアル化形式にどのようにマッピングされるかを説明します。
Parquet、Spark SQL および Java parquet
BYTE_ARRAY
注釈:
UTF8
StringType
java.lang.String
DOUBLE
LongType
java.lang.Double
INT64
LongType
java.lang.Long
INT32
注釈:
INT_32
IntegerType
java.lang.Integer
INT32
注釈:
INT_16
ShortType
java.lang.Short
INT32
注釈:
INT_8
ByteType
java.lang.Short
INT32
注釈:
DATE
DateType
java.util.Date
INT64
注釈:
TIMESTAMP_MILLIS
TimestampType
java.util.Date
BOOLEAN
BooleanType
java.lang.Boolean
MAP
注釈グループ(
<key-type>
は STRING
にする必要があります)MapType
(
keyType
は StringType
でなければなりません)java.util.Map
Scala、.NET、CosmosDB scala
String
System.String
String
Double
System.Double
Number
Long
System.Int64
Number
Int
System.Int32
Number
Short
System.Int16
Number
Byte
System.SByte
Number
java.util.Date
System.DateTime
String
java.util.Date
System.DateTime
String
Boolean
System.Boolean
Boolean
Map
object
MongoDB、Aerospike、Protobuf 2 mongo
string
String
string
double
Double
double
long
Integer
int64
int
Integer
int32
int
Integer
int32
int
Integer
int32
date
Integer
(Unix ミリ秒)
int64
(Unix ミリ秒)
timestamp
Integer
(Unix ミリ秒)
int64
(Unix ミリ秒)
bool
Integer
(0/1 バイナリ)
bool
object
map
map<key_type, value_type>
API での XDM フィールドタイプの定義 define-fields
Schema Registry API では、形式とオプションの制約を使用して、カスタムフィールドを定義できます。 詳しくは、 スキーマレジストリ API でのカスタムフィールドの定義に関するガイドを参照してください。