About courier groups

A courier group is a list of one (or more) couriers that are run as a group, either ad hoc or as part of an automated schedule. A courier group can be configured to act as a constraint on downstream workflows.

A courier group is typically configured to run automatically on a recurring schedule. Because all couriers within a courier groups run as a unit, all of their dependent tasks must complete before any downstream processes, such as Stitch or database generation, can be started.

Enable duration alerts for workflows.

What a courier group does:

  1. Logically organizes a list of couriers into a group that shares the same schedule and workflow.

  2. Allows for each courier to be assigned schedule variance via wait times and offsets.

  3. Enables both automatic and ad hoc runs of couriers.

  4. Polls each data source associated with a courier in the group to determine if data is ready to be pulled to Amperity.

  5. Ensures that constraints for downstream processes are present in the workflow; all couriers in a courier group must complete their jobs.

What a courier group needs:

  1. One (or more) couriers.

  2. A schedule.

  3. A run type.

  4. Configuration for wait times and offsets to help ensure that all files assigned to the courier group have a time window that is large enough to complete data collection.

The Sources page shows the status of all courier groups, including when they last ran or updated, and its current status.

Schedules

A schedule defines the frequency at which a courier group runs. All couriers in the same courier group run as a unit and all tasks must complete before a downstream process can be started. The schedule is defined using cron.

Cron is a time-based job scheduler that uses cron syntax to automate scheduled jobs to run periodically at fixed times, dates, or intervals.

Cron syntax specifies the fixed time, date, or interval at which cron will run. Each line represents a job, and is defined like this:

┌───────── minute (0 - 59)
│ ┌─────────── hour (0 - 23)
│ │ ┌───────────── day of the month (1 - 31)
│ │ │ ┌────────────── month (1 - 12)
│ │ │ │ ┌─────────────── day of the week (0 - 6) (Sunday to Saturday)
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
* * * * * command to execute

For example, 30 8 * * * represents “run at 8:30 AM every day” and 30 8 * * 0 represents “run at 8:30 AM every Sunday”. Amperity validates your cron syntax and shows you the results. You may also use crontab guru to validate cron syntax.

Amperity uses cron syntax to schedule the time at which a courier group is available for transferring files from a customer data source location to Amperity. A courier group that is scheduled runs automatically. Schedules are in UTC.

Note

Scheduling a courier group is optional. When a courier group is not assigned a schedule, it may be run manually on an ad hoc basis.

A courier group that is scheduled to run on a daily basis will check for files on a daily basis.

A courier group that runs less frequently, such as weekly, bi-weekly, monthly, or quarterly, will (by default) look for files on each day that has passed since the last time the courier group ran.

When a courier group is configured to run less frequently, you can also configure that courier group to only look for files on a specific day.

To use this approach, it is recommended to configure your upstream systems to make their files available to the courier group on a schedule that ensures they will be available to the courier group within a 24-hour window. This window is based on the schedule that is defined for the courier group.

Configure the courier group to run at the end of that 24-hour window, and then enable the Only retrieve files dropped in the past day? option, which forces the courier group to only look for files that were made available within the previous 24 hours.

Tip

Daylight savings time can affect a schedule. Be sure to set the schedule to be stable and not require changes over time. For example: if a schedule is set to 12:30 AM, and then you fall back, the schedule may become 11:30 PM (fall back) or 1:30 AM (spring forward).

Run types

A courier group can be configured for any of the following run types:

Full workflow

A full workflow refreshes domain tables, runs Stitch, refreshes your customer 360 database, and then runs every scheduled orchestration group that is configured to run after this courier group.

Partial workflow

A partial workflow refreshes domain tables, runs Stitch, refreshes your customer 360 database, but does not run any orchestrations.

Ingest only

An ingest-only workflow refreshes domain tables, but does not run Stitch.

Wait times

A wait time is a constraint placed on a courier group that defines an extended time window for data to be made available at the source location.

A courier group typically runs on an automated schedule that expects customer data to be available at the source location within a defined time window. However, in some cases, the customer data may be delayed and isn’t made available within that time window.

Use a wait time to extend the time window for data to be made available. This can help reduce the number of alerts that may be generated for data sources that cannot be picked up by a courier group.

Note

For couriers associated with a filedrop location the default wait time is 0. A polling operation only checks for a data source before declaring success or failure. For couriers associated with REST APIs and data warehouses, the polling operation is always considered to be successful.

A downstream process begins after each load operation is completed for each data source associated with each courier in the courier group and each domain table has been updated.

Offsets

