Em esquemas do Experience Data Model (XDM), o tipo de um campo restringe o tipo de dados que o campo pode conter. Este documento fornece uma visão geral de cada tipo de campo principal, incluindo os outros formatos de serialização aos quais eles podem ser mapeados e como definir seus próprios tipos de campo na API para aplicar restrições diferentes.
Antes de usar este guia, revise o noções básicas da composição do esquema para obter uma introdução a esquemas XDM, classes e grupos de campos de esquema.
Se você planeja definir seus próprios tipos de campo na API, é altamente recomendável começar com a variável Guia do desenvolvedor do Registro de esquema para saber como criar grupos de campos e tipos de dados para incluir seus campos personalizados no. Se você estiver usando a interface do Experience Platform para criar seus esquemas, consulte o manual em definição de campos na interface para saber como implementar restrições em campos definidos em grupos de campos personalizados e tipos de dados.
O XDM é criado sobre o Esquema JSON e, portanto, os campos XDM herdam uma sintaxe semelhante ao definir seu tipo. Entender como os diferentes tipos de campo são representados no Esquema JSON pode ajudar a indicar as restrições básicas de cada tipo.
Consulte a Guia de fundamentos de API para obter mais informações sobre o Esquema JSON e outras tecnologias subjacentes nas APIs da plataforma.
A tabela a seguir descreve como cada tipo de XDM é representado no Esquema JSON, juntamente com um valor de exemplo que está em conformidade com o tipo:
Tipo XDM | Esquema JSON | Exemplo |
---|---|---|
Cadeia de Caracteres |
{"type": "string"} |
"Platinum" |
Duplo |
{"type": "number"} |
12925.49 |
Long |
{ "type": "integer", "maximum": 9007199254740991, "minimum": -9007199254740991 } |
1478108935 |
Inteiro |
{ "type": "integer", "maximum": 2147483648, "minimum": -2147483648 } |
24906290 |
Short |
{ "type": "integer", "maximum": 32768, "minimum": -32768 } |
15781 |
Byte |
{ "type": "integer", "maximum": 128, "minimum": -128 } |
90 |
Data* |
{ "type": "string", "format": "date" } |
"2019-05-15" |
DateTime* |
{ "type": "string", "format": "date-time" } |
"2019-05-15T20:20:39+00:00" |
Booleano |
{"type": "string"} |
true |
*Todas as strings formatadas por data devem estar em conformidade com o padrão ISO 8601 (RFC 3339, seção 5.6).
As seções abaixo descrevem como cada tipo de XDM é mapeado para outros formatos de serialização comuns:
Entre os tipos XDM padrão listados nas tabelas abaixo, a variável Mapa O tipo de também está incluído. Os mapas são usados em esquemas padrão quando os dados são representados como chaves que mapeiam para determinados valores ou quando as chaves não podem ser incluídas razoavelmente em um esquema estático e devem ser tratadas como valores de dados.
Muitos componentes XDM padrão usam tipos de mapa e você também pode definir campos de mapa personalizados se desejado. A inclusão do tipo de mapa nas tabelas abaixo tem como objetivo ajudar você a determinar como mapear os dados existentes para o XDM se eles estiverem armazenados em qualquer um dos formatos listados abaixo.
Tipo XDM | Parquet | Spark SQL | Java |
---|---|---|---|
String | Tipo: BYTE_ARRAY Anotação: UTF8 |
StringType |
java.lang.String |
Duplo | Tipo: DOUBLE |
LongType |
java.lang.Double |
Longo | Tipo: INT64 |
LongType |
java.lang.Long |
Número inteiro | Tipo: INT32 Anotação: INT_32 |
IntegerType |
java.lang.Integer |
Short | Tipo: INT32 Anotação: INT_16 |
ShortType |
java.lang.Short |
Byte | Tipo: INT32 Anotação: INT_8 |
ByteType |
java.lang.Short |
Data | Tipo: INT32 Anotação: DATE |
DateType |
java.util.Date |
DateTime | Tipo: INT64 Anotação: TIMESTAMP_MILLIS |
TimestampType |
java.util.Date |
Booleano | Tipo: BOOLEAN |
BooleanType |
java.lang.Boolean |
Mapa | MAP grupo anotado( <key-type> deve ser STRING ) |
MapType ( keyType deve ser StringType ) |
java.util.Map |
Tipo XDM | Scala | .NET | CosmosDB |
---|---|---|---|
String | String |
System.String |
String |
Duplo | Double |
System.Double |
Number |
Longo | Long |
System.Int64 |
Number |
Número inteiro | Int |
System.Int32 |
Number |
Short | Short |
System.Int16 |
Number |
Byte | Byte |
System.SByte |
Number |
Data | java.util.Date |
System.DateTime |
String |
DateTime | java.util.Date |
System.DateTime |
String |
Booleano | Boolean |
System.Boolean |
Boolean |
Mapa | Map |
(N/D) | object |
Tipo XDM | MongoDB | Aerospike | Protobuf 2 |
---|---|---|---|
String | string |
String |
string |
Duplo | double |
Double |
double |
Longo | long |
Integer |
int64 |
Número inteiro | int |
Integer |
int32 |
Short | int |
Integer |
int32 |
Byte | int |
Integer |
int32 |
Data | date |
Integer (milissegundos Unix) |
int64 (milissegundos Unix) |
DateTime | timestamp |
Integer (milissegundos Unix) |
int64 (milissegundos Unix) |
Booleano | bool |
Integer (0/1 binário) |
bool |
Mapa | object |
map |
map<key_type, value_type> |
A API do Registro de esquema permite definir campos personalizados por meio do uso de formatos e restrições opcionais. Consulte o guia sobre definição de campos personalizados na API do registro de esquema para obter mais informações.