XDM フィールドタイプ制約
Experience Data Model (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": 32767,
"minimum": -32768
}
15781{
"type": "integer",
"maximum": 128,
「最小」: -128
}
90{
"type": "string",
"format": "date"
}
"2019-05-15"{
"type": "string",
"format": "date-time"
}
"2019-05-15T20:20:39+00:00"{"type": "boolean"}
true*日付でフォーマットされたすべての文字列は、ISO 8601規格(RFC 3339、セクション 5.6)に準拠している必要があります。
他の形式への XDM タイプのマッピング
以下の節では、各XDM タイプを他の一般的なシリアル化形式にマッピングする方法について説明します。
Parquet、Spark SQL、Java parquet
BYTE_ARRAY注釈:
UTF8StringTypejava.lang.StringDOUBLELongTypejava.lang.DoubleINT64LongTypejava.lang.LongINT32注釈:
INT_32IntegerTypejava.lang.IntegerINT32注釈:
INT_16ShortTypejava.lang.ShortINT32注釈:
INT_8ByteTypejava.lang.ShortINT32注釈:
DATEDateTypejava.util.DateINT64注釈:
TIMESTAMP_MILLISTimestampTypejava.util.DateBOOLEANBooleanTypejava.lang.BooleanMAP注釈付きグループ(
<key-type>はSTRINGである必要があります)MapType(
keyTypeはStringTypeである必要があります)java.util.MapScala、.NET、およびCosmosDB scala
StringSystem.StringStringDoubleSystem.DoubleNumberLongSystem.Int64NumberIntSystem.Int32NumberShortSystem.Int16NumberByteSystem.SByteNumberjava.util.DateSystem.DateTimeStringjava.util.DateSystem.DateTimeStringBooleanSystem.BooleanBooleanMapobjectMongoDB、Aerospike、およびProtobuf 2 mongo
stringStringstringdoubleDoubledoublelongIntegerint64intIntegerint32intIntegerint32intIntegerint32dateInteger(Unix ミリ秒)
int64(Unix ミリ秒)
timestampInteger(Unix ミリ秒)
int64(Unix ミリ秒)
boolInteger(0/1 バイナリ)
boolobjectmapmap<key_type, value_type>APIでのXDM フィールドタイプの定義 define-fields
Schema Registry APIでは、形式とオプションの制約を使用してカスタムフィールドを定義できます。 詳しくは、Schema Registry APIでのカスタムフィールドの定義に関するガイドを参照してください。