Dans les schémas de modèle de données d’expérience (XDM), le type d’un champ restreint le type de données que le champ peut contenir. Ce document fournit un aperçu de chaque type de champ principal, y compris les autres formats de sérialisation auxquels ils peuvent être mappés et comment définir vos propres types de champ dans l’API afin d’appliquer différentes contraintes.
Avant d’utiliser ce guide, veuillez consulter la section principes de base de la composition des schémas pour une introduction aux schémas XDM, aux classes et aux groupes de champs de schéma.
Si vous prévoyez de définir vos propres types de champ dans l’API, il est vivement recommandé de commencer par la variable Guide de développement du registre des schémas pour savoir comment créer des groupes de champs et des types de données pour inclure vos champs personnalisés dans . Si vous utilisez l’interface utilisateur de l’Experience Platform pour créer vos schémas, consultez le guide sur la définition des champs dans l’interface utilisateur pour découvrir comment implémenter des contraintes sur les champs que vous définissez dans des groupes de champs personnalisés et des types de données.
XDM repose sur le schéma JSON. Par conséquent, les champs XDM héritent d’une syntaxe similaire lors de la définition de leur type. Comprendre comment différents types de champ sont représentés dans le schéma JSON peut aider à indiquer les contraintes de base de chaque type.
Voir Guide de base des API pour plus d’informations sur le schéma JSON et d’autres technologies sous-jacentes dans les API Platform.
Le tableau suivant décrit la représentation de chaque type XDM dans le schéma JSON, ainsi qu’un exemple de valeur conforme au type :
Type XDM | Schéma JSON | Exemple |
---|---|---|
String |
{"type": "string"} |
"Platinum" |
Double |
{"type": "number"} |
12925.49 |
Long |
{ "type": "integer", "maximum": 9007199254740991, "minimum" : -9007199254740991 } |
1478108935 |
Integer |
{ "type": "integer", "maximum": 2147483648, "minimum" : -2147483648 } |
24906290 |
Court |
{ "type": "integer", "maximum": 32768, "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" |
Booléen |
{"type": "string"} |
true |
*Toutes les chaînes au format date doivent être conformes à la norme ISO 8601 (RFC 3339, section 5.6).
Les sections ci-dessous décrivent comment chaque type XDM est mappé à d’autres formats de sérialisation courants :
Parmi les types XDM standard répertoriés dans les tableaux ci-dessous, la variable Carte est également inclus. Les cartes sont utilisées dans les schémas standard lorsque les données sont représentées sous la forme de clés qui mappent à certaines valeurs ou lorsque les clés ne peuvent pas raisonnablement être incluses dans un schéma statique et doivent être traitées comme des valeurs de données.
De nombreux composants XDM standard utilisent des types de mappage. Vous pouvez également Définition des champs de mappage personnalisés si vous le souhaitez. L’inclusion du type de mappage dans les tableaux ci-dessous a pour but de vous aider à déterminer comment mapper vos données existantes à XDM si elles sont actuellement stockées dans l’un des formats répertoriés ci-dessous.
Type XDM | Parquet | Spark SQL | Java |
---|---|---|---|
Chaîne | Type : BYTE_ARRAY Annotation : UTF8 |
StringType |
java.lang.String |
Double | Type : DOUBLE |
LongType |
java.lang.Double |
Long | Type : INT64 |
LongType |
java.lang.Long |
Nombre entier | Type : INT32 Annotation : INT_32 |
IntegerType |
java.lang.Integer |
Court | Type : INT32 Annotation : INT_16 |
ShortType |
java.lang.Short |
Octet | Type : INT32 Annotation : INT_8 |
ByteType |
java.lang.Short |
Date | Type : INT32 Annotation : DATE |
DateType |
java.util.Date |
DateTime | Type : INT64 Annotation : TIMESTAMP_MILLIS |
TimestampType |
java.util.Date |
Booléen | Type : BOOLEAN |
BooleanType |
java.lang.Boolean |
Carte | MAP -groupe annoté( <key-type> must STRING ) |
MapType ( keyType must StringType ) |
java.util.Map |
Type XDM | Scala | .NET | CosmosDB |
---|---|---|---|
Chaîne | String |
System.String |
String |
Double | Double |
System.Double |
Number |
Long | Long |
System.Int64 |
Number |
Nombre entier | Int |
System.Int32 |
Number |
Court | Short |
System.Int16 |
Number |
Octet | Byte |
System.SByte |
Number |
Date | java.util.Date |
System.DateTime |
String |
DateTime | java.util.Date |
System.DateTime |
String |
Booléen | Boolean |
System.Boolean |
Boolean |
Carte | Map |
(S/O) | object |
Type XDM | MongoDB | Aerospike | Protobuf 2 |
---|---|---|---|
Chaîne | string |
String |
string |
Double | double |
Double |
double |
Long | long |
Integer |
int64 |
Nombre entier | int |
Integer |
int32 |
Court | int |
Integer |
int32 |
Octet | int |
Integer |
int32 |
Date | date |
Integer (millisecondes Unix) |
int64 (millisecondes Unix) |
DateTime | timestamp |
Integer (millisecondes Unix) |
int64 (millisecondes Unix) |
Booléen | bool |
Integer (binaire 0/1) |
bool |
Carte | object |
map |
map<key_type, value_type> |
L’API Schema Registry vous permet de définir des champs personnalisés à l’aide de formats et de contraintes facultatives. Consultez le guide sur la définition de champs personnalisés dans l’API Schema Registry pour plus d’informations.