2016-07-31 11 views
2

Ich möchte einen AWS-Datenpipeline-Job stündlich planen. Ich würde gerne stündlich Partition auf S3 erstellen. Etwas wie:Planung von AWS-Datenpipelines mit Ausdrücken und Datumsfunktionen

s3://my-bucket/2016/07/19/09/ 
s3://my-bucket/2016/07/19/10/ 
s3://my-bucket/2016/07/19/11/ 

Ich benutze Ausdrücke für meine EMRActivity dafür:

s3://my-bucket/#{year(minusHours(@scheduledStartTime,1))}/#{month(minusHours(@scheduledStartTime,1))}/#{day(minusHours(@scheduledStartTime,1))}/#{hour(minusHours(@scheduledStartTime,1))} 

jedoch Stunde und Monat Funktionen geben Sie mir Daten wie 7 für Juli statt 07, und 3 für die dritte Stunde statt 03. würde Ich mag Stunden, Monate und Stunden erhalten und mit 0 angehängt (wenn erforderlich)

http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-pipeline-reference-functions-datetime.html

Antwort

3

Sie können das Format Funktion Stunden erhalten/Monate in dem von Ihnen gewünschten Format.

#{format(myDateTime,'YYYY-MM-dd hh:mm:ss')} 

Siehe für weitere Informationen zum Link: http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-pipeline-reference-functions-datetime.html

In Ihrem Fall angezeigt Stunde mit 0 angehängt dies sollte funktionieren:

#{format(minusHours(@scheduledStartTime,1), 'hh')} 

können Sie ersetzen 'hh' mit ‚MM 'Monate mit 0 angehängt bekommen.

+0

Es sollte "HH" aber nicht "hh" sein. Wie auch immer, ich wähle diese Antwort. – ezamur