You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@oozie.apache.org by "Robert Kanter (JIRA)" <ji...@apache.org> on 2012/11/07 02:48:11 UTC
[jira] [Updated] (OOZIE-1028) Add EL function to allow date ranges
to be used for dataset ranges
[ https://issues.apache.org/jira/browse/OOZIE-1028?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Robert Kanter updated OOZIE-1028:
---------------------------------
Attachment: OOZIE-1028.patch
In the 3rd patch, I reformatted the twiki changes to not be longer than 132 characters except for the table and list, which I cannot because of twiki restrictions (so test-patch will still complain about this).
I also fixed the example.
I discussed with Alejandro about the startCal and endCal being null. For this JIRA, we're going to be consistent with how the coord:current(int n) EL function works, so I didn't change anything from the previous patch. It looks like the coord:current(int n) implementation might not be doing the correct thing in certain cases, but I'll make a new JIRA for that.
> Add EL function to allow date ranges to be used for dataset ranges
> ------------------------------------------------------------------
>
> Key: OOZIE-1028
> URL: https://issues.apache.org/jira/browse/OOZIE-1028
> Project: Oozie
> Issue Type: New Feature
> Components: coordinator
> Affects Versions: trunk
> Reporter: Robert Kanter
> Assignee: Robert Kanter
> Fix For: trunk
>
> Attachments: OOZIE-1028.patch, OOZIE-1028.patch, OOZIE-1028.patch
>
>
> Dataset ranges are currently specified with EL functions such as {{${coord:current(int n)\}}}, which is basically returns the nominal datetime for the nth dataset instance relative to the coordinator action creation (materialization) time (in other words, it specifies a multiple of the dataset frequency). It would be useful to have a new function that lets users specify a date range offset instead of a frequency range offset.
> A new function, {{${coord:offset(int n, String timeUnit)\}}}, would be similar to the {{${coord:current(int n)\}}} function, except that the offset would be based on the TimeUnit (i.e. "MINUTE", "HOUR", "DAY", "MONTH", or "YEAR") instead of the frequency.
> For example, if the frequency was 1 day, then the following would all be equivalent:
> {{${coord:current(1)\}}}
> {{${coord:offset(1, "DAY")\}}}
> {{${coord:offset(24, "HOUR")\}}}
> {{${coord:offset(1440, "MINUTE")\}}}
> When specifying dataset instances, the resolved value of {{${coord:offset(int n, String timeUnit)\}}} would have to line up with an offset of a multiple of the frequency when used in an {{<instance>}} element.
> However, when used in {{<start-instance>}} and {{<end-instance>}}, the function would automatically resolve the range of instances to match the offset of a multiple of the frequency
> that would fall between the {{<start-instance>}} and {{<end-instance>}}. For example, if the frequency is 1 hour and the {{<start-instance>}} is {{${coord:offset(-90, "MINUTE")\}}} (-1.5 hours).
> then the {{<start-instance>}} would be effectively equivalent to {{${coord:offset(-60, "MINUTE")\}}} as we are dealing with a range.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira