Negli schemi Experience Data Model (XDM), il tipo di un campo limita il tipo di dati che il campo può contenere. Questo documento fornisce una panoramica di ogni tipo di campo principale, inclusi gli altri formati di serializzazione a cui possono essere mappati e come definire tipi di campo personalizzati nell’API per applicare vincoli diversi.
Prima di utilizzare questa guida, consultare nozioni di base sulla composizione dello schema per un’introduzione a schemi, classi e gruppi di campi di schema XDM.
Se prevedi di definire tipi di campo personalizzati nell’API, si consiglia vivamente di iniziare con Guida per gli sviluppatori del registro dello schema per scoprire come creare gruppi di campi e tipi di dati per includere i campi personalizzati in. Se utilizzi l’interfaccia utente di Experience Platform per creare gli schemi, consulta la guida su definizione dei campi nell’interfaccia utente per scoprire come implementare vincoli sui campi definiti all’interno di gruppi di campi e tipi di dati personalizzati.
XDM è basato su schema JSON e pertanto i campi XDM ereditano una sintassi simile durante la definizione del relativo tipo. Informazioni sulla modalità di rappresentazione dei diversi tipi di campo nello schema JSON possono essere utili per indicare i vincoli di base di ciascun tipo.
Consulta la Guida di base sulle API per ulteriori informazioni sullo schema JSON e su altre tecnologie sottostanti nelle API di Platform.
La tabella seguente illustra come ogni tipo XDM viene rappresentato nello schema JSON, insieme a un valore di esempio conforme al tipo:
Tipo XDM | Schema JSON | Esempio |
---|---|---|
Stringa |
{"type": "string"} |
"Platinum" |
Doppio |
{"type": "number"} |
12925.49 |
Long |
{ "type": "integer", "maximum": 9007199254740991, "minimum": -9007199254740991 } |
1478108935 |
Integer |
{ "type": "integer", "maximum": 2147483648, "minimum": -2147483648 } |
24906290 |
Short |
{ "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" |
Boolean |
{"type": "string"} |
true |
*Tutte le stringhe in formato data devono essere conformi allo standard ISO 8601 (RFC 3339, paragrafo 5.6).
Le sezioni seguenti descrivono come ogni tipo XDM viene mappato su altri formati di serializzazione comuni:
Tra i tipi XDM standard elencati nelle tabelle seguenti, il Mappa è incluso anche il tipo. Le mappe vengono utilizzate negli schemi standard quando i dati sono rappresentati come chiavi che si associano a determinati valori, o quando le chiavi non possono essere ragionevolmente incluse in uno schema statico e devono essere trattate come valori di dati.
Molti componenti XDM standard utilizzano tipi di mappa e puoi anche definire campi mappa personalizzati se desiderato. L’inclusione del tipo di mappa nelle tabelle seguenti è utile per determinare come mappare i dati esistenti su XDM se sono attualmente memorizzati in uno dei formati elencati di seguito.
Tipo XDM | Parquet | Spark SQL | Java |
---|---|---|---|
Stringa | Tipo: BYTE_ARRAY Annotazione: UTF8 |
StringType |
java.lang.String |
Doppio | Tipo: DOUBLE |
LongType |
java.lang.Double |
Lungo | Tipo: INT64 |
LongType |
java.lang.Long |
Intero | Tipo: INT32 Annotazione: INT_32 |
IntegerType |
java.lang.Integer |
Breve | Tipo: INT32 Annotazione: INT_16 |
ShortType |
java.lang.Short |
Byte | Tipo: INT32 Annotazione: INT_8 |
ByteType |
java.lang.Short |
Data | Tipo: INT32 Annotazione: DATE |
DateType |
java.util.Date |
DateTime | Tipo: INT64 Annotazione: TIMESTAMP_MILLIS |
TimestampType |
java.util.Date |
Booleano | Tipo: BOOLEAN |
BooleanType |
java.lang.Boolean |
Mappa | MAP -gruppo con annotazioni( <key-type> deve essere STRING ) |
MapType ( keyType deve essere StringType ) |
java.util.Map |
Tipo XDM | Scala | .NET | CosmosDB |
---|---|---|---|
Stringa | String |
System.String |
String |
Doppio | Double |
System.Double |
Number |
Lungo | Long |
System.Int64 |
Number |
Intero | Int |
System.Int32 |
Number |
Breve | 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 |
Mappa | Map |
(N/D) | object |
Tipo XDM | MongoDB | Aerospike | Protobuf 2 |
---|---|---|---|
Stringa | string |
String |
string |
Doppio | double |
Double |
double |
Lungo | long |
Integer |
int64 |
Intero | int |
Integer |
int32 |
Breve | int |
Integer |
int32 |
Byte | int |
Integer |
int32 |
Data | date |
Integer (Unix millisecondi) |
int64 (Unix millisecondi) |
DateTime | timestamp |
Integer (Unix millisecondi) |
int64 (Unix millisecondi) |
Booleano | bool |
Integer (0/1 binario) |
bool |
Mappa | object |
map |
map<key_type, value_type> |
L’API Schema Registry consente di definire campi personalizzati tramite l’utilizzo di formati e vincoli facoltativi. Consulta la guida su definizione dei campi personalizzati nell’API Schema Registry per ulteriori informazioni.