Хобрук: Ваш путь к мастерству в программировании

Получить последний/последний файл с FTP на локальный с помощью Talend

Мне нужно создать задание в Talend, которое будет подключаться к One FTP. FTP имеет разные файлы на каждый день с одинаковым префиксом, но с добавлением разных отметок времени (ггггммддччммсс) в имени файла. Пример -

МойФайл20151123142020.xml
МойФайл20151123154748.xml

Мое требование — выбрать самый последний или самый последний файл и скопировать его в свой локальный каталог. Я понимаю, что это может быть достигнуто либо ссылкой на последнюю отметку времени в имени файла, либо ссылкой на время последнего изменения. Я подумал о том, чтобы продолжить позже, и моя работа выглядит следующим образом: введите здесь описание изображения

введите здесь описание изображения

Я не знаю, как действовать дальше и как использовать последнее значение mtime для выбора самого последнего файла.


Ответы:


1

После получения свойств файла нам нужно отсортировать файлы по mtime или по базовому имени, а затем выбрать первое.

  • tSortRow : сортировать по mtime или базовому имени, если они имеют одинаковый шаблон.

  • tSampleRow : "1", чтобы получить первый

  • tFTPGet : маска файла = row3.basename (row3 выходной поток tSampleRow)

введите здесь описание изображения

25.11.2015
  • Я подключил вывод tsampleRow к tlogrow, чтобы убедиться, что он выбирает правильный файл... но он не отображает никакого файла. 26.11.2015
  • @Meen, пожалуйста, запустите свою работу в режиме отладки, чтобы увидеть поток данных, или поставьте tlogrow после tFTPFileProperties. 26.11.2015
  • Я попытался подключить tSamplerow к tftpget, но при нажатии ctrl+space я не могу увидеть выходную строку как базовое имя. Я мог видеть только ((String)globalMap.get(tSampleRow_1_ERROR_MESSAGE)) :( 26.11.2015
  • @Meen просто напишите: row3.basename, где row3 — это строка, соединяющая tSampleRow и TFTPGet. 26.11.2015
  • Я написал row3.basename в маске файла ftpget, но файл не был выбран. Итак, я попытался отобразить его значение с помощью tjava. Я написал - System.out.println((String)globalMap.get(row7.basename)); Но он отображал NULL. Я уже в замешательстве... :( 26.11.2015
  • @Meen Вы не можете использовать tJava для работы со строками, вместо этого используйте tJavaRow или более простой tLogRow, если вы уверены, что tSampleRow выбирает первую строку, тогда row7.basename будет работать! 26.11.2015
  • Новые материалы

    Понимание структуры каталогов Linux
    Структура каталогов Linux — это иерархическая организация файлов и каталогов в системе Linux. Понимание этой структуры важно для всех, кто хочет использовать Linux в качестве основной..

    Введение в SQLite3 в Python
    SQLite3 — это популярная и часто используемая программная библиотека для управления реляционными базами данных. Она портативна, быстра и проста в использовании, что делает ее отличным выбором..

    Как создать ORM в Node.js
    Что такое ОРМ? Проще говоря, система ORM — это метод, в котором вы используете объектно-ориентированную парадигму для создания сопоставления между приложением и базой данных для выполнения..

    Руководство для начинающих по обработке естественного языка .
    Обработка естественного языка — захватывающая и быстро развивающаяся область, которую можно охарактеризовать как сочетание лингвистики, информатики и искусственного интеллекта. Это помогает..

    Защитите свое приложение NodeJS с помощью веб-токенов JSON (JWT): руководство по аутентификации на основе токенов
    В современном мире веб-приложений безопасность важнее, чем когда-либо. Одним из наиболее важных аспектов защиты веб-приложений является аутентификация пользователей. Аутентификация на основе..

    Вводное руководство по аннотациям @PreAuthorize и @PostAuthorize в Spring Security
    Введение Spring Security — это мощная и настраиваемая среда аутентификации и контроля доступа для приложений Java, особенно тех, которые созданы с использованием среды Spring. Этот пост..

    От стартапов к успеху в индустрии наук о данных: 5 важных инструментов
    Постоянно растущие объемы данных сегодня играют решающую роль для каждой компании, которая хочет оставаться на вершине. Это означает использование технологий искусственного интеллекта ,..