XDM フィールドタイプ制約

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

はじめに

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

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

ベース構造と例 basic-types

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

NOTE
Experience Platform APIのJSON スキーマおよびその他の基盤テクノロジーについて詳しくは、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,
  「最小」: -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では、形式とオプションの制約を使用してカスタムフィールドを定義できます。 詳しくは、Schema Registry APIでのカスタムフィールドの定義に関するガイドを参照してください。

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