Contraintes des types de champs XDM
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.
Commencer
Avant d’utiliser ce guide, consultez les 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 envisagez de définir vos propres types de champs dans l’API, il est vivement recommandé de commencer par le guide de développement du registre des schémas pour apprendre à créer des groupes de champs et des types de données afin d’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 les groupes de champs personnalisés et les types de données.
Structure de base et exemples basic-types
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. La compréhension de la manière dont différents types de champ sont représentés dans le schéma JSON peut aider à indiquer les contraintes de base de chaque type. Les noms de champs personnalisés ne sont pas sensibles à la casse et doivent porter des noms différents au même niveau dans votre schéma.
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": "string"}
"Platinum"
{"type": "number"}
12925.49
{
"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
*Toutes les chaînes au format date doivent être conformes à la norme ISO 8601 (RFC 3339, section 5.6).
Faire correspondre les types XDM à d’autres formats
Les sections ci-dessous décrivent comment chaque type XDM est mappé à d’autres formats de sérialisation courants :
Parquet, Spark SQL et Java parquet
BYTE_ARRAY
Annotation :
UTF8
StringType
java.lang.String
DOUBLE
LongType
java.lang.Double
INT64
LongType
java.lang.Long
INT32
Annotation :
INT_32
IntegerType
java.lang.Integer
INT32
Annotation :
INT_16
ShortType
java.lang.Short
INT32
Annotation :
INT_8
ByteType
java.lang.Short
INT32
Annotation :
DATE
DateType
java.util.Date
INT64
Annotation :
TIMESTAMP_MILLIS
TimestampType
java.util.Date
BOOLEAN
BooleanType
java.lang.Boolean
MAP
-groupe annoté(
<key-type>
doit être STRING
)MapType
(
keyType
doit être StringType
)java.util.Map
Scala, .NET et CosmosDB scala
String
System.String
String
Double
System.Double
Number
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
object
MongoDB, Aerospike et Protobuf 2 mongo
string
String
string
double
Double
double
long
Integer
int64
int
Integer
int32
int
Integer
int32
int
Integer
int32
date
Integer
(millisecondes Unix)
int64
(millisecondes Unix)
timestamp
Integer
(millisecondes Unix)
int64
(millisecondes Unix)
bool
Integer
(binaire 0/1)
bool
object
map
map<key_type, value_type>
Définition des types de champ XDM dans l’API define-fields
L’API Schema Registry vous permet de définir des champs personnalisés à l’aide de formats et de contraintes facultatives. Pour plus d’informations, consultez le guide sur la définition de champs personnalisés dans l’API Schema Registry.