Я новичок в PDI и все еще узнаю об этом. Я пытаюсь создать преобразование, которое будет читать весь CSV-файл из одной папки, проверять правильность данных файла, то есть нет строк с отсутствующим/ошибочным/неправильным форматом, а затем сохранять его в базе данных.
Что я пробовал:
- Используйте
Text File Input
для доступа к CSV-файлу через FTP с помощью Apache Common VFS. - Подтвердите и создайте условие для проверки данных (проверка имени файла, поля, если оно существует) в CSV с помощью
Filter Row
- Вывод в таблицу PostgreSQL с использованием
Syncronize After Merge
. Я использовал это, потому что я также соединяю данные CSV с данными из другой таблицы.
Результат моего второго шага не то, что я хочу. В настоящее время он проверяет после того, как все csv прочитаны, и передает все данные на следующий шаг, но я хочу проверить при чтении данных, чтобы он передавал только правильные данные на следующий шаг. Как я могу это сделать? любое предложение? (нужен мозговой штурм)
И если это невозможно реализовать в PDI, тогда можно прочитать все данные и передать их на следующий шаг, но затем они снова будут проверены перед вставкой данных.
Filter Row
работает построчно, оставляя в потоке только строки, соответствующие условию. Кажется, вам нужно глобальное условие, принимая или отклоняя весь файл на основе некоторого условия. В любом случае, если это условие «отсутствует/ошибка/неправильный формат?», вам следует прочитать весь файл, прежде чем принимать решение. Просьба уточнить. - person AlainD   schedule 18.07.2018