4

Я использую AWS Data Pipeline для сохранения текстового файла в своем ведре S3 из RDS. Я хотел бы, чтобы имя файла, чтобы иметь дату и час в имени файла, как:переменная времени datetime aws данных

myfile-YYYYMMDD-HH.txt 
myfile-20140813-12.txt 

Я уточнял свою S3DataNode FilePath как:

s3://mybucketname/out/myfile-#{format(myDateTime,'YYYY-MM-dd-HH')}.txt 

Когда я пытаюсь сохранить трубопровод я получаю следующее сообщение об ошибке:

ERROR: Unable to resolve myDateTime for object:DataNodeId_xOQxz 

Согласно AWS Data Pipeline documentation for date and time functions это правильный синтаксис для использования формат функция.

Когда я сохраняю конвейер, используя «жестко закодированные» дату и время, я не получаю эту ошибку, и мой файл находится в моем ведре и папке S3, как ожидалось.

Мое мышление является то, что мне нужно, чтобы определить «myDateTime» где-то или использовать NOW()

Может кто-нибудь сказать мне, как установить «myDateTime» к текущему времени (например, сейчас) или дать временное решение, так что я может форматировать текущее время, которое будет использоваться в моем FilePath?

ответ

4

Мне не известно о точном эквиваленте NOW() в Data Pipeline. Я пробовал использовать makeDate без аргументов (просто для удовольствия), чтобы убедиться, что это сработало .. это не так.

Ближайшие переменные runtimeStartTime, actualStartTime, reportProgressTime.

http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-s3datanode.html

Следующая например, для. должно сработать. s3: // mybucketname/из/myfile- # {формат (@ scheduledStartTime, 'YYYY-MM-DD-НН')} .txt

+1

+1 Спасибо. Да, используя ** @ scheduleStartTime ** вместо «myDateTime» сделал трюк.Я также просто прочитал, что _a [определяемое пользователем поле] (https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-writing-pipeline-definition.html#dp-userdefined-fields) должно иметь имя с префиксом «my» во всех строчных буквах, за которым следует заглавная буква или символ подчеркивания. Я также нашел другие переменные/[объекты для CopyActivity] (http://docs.aws.amazon.com/ datapipeline/latest/DeveloperGuide/dp-object-copyactivity.html) – davedi

+0

и как вычесть дату здесь в этом формате, потому что я не могу этого сделать –

1

Просто для удовольствия, вот еще некоторая информация о Parameters.

В конце вашего трубопровода Json (нажмите List Pipelines, выберите в один, нажмите Edit Pipeline, затем нажмите Export), вам нужно добавить Parameters и/или Values объекта.

Я использую myStartDate для процессов обратной засыпки, которые вы можете манипулировать, когда они передаются для специальных ходов. Вы можете указать это статическое значение по умолчанию, но не можете установить его в динамическое значение, поэтому оно ограничено для регулярных задач расписания. В режиме реального времени/запланированных дат вам необходимо использовать @scheduledStartTime и т. Д., Как было предложено. Ниже приведен пример настройки Parameters или Values. Оба отображаются в Parameters в пользовательском интерфейсе. Эти значения могут использоваться через ваши операции с конвейером (оболочка, улей и т. Д.) С помощью нотации #{myVariableToUse}.

"parameters": [ 
{ 
    "helpText": "Put help text here", 
    "watermark": "This shows if no default or value set", 
    "description": "Label/Desc", 
    "id": "myVariableToUse", 
    "type": "string" 
} 
] 

И для значений:

"values": { 
    "myS3OutLocation": "s3://some-bucket/path", 
    "myThreshold": "30000", 
} 

Вы не можете добавлять их непосредственно в пользовательском интерфейсе (пока), но как только они там вы можете изменить и сохранить значение.

 Смежные вопросы

  • Нет связанных вопросов^_^