An offset is a constraint placed on a courier group that defines a range of time that is older than the scheduled time, within which a courier group will accept customer data as valid for the current job. Offset times are in UTC.

A courier group offset is typically set to be 24 hours. For example, it’s possible for customer data to be generated with a correct file name and datestamp appended to it, but for that datestamp to represent the previous day because of the customer’s own workflow. An offset ensures that the data at the source location is recognized by the courier as the correct data source.

Warning

An offset affects couriers in a courier group whether or not they run on a schedule. Manually run courier groups will not take their schedule into consideration when determining the date range; only the provided input day(s) to load data from are used as inputs.

Important

The schedule defines the frequency at which the courier group will run.

The timezone is the time at which the courier group will run. This may be set to your local time zone.

Individual courier offsets are calculated using Coordinated Universal Time (UTC), even when a non-UTC time zone is specified for the courier group. This means that when a courier group runs, the current time in UTC is used to calculate the offset.

When a courier group is set to your local time zone, you must consider the offset for your local time zone when defining the offset for each courier in the courier group.

Time zones

A courier group schedule is associated with a time zone. The time zone determines the point at which a courier group’s scheduled start time begins. A time zone should be aligned with the time zone of system from which the data is being pulled.

The time zones that are available for selection in Amperity are modeled after the Google Calendar and are similar to:

(GMT-08:00) Pacific Time
(GMT-07:00) Mountain Time
(GMT-08:00) Central Time
(GMT-09:00) Eastern Time

The time zone that is chosen for an courier group schedule should consider every downstream business processes that requires the data and also the time zone(s) in which the consumers of that data will operate.

Tip

Do not create courier group schedules that may occur during a daylight savings time transition.

For example, an courier group schedule with the cron string of 30 2 * * * and the time zone of “(GMT-08:00) Pacific Time” will run once a day most at 2:30am, except for one day in the spring when it will not run at all and one day in the fall when it will run twice.

This is because American daylight savings time transitions at 2:00 AM, meaning the 2:00 AM hour occurs twice when transitioning out of daylight savings time (Fall) and is skipped altogether when transitioning into daylight savings time (Spring).

How-tos

This section describes tasks related to managing courier groups in Amperity:

Add courier group

Use the Add courier group button to add a courier group to Amperity. A courier group should be created to consolidate individual couriers into a scheduled workflow.

For each courier added to a courier group, define a wait time and an offset. This is used to help determine how much time the courier group should wait for the files associated with a courier to be ready for processing.

In some cases, if the files are not ready, the courier (and courier group) will fail. But in other cases, if the files in the courier are not flagged as required, the courier group may continue processing the rest of the files.

To add a courier group

Step 1.

From the Sources page, click Add courier group. This opens the Edit courier group dialog box. Add a name for the courier group.

Enable duration alerts for workflows.
Step 2.

A schedule defines the frequency at which a courier group runs. All couriers in the same courier group run as a unit and all tasks must complete before a downstream process can be started. The schedule is defined using cron.

Enable duration alerts for workflows.

Use a cron string to define a schedule for the courier group.

Tip

Daylight savings time can affect a schedule. Be sure to set the schedule to be stable and not require changes over time. For example: if a schedule is set to 12:30 AM, and then you fall back, the schedule may become 11:30 PM (fall back) or 1:30 AM (spring forward).

Step 3.

Select a time zone.

Select a time zone.
Step 4.

Optional. Enable duration alerts. Enable the Warn if runtime exceeds checkbox, and then set the number of hours (or minutes) at which, when the configured amount of time is exceeded, a workflow alert will be sent.

Enable duration alerts for workflows.
Step 5.

Define how the courier group workflow will run: a Full workflow, a Partial workflow, or an Ingest only workflow.

Enable duration alerts for workflows.

A full workflow refreshes domain tables, runs Stitch, refreshes your customer 360 database, and then runs every scheduled orchestration group that is configured to run after this courier group.

A partial workflow refreshes domain tables, runs Stitch, refreshes your customer 360 database, but does not run any orchestrations.

An ingest-only workflow refreshes domain tables, but does not run Stitch.

Step 6.

To enable the courier group and have it run on the configured schedule, set Courier group status? to Enabled. (If this setting is set to Disabled the courier group will not run on a schedule, but may be run manually.)

Many courier groups are scheduled to run on a daily basis. Some courier groups are scheduled to run less frequently, such as bi-weekly, monthly, or even quarterly. Use the Only retrieve files dropped in the past day? setting to configure a courier group that runs less frequently to only look for files

Enable duration alerts for workflows.

