FLAT_FILE_READER

FLAT_FILE_READER считывает данные из плоских файлов в формате CSV
и TXT
с разделителями, фиксированной длины или смешанных текстовых файлов. Удаленные файлы доступны для чтения через протоколы FTP и SFTP.
Порты FLAT_FILE_READER:
Тип порта | Номер | Обязательный | Описание | Метаданные |
---|---|---|---|---|
Output | 0 | да | Для корректных записей | Любые |
Output | 1 (в разработке) | нет | Для некорректных записей | Структура метаданных порта ошибок будет приведена в таблице ниже |
Атрибуты 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" |
Обрезание данных
- Входные строки обрабатываются в соответствии с типом данных поля следующим образом:
- Пробелы удаляются как из начала, так и из конца поля для типов данных
boolean
,date
,integer
. - Входная строка остаётся полем, включающим начальные и конечные пробелы в случае типа данных
string
.
- Если для атрибута 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:
date | last_name | first_name |
---|---|---|
01.02.2011 | Гончаров | Алексей |
29.12.2013 | Нечаев | Илья |
25.11.2016 | Васькин | Николай |
23.10.2019 | Серов | Григорий |
19.09.2022 | Глинка | Евгений |