Restricciones de tipo de campo XDM
En esquemas XDM (Experience Data Model), el tipo de campo restringe el tipo de datos que puede contener el campo. Este documento proporciona información general de cada tipo de campo principal, incluidos los demás formatos de serialización a los que se pueden asignar y cómo definir sus propios tipos de campo en la API para aplicar diferentes restricciones.
Introducción
Antes de usar esta guía, revise los conceptos básicos de la composición de esquemas para obtener una introducción a los esquemas XDM, las clases y los grupos de campos de esquema.
Si planea definir sus propios tipos de campo en la API, se recomienda comenzar con la Guía para desarrolladores de Schema Registry para aprender a crear grupos de campos y tipos de datos para incluir sus campos personalizados en. Si utiliza la interfaz de usuario del Experience Platform para crear los esquemas, consulte la guía sobre definición de campos en la interfaz de usuario para obtener información sobre cómo implementar restricciones en campos que defina en grupos de campos personalizados y tipos de datos.
Estructura base y ejemplos basic-types
XDM se basa en el esquema JSON y, por lo tanto, los campos XDM heredan una sintaxis similar al definir su tipo. Comprender cómo se representan los distintos tipos de campo en el esquema JSON puede ayudar a indicar las restricciones base de cada tipo. Los nombres de los campos personalizados no distinguen entre mayúsculas y minúsculas y deben tener nombres diferentes en el mismo nivel del esquema.
En la siguiente tabla se describe cómo se representa cada tipo XDM en el esquema JSON, junto con un valor de ejemplo que se ajusta al tipo:
{"type": "string"}
"Platinum"
{"type": "number"}
12925.49
{
"tipo": "entero",
"maximum": 9007199254740991,
"mínimo": -9007199254740991
}
1478108935
{
"tipo": "entero",
"maximum": 2147483648,
"mínimo": -2147483648
}
24906290
{
"tipo": "entero",
"maximum": 32768,
"mínimo": -32768
}
15781
{
"tipo": "entero",
"máximo": 128,
mínimo: -128
}
90
{
"type": "string",
"format": "date"
}
"2019-05-15"
{
"type": "string",
"format": "date-time"
}
"2019-05-15T20:20:39+00:00"
{"type": "string"}
true
*Todas las cadenas con formato de fecha deben cumplir con el estándar ISO 8601 (RFC 3339, sección 5.6).
Asignación de tipos XDM a otros formatos
Las secciones siguientes describen cómo cada tipo XDM se asigna a otros formatos de serialización comunes:
Parquet, Spark SQL y Java parquet
BYTE_ARRAY
Anotación:
UTF8
StringType
java.lang.String
DOUBLE
LongType
java.lang.Double
INT64
LongType
java.lang.Long
INT32
Anotación:
INT_32
IntegerType
java.lang.Integer
INT32
Anotación:
INT_16
ShortType
java.lang.Short
INT32
Anotación:
INT_8
ByteType
java.lang.Short
INT32
Anotación:
DATE
DateType
java.util.Date
INT64
Anotación:
TIMESTAMP_MILLIS
TimestampType
java.util.Date
BOOLEAN
BooleanType
java.lang.Boolean
MAP
: el grupoanotado (
<key-type>
debe ser STRING
)MapType
(
keyType
debe ser StringType
)java.util.Map
Scala, .NET y 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 y Protobuf 2 mongo
string
String
string
double
Double
double
long
Integer
int64
int
Integer
int32
int
Integer
int32
int
Integer
int32
date
Integer
(milisegundos de Unix)
int64
(milisegundos de Unix)
timestamp
Integer
(milisegundos de Unix)
int64
(milisegundos de Unix)
bool
Integer
(binario 0/1)
bool
object
map
map<key_type, value_type>
Definición de tipos de campo XDM en la API define-fields
La API de Registro de esquemas permite definir campos personalizados mediante el uso de formatos y restricciones opcionales. Consulte la guía definición de campos personalizados en la API del Registro de esquemas para obtener más información.