What changed from V2

A summary of the differences between the V2 and V3 data shipping models

Version 3 of the Kevel Data Shipping models keeps the same set of log types as V2: no models were added or removed. The changes are focused on how data is transferred, plus a small number of column additions, type corrections, and name normalizations.

1. New: incremental, de-duplicated transfers

The most significant change in V3 is how data is synced to your destination.

  • Every model now includes a dedicated IsLastModified column, holding the timestamp at which the underlying log file was last modified in object storage.
  • Transfers now select data by filtering on IsLastModified, so only files that have changed since your last successful sync are re-read. This makes transfers incremental and removes duplicate rows that could previously appear when a partition was re-scanned.

2. New column (all models)

ColumnTypeDescription
IsLastModifiedtimestampLast-modified timestamp of the source log file. Drives the incremental, de-duplicated transfer behaviour described above.

3. Removed columns

The following V2 columns are not present in the V3 models:

ModelRemoved columns
ClickRelevancyScore
ConversionRelevancyScore, Fraudulent
Custom EventRelevancyScore, Fraudulent
SelectionRevenue
RequestUserGroup, IsHoldout, HoldoutGroups, HoldoutAdId, HoldoutCampaignId, HoldoutAdHoldoutGroups, TargetedSearchTerms, MatchedSearchTerm

Several of these fields remain available on other models. For example, RelevancyScore on Impression and Selection, and the holdout/search-term fields on the event models. On Request, the user's group is available as RequestUserGroup.

4. Column type changes

ColumnV2 typeV3 typeAffected models
DecisionIdxintegerbigintConversion, Selection
KeywordsstringjsonRequest
LocationLatitude, LocationLongitudefloatdoubleImpression, Click, Conversion, Custom Event, Selection
EventMetadatastringjsonCustom Event
Count, DecisionCountintegerbigintDecision
RtbAdIds, BidRequestAdIds, MatchedBidRequestAdIdsstringjsonDecision
ContentKeysstringjsonDecision

5. Column name normalizations

Column names were normalized to consistent PascalCase in V3.

V2 nameV3 nameAffected models
BurninBurnInClick
DtdtClick
RelevanceScoreRelevancyScoreClick, Custom Event
TimezoneIdTimeZoneIdImpression, Click, Custom Event
DataCenterDatacenterCustom Event
LocationSubRegionLocationSubregionCustom Event
user_keyUserKeyUserDB
action, interest, customAction, Interest, CustomUserDB
RtBAdIdsRtbAdIdsDecision
FloorCPCFloorCpcDecision

In addition, the Request model's column names, which used irregular casing in V2, are all normalized in V3:

V2 nameV3 name
DeviceBrandnameDeviceBrandName
DeviceBrowsermajorversionDeviceBrowserMajorVersion
DeviceBrowserminorversionDeviceBrowserMinorVersion
DeviceBrowserrawversionDeviceBrowserRawVersion
DeviceFormfactorDeviceFormFactor
DeviceModelnameDeviceModelName
DeviceOsmajorversionDeviceOsMajorVersion
DeviceOsminorversionDeviceOsMinorVersion
DeviceOsrawversionDeviceOsRawVersion
EnablebotfilteringEnableBotFiltering
EnableuserdbipEnableUserDbIp
GdprcomputedGdprComputed
GdpriseuGdprIsEu
GdprrawGdprRaw
GdprsourceGdprSource
HostnameHostName
IsvaliduaIsValidUa
LocationCountrycodeLocationCountryCode
LocationCountrynameLocationCountryName
LocationDmacodeLocationDmaCode
LocationMetrocodeLocationMetroCode
LocationPostalcodeLocationPostalCode
NetworkidNetworkId
ReferrerurlReferrerUrl