FLAT_FILE_READER

FLAT_FILE_READER icon

FLAT_FILE_READER считывает данные из плоских файлов в формате CSV и TXT с разделителями, фиксированной длины или смешанных текстовых файлов. Удаленные файлы доступны для чтения через протоколы FTP и SFTP.

Порты FLAT_FILE_READER:

Тип портаНомерОбязательныйОписаниеМетаданные
Output0даДля корректных записейЛюбые
Output1 (в разработке)нетДля некорректных записейСтруктура метаданных порта ошибок будет приведена в таблице ниже

Атрибуты FLAT_FILE_READER:

АтрибутОбязательныйОписаниеВозможные значения
fileURLдаПуть к источнику данных (плоский файл) для чтения. Для обращения по FTP используйте шаблон ftp://username:password@hostname:port/path-to-file${READ_DIR}/in.txt
charsetнетКодировка файла, читаемого с помощью этого узла.encoding="windows-1251"
dataPolicyнетОпределяет обработку неправильно отформатированных или неверных данных. Может принимать значения "strict", "lenient"dataPolicy="strict" по умолчанию
trimнетУказывает, следует ли удалять начальные и конечные пробелы из строк в момент прохождения данных через FLAT_FILE_READER.trim="default" по умолчанию. Возможные значения: true, false, default/

quotedStrings

нетПоля, содержащие специальные символы (запятая, новая строка или двойные кавычки), должны быть заключены в кавычки. В качестве символа кавычки принимаются только одинарные/двойные кавычки. Если установлено значение true, специальные символы не рассматриваются как разделители и удаляются при чтении компонентом.
Пример: Чтобы прочитать входные данные "25"|"Джон", установите для параметра quotedStrings значение true и установите для символа кавычки значение quoteChar=""". В результате будут получены два поля: 25|Джон.
quotedStrings="false" по умолчанию

quoteChar

нетСимволы, в которые будет заключено значение поля при quotedStrings="true".quoteChar="""

fieldDelimiter

нетРазделитель полейfieldDelimiter=","

recordDelimiter

нетРазделитель записейrecordDelimiter="/n"

Обрезание данных

  1. Входные строки обрабатываются в соответствии с типом данных поля следующим образом:
  • Пробелы удаляются как из начала, так и из конца поля для типов данных boolean, date, integer.
  • Входная строка остаётся полем, включающим начальные и конечные пробелы в случае типа данных string.
  1. Если для атрибута trim установлено значение true, все начальные и конечные пробельные символы удаляются. Поле, состоящее только из пробелов, преобразуется в нулевое значение (строка нулевой длины). Значение false подразумевает сохранение всех начальных и конечных символов пробелов. Входная строка может содержать пробелы только если представляет строковый тип данных. В случае trim = "default", поведение зависит от типа обрабатываемых данных: для типа string, значение строки останется с начальными и конечными пробелами, если они были, для остальных типов - пробелы будут убраны. По умолчанию trim="default".

Пример. Чтение файла.

Например, нужно прочитать файл "customers.csv". Каждая запись в нем содержит три поля: "дата", "фамилия" и "имя", разделенные символом "|". Нужно считать этот файл для дальнейшей обработки в системе.

Данные в файле:

01.02.2011|Горилов|Алексей
29.12.2013|Нечаев|Илья
25.11.2016|Васькин|Николай
23.10.2019|Иванов|Григорий
19.09.2022|Горбунов|Евгений

Решение:

Для чтения простого файла используется узел FLAT_FILE_READER. В редакторе узла нужно задать значение атрибута fileURL="customers.csv".

Чтобы правильно прочитать записи, нужно описать входные метаданные. В редакторе метаданных задайте имя метаданным, например, "customers_data" и создайте поля "date", "last_name" и "first_name". Установите для них типы данных "date", "string" и "string" соответственно.

С помощью атрибута format="%Y-%m-%d" можно указать используемый формат даты для поля "date".

Данные читаемые с помощью узла FLAT_FILE_READER нужно обязательно отправить дальше. Если обработка данных не требуется, можно использовать узел TRASH для остановки потока данных.

Узлы FLAT_FILE_READER и TRASH нужно соединить ребром и присвоить этому ребру созданную мету "customers_data".

Данные из файла "customers.csv" будут считаны во внутреннюю память Onebridge:

datelast_namefirst_name
01.02.2011ГончаровАлексей
29.12.2013НечаевИлья
25.11.2016ВаськинНиколай
23.10.2019СеровГригорий
19.09.2022ГлинкаЕвгений