En los esquemas del Modelo de datos de experiencia (XDM), el tipo de campo limita qué tipo de datos puede contener el campo. Este documento proporciona información general sobre cada tipo de campo principal, incluidos los otros 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.
Antes de usar esta guía, revise la conceptos básicos de la composición del esquema 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 encarecidamente que comience con la variable 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 sus esquemas, consulte la guía de definición de campos en la interfaz de usuario para aprender a implementar restricciones en campos definidos dentro de grupos de campos personalizados y tipos de datos.
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 campos en el esquema JSON puede ayudar a indicar las restricciones de base de cada tipo.
Consulte la Guía de fundamentos de API para obtener más información sobre el esquema JSON y otras tecnologías subyacentes en las API de plataforma.
La siguiente tabla describe cómo se representa cada tipo XDM en el esquema JSON, junto con un valor de ejemplo que se ajusta al tipo:
Tipo XDM | Esquema JSON | Ejemplo |
---|---|---|
String |
{"type": "string"} |
"Platinum" |
Doble |
{"type": "número"} |
12925.49 |
Long |
{ "type": "integer", "maximum": 9007199254740991, "mínimo": -9007199254740991 } |
1478108935 |
Integer |
{ "type": "integer", "maximum": 2147483648, "mínimo": -2147483648 } |
24906290 |
Cortocircuito |
{ "type": "integer", "maximum": 32768, "mínimo": -32768 } |
15781 |
Byte |
{ "type": "integer", "maximum": 128, "mínimo": -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": "string"} |
true |
*Todas las cadenas con formato de fecha deben cumplir la norma ISO 8601 (RFC 3339, sección 5.6).
Las secciones siguientes describen cómo cada tipo XDM se asigna a otros formatos de serialización comunes:
Entre los tipos XDM estándar que se enumeran en las tablas siguientes, la variable Mapa también se incluye. Los mapas se utilizan en esquemas estándar cuando los datos se representan como claves que se asignan a determinados valores o cuando las claves no se pueden incluir razonablemente en un esquema estático y deben tratarse como valores de datos.
Los campos de tipo Mapa están reservados para el uso del esquema del sector y del proveedor y, por lo tanto, no se pueden utilizar en los recursos personalizados que defina. La inclusión del tipo de mapa en las tablas siguientes solo pretende ayudarle a determinar cómo asignar los datos existentes a XDM si actualmente se almacenan en cualquiera de los formatos que se enumeran a continuación.
Tipo XDM | Parqué | Spark SQL | Java |
---|---|---|---|
Cadena | Tipo: BYTE_ARRAY Anotación: UTF8 |
StringType |
java.lang.String |
Duplicada | Tipo: DOUBLE |
LongType |
java.lang.Double |
Largo | Tipo: INT64 |
LongType |
java.lang.Long |
Número entero | Tipo: INT32 Anotación: INT_32 |
IntegerType |
java.lang.Integer |
Corto | Tipo: INT32 Anotación: INT_16 |
ShortType |
java.lang.Short |
Byte | Tipo: INT32 Anotación: INT_8 |
ByteType |
java.lang.Short |
Fecha | Tipo: INT32 Anotación: DATE |
DateType |
java.util.Date |
DateTime | Tipo: INT64 Anotación: TIMESTAMP_MILLIS |
TimestampType |
java.util.Date |
Boolean | Tipo: BOOLEAN |
BooleanType |
java.lang.Boolean |
Mapa | MAP -grupo anotado( <key-type> debe STRING ) |
MapType ( keyType debe StringType ) |
java.util.Map |
Tipo XDM | Scala | .NET | CosmosDB |
---|---|---|---|
Cadena | String |
System.String |
String |
Duplicada | Double |
System.Double |
Number |
Largo | Long |
System.Int64 |
Number |
Número entero | Int |
System.Int32 |
Number |
Corto | Short |
System.Int16 |
Number |
Byte | Byte |
System.SByte |
Number |
Fecha | java.util.Date |
System.DateTime |
String |
DateTime | java.util.Date |
System.DateTime |
String |
Booleano | Boolean |
System.Boolean |
Boolean |
Mapa | Map |
(N/A) | object |
Tipo XDM | MongoDB | Aerospike | Protobuf 2 |
---|---|---|---|
Cadena | string |
String |
string |
Duplicada | double |
Double |
double |
Largo | long |
Integer |
int64 |
Número entero | int |
Integer |
int32 |
Corto | int |
Integer |
int32 |
Byte | int |
Integer |
int32 |
Fecha | date |
Integer (milisegundos de Unix) |
int64 (milisegundos de Unix) |
DateTime | timestamp |
Integer (milisegundos de Unix) |
int64 (milisegundos de Unix) |
Booleano | bool |
Integer (0/1 binario) |
bool |
Mapa | object |
map |
map<key_type, value_type> |
La API del Registro de esquemas permite definir campos personalizados mediante el uso de formatos y restricciones opcionales. Consulte la guía de definición de campos personalizados en la API del Registro de esquemas para obtener más información.