XDM フィールドタイプ制約

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

はじめに

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

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

基本構造と例 basic-types

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

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

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

XDM タイプ
JSON スキーマ
文字列 ​
{"type": "string"}
"Platinum"
番号 ​
{"type": "number"}
12925.49
Long
{
  "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 タイプがその他の一般的なシリアル化形式にどのようにマッピングされるかを説明します。

NOTE
以下の表に示す標準の XDM タイプの中に、Map タイプも含まれています。 マップは、データが特定の値にマッピングされるキーとして表される場合、またはキーが静的スキーマに合理的に含まれず、データ値として扱われる必要がある場合に、標準スキーマで使用されます。
多くの標準 XDM コンポーネントはマップタイプを使用し、必要に応じて カスタムマップフィールドを定義することもできます。 次の表に含まれるマップタイプは、既存のデータが以下に示すいずれかの形式に現在保存されている場合、そのデータを XDM にマッピングする方法を決定する際に役立ちます。

Parquet、Spark SQL および Java parquet

XDM タイプ
PARQUET
Spark SQL
Java
文字列
型:BYTE_ARRAY
注釈:UTF8
StringType
java.lang.String
​ 数値 ​
型:DOUBLE
LongType
java.lang.Double
Long
型: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

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

Scala、.NET、CosmosDB scala

XDM タイプ
Scala
.NET
CosmosDB
文字列
String
System.String
String
​ 数値 ​
Double
System.Double
Number
Long
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
(N/A)
object

MongoDB、Aerospike、Protobuf 2 mongo

XDM タイプ
MongoDB
Aerospike
Protobuf 2
文字列
string
String
string
​ 数値 ​
double
Double
double
Long
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 でのカスタムフィールドの定義に関するガイドを参照してください。

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