Step Configuration¶
This plugin provides two steps
that can be used in conjunction with the plugin’s jobs.
SetTimeZone¶
amazon_advertising.io.steps#SetTimeZone
is used to set the timezone to be used with
the currently running job. It is typically run as the second step in a job, immediately
following MaxTimestamp
. There are no parameters.
Explanation¶
AAAPI allows each profile to specify the timezone to use with its data. This means that
it is possible for each profile to have a different timezone than the other profiles and
a different timezone than used by the Mitto system. Timzone information for each
profile is stored in the amazon_advertising.profiles
table by the Amazon Advertising:
Profiles
job.
When exectued in a job, SetTimeZone
determines the timzone offset necessary to convert
Mitto time to the profile’s timezone. This offset is used when requesting reports for a
profile.
MaxTimestamp¶
amazon_advertising.io.steps#MaxTimestamp
is a modified version of
mitto.iov2.steps#MaxTimestamp
. This modified version accepts an optional params
parameter that specifies key/value pairs to be used as a filter when selecting the max
timestamp.
Explanation¶
By default, the plugin uses a per-entity
data model, although it also supports a
unified
data model. Refer to Data Model for more information.
Under the unified model, there is a single amazon_advertising
schema with tables
containing data for all profiles. When an upsert job is run, it is necessary to
determine the max timestamp for the job’s profile id. This accomplished by selecting
only timestamps that meet the filter criteria.
As an example, look at the first step of a “Sponsored Brand Report: Ad Groups” job:
{
"use": "amazon_advertising.io#MaxTimestamp",
"column": "run_date",
"params": {"profile_id": "460027049156373"},
},
When executed, it will select the maximum value from the run_date
column from rows with
a profile_id
matching "460027049156373"
. Thus, it selects the maximum run date for
the job’s profile id.
This MaxTimestamp
exists to support a unified data model, but it is used in all upsert
jobs, even those for a per-entity data model, to minimize differences between jobs.