XDM フィールドタイプ制約

エクスペリエンスデータモデル(XDM)スキーマでは、フィールドのタイプによって、フィールドに含めることができるデータの種類が制限されます。 このドキュメントでは、マッピング可能なその他のシリアル化形式や、様々な制約を適用するために API で独自のフィールドタイプを定義する方法など、各コアフィールドタイプの概要を説明します。

はじめに

このガイドを使用する前に、​ スキーマ構成の基本 ​ を参照して、XDM スキーマ、クラス、スキーマフィールドグループの概要を確認してください。

API で独自のフィールドタイプを定義する予定がある場合は、​ スキーマレジストリ開発者ガイド ​ を参照して、フィールドグループとデータタイプを作成し、カスタムフィールドを含める方法を確認することを強くお勧めします。 Experience Platform UI を使用してスキーマを作成する場合は、UI でのフィールドの定義 ​ に関するガイドを参照して、カスタムフィールドグループおよびデータタイプ内で定義するフィールドに対する制約の実装方法を確認してください。

基本構造と例 basic-types

XDM は JSON スキーマを基に構築されているので、XDM フィールドはタイプを定義する際に同様の構文を継承します。 JSON スキーマで様々なフィールドタイプがどのように表現されるかを理解することは、各タイプのベース制約を示すのに役立ちます。 カスタムフィールド名では、大文字と小文字が区別されず、スキーマの同じレベルで異なる名前を持つ必要があります。

NOTE
JSON スキーマおよびExperience Platform API のその他の基盤となるテクノロジーについて詳しくは、API の基本ガイド ​ を参照してください。

次の表に、各 XDM タイプが JSON スキーマでどのように表現されるかを、タイプに準拠する値の例とともに示します。

XDM タイプ
JSON スキーマ
String
{"type": "string"}
"Platinum"
Number
{"type": "number"}
12925.49
Long
{
  "type": "integer",
  「maximum」:9007199254740991、
  "minimum": -9007199254740991
}
1478108935
Integer
{
  "type": "integer",
  「maximum」:2147483648、
  "minimum": -2147483648
}
24906290
Short
{
  "type": "integer",
  「maximum」:32767、
  "minimum": -32768
}
15781
Byte
{
  "type": "integer",
  「maximum」:128,
  "minimum":-128
}
90
Date*
{
  "type": "string",
  "format": "date"
}
"2019-05-15"
DateTime*
{
  "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 タイプの中に、Map タイプも含まれています。 マップは、データが特定の値にマッピングされるキーとして表される場合、またはキーが静的スキーマに合理的に含まれず、データ値として扱われる必要がある場合に、標準スキーマで使用されます。
多くの標準 XDM コンポーネントはマップタイプを使用し、必要に応じて ​ カスタムマップフィールドを定義 ​ することもできます。 次の表に含まれるマップタイプは、既存のデータが以下に示すいずれかの形式に現在保存されている場合、そのデータを XDM にマッピングする方法を決定する際に役立ちます。

Parquet、Spark SQL および Java parquet

XDM タイプ
PARQUET
Spark SQL
Java
String
型:BYTE_ARRAY
注釈:UTF8
StringType
java.lang.String
Number
型:DOUBLE
LongType
java.lang.Double
Long
型:INT64
LongType
java.lang.Long
Integer
型:INT32
注釈:INT_32
IntegerType
java.lang.Integer
Short
型:INT32
注釈:INT_16
ShortType
java.lang.Short
Byte
型:INT32
注釈:INT_8
ByteType
java.lang.Short
Date
型:INT32
注釈:DATE
DateType
java.util.Date
DateTime
型:INT64
注釈:TIMESTAMP_MILLIS
TimestampType
java.util.Date
Boolean
型:BOOLEAN
BooleanType
java.lang.Boolean
Map
MAP 注釈グループ

<key-type>STRING にする必要があります)
MapType

keyTypeStringType でなければなりません)
java.util.Map

Scala、.NET、CosmosDB scala

XDM タイプ
Scala
.NET
CosmosDB
String
String
System.String
String
Number
Double
System.Double
Number
Long
Long
System.Int64
Number
Integer
Int
System.Int32
Number
Short
Short
System.Int16
Number
Byte
Byte
System.SByte
Number
Date
java.util.Date
System.DateTime
String
DateTime
java.util.Date
System.DateTime
String
Boolean
Boolean
System.Boolean
Boolean
Map
Map
(N/A)
object

MongoDB、Aerospike、Protobuf 2 mongo

XDM タイプ
MongoDB
Aerospike
Protobuf 2
String
string
String
string
Number
double
Double
double
Long
long
Integer
int64
Integer
int
Integer
int32
Short
int
Integer
int32
Byte
int
Integer
int32
Date
date
Integer
(Unix ミリ秒)
int64
(Unix ミリ秒)
DateTime
timestamp
Integer
(Unix ミリ秒)
int64
(Unix ミリ秒)
Boolean
bool
Integer
(0/1 バイナリ)
bool
Map
object
map
map<key_type, value_type>

API での XDM フィールドタイプの定義 define-fields

Schema Registry API では、形式とオプションの制約を使用して、カスタムフィールドを定義できます。 詳しくは、​ スキーマレジストリ API でのカスタムフィールドの定義 ​ に関するガイドを参照してください。

recommendation-more-help
62e9ffd9-1c74-4cef-8f47-0d00af32fc07