Tip

A courier group that runs less frequently, such as weekly, bi-weekly, monthly, or quarterly, will (by default) look for files on each day that has passed since the last time the courier group ran.

When a courier group is configured to run less frequently, you can also configure that courier group to only look for files on a specific day.

To use this approach, it is recommended to configure your upstream systems to make their files available to the courier group on a schedule that ensures they will be available to the courier group within a 24-hour window. This window is based on the schedule that is defined for the courier group.

Configure the courier group to run at the end of that 24-hour window, and then enable the Only retrieve files dropped in the past day? option, which forces the courier group to only look for files that were made available within the previous 24 hours.

Step 7.

Add one (or more) couriers to the courier group.

For each courier in the courier group, select a courier, configure the wait time and offset, and then enable workflow alerts.

Enable duration alerts for workflows.

About wait times

A wait time is a constraint placed on a courier group that defines an extended time window for data to be made available at the source location.

A courier group typically runs on an automated schedule that expects customer data to be available at the source location within a defined time window. However, in some cases, the customer data may be delayed and isn’t made available within that time window.

Use a wait time to extend the time window for data to be made available. This can help reduce the number of alerts that may be generated for data sources that cannot be picked up by a courier group.

About offsets for loading data

An offset is a constraint placed on a courier group that defines a range of time that is older than the scheduled time, within which a courier group will accept customer data as valid for the current job. Offset times are in UTC.

A courier group offset is typically set to be 24 hours. For example, it’s possible for customer data to be generated with a correct file name and datestamp appended to it, but for that datestamp to represent the previous day because of the customer’s own workflow. An offset ensures that the data at the source location is recognized by the courier as the correct data source.

Warning

An offset affects couriers in a courier group whether or not they run on a schedule. Manually run courier groups will not take their schedule into consideration when determining the date range; only the provided input day(s) to load data from are used as inputs.

Step 8.

Click Save to save the courier group.

Copy courier group

Use the Copy option to copy a courier group to Amperity.

To delete a courier group

  1. From the Sources page, open the menu for a courier group, and then select Make a copy.

  2. On the Copy courier group window, enter the courier group name into the Courier group name field.

  3. Click Save.

The copied courier group appears in the Courier groups section of the Sources page.

Configure duration alert

Use a duration alert to be notified when a courier group runs for longer than a configured amount of time. A duration alert will be sent to each email address or Slack channel that is configured to receive workflow alerts for courier groups.

To configure a duration alert for a courier group

  1. From the Sources page, open the menu for a courier group, and then select Edit.

  2. Enable the Warn if runtime exceeds checkbox, and then set the number of hours (or minutes) at which, when this amount of time is exceeded, a workflow alert will be sent.

    Enable duration alerts for workflows.
  3. Click Save.

Delete courier group

Use the Delete option to remove a courier group from Amperity. This should be done carefully. Verify that both upstream and downstream processes no longer depend on this courier group prior to deleting it.

Important

This action will not delete couriers that are associated with the courier group.

To delete a courier group

  1. From the Sources page, open the menu for a courier group, and then select Delete.

  2. Click Delete to confirm.

Run courier groups

A courier group may be run in the following ways:

Automatically

A courier group with a schedule (including time zones, wait times, and offsets) will run automatically when the Courier group status? is set to Enabled.

For a date range

A courier group can be configured to load all data for a specific date range.

To run a courier group for a date range

  1. From the Sources page, open the menu for a courier group, and then select Run. The Run courier group page opens.

  2. Select Load data from a specific time period.

  3. Select a start date and an end date.

  4. To prevent downstream processing, select Load only.

  5. Click Run.

For a specific day

A courier group can be configured to load all data for a single day.

To run a courier group for a specific day

  1. From the Sources page, open the menu for a courier group, and then select Run. The Run courier group page opens.

  2. Select Load data from a specific day, and then select a day.

  3. To prevent downstream processing, select Load only.

  4. Click Run.

For all data

A courier group can be configured to load all data that is available. This can be a large amount of data if the courier group is running for the first time.

To run a courier group for-all-data

  1. From the Sources page, open the menu for a courier group, and then select Run. The Run courier group page opens.

  2. Select Load all data.

  3. To prevent downstream processing, select Load only.

  4. Click Run.

Manually

Use the Run option to run the courier group manually.

To run a courier group manually

  1. From the Sources page, open the menu for a courier group, and then select Run. The Run courier group page opens.

  2. Select the time period for which data is loaded and indicate if downstream processes should be started automatically.

  3. Click Run.