I XDM-scheman (Experience Data Model) begränsar fälttypen vilken typ av data som fältet kan innehålla. Det här dokumentet innehåller en översikt över varje huvudfälttyp, inklusive andra serialiseringsformat som de kan mappas till och hur du definierar egna fälttyper i API för att tillämpa olika begränsningar.
Innan du använder den här handboken bör du granska grunderna för schemakomposition för en introduktion till XDM-scheman, klasser och schemafältgrupper.
Om du planerar att definiera egna fälttyper i API:t rekommenderar vi att du börjar med Utvecklarhandbok för schemaregister om du vill lära dig hur du skapar fältgrupper och datatyper som du vill inkludera dina anpassade fält i. Om du använder användargränssnittet för Experience Platform för att skapa dina scheman kan du läsa guiden på definiera fält i användargränssnittet om du vill lära dig hur du implementerar begränsningar för fält som du definierar i anpassade fältgrupper och datatyper.
XDM byggs ovanpå JSON-schema och därför ärver XDM-fält en liknande syntax när de definierar sin typ. Att förstå hur olika fälttyper visas i JSON-schema kan hjälpa till att indikera basbegränsningarna för varje typ.
Se Grundläggande API-guide om du vill ha mer information om JSON-schema och andra underliggande tekniker i plattforms-API:er.
I följande tabell visas hur varje XDM-typ representeras i JSON-schema, tillsammans med ett exempelvärde som överensstämmer med typen:
XDM-typ | JSON-schema | Exempel |
---|---|---|
String |
{"type": "string"} |
"Platinum" |
Number |
{"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 |
*Alla datumformaterade strängar måste följa ISO 8601-standarden (RFC 3339, avsnitt 5.6).
Avsnitten nedan beskriver hur varje XDM-typ mappar till andra vanliga serialiseringsformat:
Bland de standardtyper av XDM som anges i tabellerna nedan finns Map typ ingår också. Kartor används i standardscheman när data representeras som nycklar som mappar till vissa värden, eller där nycklar inte rimligen kan inkluderas i ett statiskt schema och måste behandlas som datavärden.
Många standardkomponenter för XDM använder karttyper, och du kan också definiera anpassade kartfält vid behov. Karttypen tas med i tabellerna nedan för att hjälpa dig att bestämma hur befintliga data ska mappas till XDM om de för närvarande lagras i något av formaten som listas nedan.
XDM-typ | Parquet | Spark SQL | Java |
---|---|---|---|
String | Typ: BYTE_ARRAY Anteckning: UTF8 |
StringType |
java.lang.String |
Number | Typ: DOUBLE |
LongType |
java.lang.Double |
Long | Typ: INT64 |
LongType |
java.lang.Long |
Integer | Typ: INT32 Anteckning: INT_32 |
IntegerType |
java.lang.Integer |
Short | Typ: INT32 Anteckning: INT_16 |
ShortType |
java.lang.Short |
Byte | Typ: INT32 Anteckning: INT_8 |
ByteType |
java.lang.Short |
Date | Typ: INT32 Anteckning: DATE |
DateType |
java.util.Date |
DateTime | Typ: INT64 Anteckning: TIMESTAMP_MILLIS |
TimestampType |
java.util.Date |
Boolean | Typ: BOOLEAN |
BooleanType |
java.lang.Boolean |
Map | MAP -annoterad grupp( <key-type> måste vara STRING ) |
MapType ( keyType måste vara StringType ) |
java.util.Map |
XDM-typ | Scala | .NET | CosmosDB |
---|---|---|---|
String | String |
System.String |
String |
Number | Double |
System.Double |
Number |
Long | Long |
System.Int64 |
Number |
Integer | Int |
System.Int32 |
Number |
Short | Short |
System.Int16 |
Number |
Byte | Byte |
System.SByte |
Number |
Date | java.util.Date |
System.DateTime |
String |
DateTime | java.util.Date |
System.DateTime |
String |
Boolean | Boolean |
System.Boolean |
Boolean |
Map | Map |
(Ej tillämpligt) | object |
XDM-typ | MongoDB | Aerospike | Protobuf 2 |
---|---|---|---|
String | string |
String |
string |
Number | double |
Double |
double |
Long | long |
Integer |
int64 |
Integer | int |
Integer |
int32 |
Short | int |
Integer |
int32 |
Byte | int |
Integer |
int32 |
Date | date |
Integer (Unix millisekunder) |
int64 (Unix millisekunder) |
DateTime | timestamp |
Integer (Unix millisekunder) |
int64 (Unix millisekunder) |
Boolean | bool |
Integer (0/1 binärt) |
bool |
Map | object |
map |
map<key_type, value_type> |
Med API:t för schemaregister kan du definiera anpassade fält med hjälp av format och valfria begränsningar. Se guiden på definiera anpassade fält i API:t för schemaregister för mer information.