This topic explains how DataWorks handles these transitions for workspaces in regions that observe DST.
Background information
DataWorks ensures that nodes run correctly on the days when daylight saving time starts and ends. Take an hourly node in a region that observes DST as an example. The handling logic on transition days is as follows:
- When DST starts (spring forward):
- Number of instances: DST starts at
02:00, when the clock moves forward one hour from02:00to03:00. Because the 2:00 AM hour is skipped, DataWorks does not generate an instance for this hour. As a result, an hourly node produces only 23 instances on this day. - Instance scheduled time: Due to the time shift when DST starts, the scheduled run time for some nodes is adjusted. For example, the scheduled time for the fourth instance of an hourly node, which would normally be
04:00, changes to05:00.
Important- For daily, weekly, or monthly nodes, if the scheduled run time falls within the skipped time window on the day DST starts, the node does not run. Instead, its instance is set to dry-run.
- On this day, subtracting 10 minutes from
03:00results in01:50.
- Number of instances: DST starts at
- When DST ends (fall back):
Number of instances: An hourly node produces 24 instances. Although the system generates two instances scheduled for02:00, it only keeps the instance for the second occurrence of02:00.Important Due to the repeated hour, subtracting 10 minutes from the second02:00results in02:50.
Limitations
Daylight saving time transitions affect only nodes in regions where DST is observed.
Impacts when DST starts
Impact 1: Instance generation
- Scenario 1: Impact on hourly and minute-based nodesTake an hourly node as an example. If an hourly node is configured with the scheduling cycle described below, DataWorks generates one instance per hour, for a total of 24 instances on a typical day. On the day DST starts, only 23 instances are generated because the instance for
02:00is skipped.Example parameters: instance generation mode is set to Generate on the next day (T+1), scheduling type is auto triggered, scheduling time zone is America/New_York, the scheduling cycle is Hour with a start time of 00:00, an end time of 23:59, and an interval of 1 hour.Note DST starts at02:00. The clock moves forward one hour from02:00to03:00, so no instance is generated at02:00. - Scenario 2: Impact on daily nodesFor a daily node, DataWorks still generates one instance on the day DST starts. However, whether the node runs normally depends on its scheduled time.
- If the scheduled time of the node falls within the
02:00–03:00window, the instance is set to Dry Run. - If the scheduled time is outside the
02:00–03:00window, the node runs normally.
02:00, the corresponding cron expression is00 00 02 * * ?. - If the scheduled time of the node falls within the
Impact 2: Parameter substitution
- Scenario 1: If a node is scheduled for
03:00and uses the scheduling parameter$[hh24-1/24], the parameter normally resolves to02:00. When DST starts, it resolves to01:00. - Scenario 2: If a node is scheduled for
02:00and uses the scheduling parameter$[hh24-1/24], the parameter normally resolves to01:00. When DST starts, it still resolves to01:00. If this is a daily node, the instance is set to Dry Run.
Impacts when DST ends
Impact 1: Instance generation
For an hourly node, the day DST ends is 25 hours long and includes two occurrences of the 02:00 hour. However, DataWorks generates only 24 instances for the node because it keeps only the instance for the second occurrence of 02:00.
Impact 2: Parameter substitution
If a node uses scheduling parameters that are calculated based on the instance's scheduled time, the 25-hour day can cause the values to differ from a normal day. The following are specific scenarios:
- Scenario 1: If a node is scheduled for
03:00and uses the scheduling parameter$[hh24-2/24], the parameter normally resolves to01:00. When DST ends, it resolves to02:00. - Scenario 2: If a node is scheduled for
02:00and uses the scheduling parameter$[hh24-1/24], the parameter normally resolves to01:00. When DST ends, it resolves to02:00.