У меня есть file inbound endpoint
файла, в которую войдет файл с разделителями по трубе. Первая строка файла - это заголовок, а остальные - записи. В среднем было бы 40K записей, размер файлов которых близок к 7MB. Мне нужно преобразовать этот файл в структуру XML (заголовки из файла не совпадают с элементами XML).
Что такое хороший способ преобразования этого файла в XML? Я написал component
который принимает input stream
, читает файл по строкам, маркер, создаёт и записывает в XML файл. Но в этом случае я продолжаю открывать файлы в течение длительного времени, и мне нужно будет позаботиться о закрытии потока файлов и перемещении файла для резервного копирования.
Хотите узнать, что может быть другим способом? Кто-нибудь использовал Data Mapper
для аналогичной цели?
В документах Mule для DataMapper указано, что "DataMapper может анализировать 500-мегабайтный CSV файл, используя только около 75 МБ ОЗУ", если вы установите свойство "потоковое" в конфигурации DataMapper. Выбранная труба считается CSV, поскольку вы можете настроить разделитель. Вы также можете установить его для игнорирования строки заголовка. Я бы пошел на DataMapper, задал еще один вопрос, если что-то не удастся, и только вернется к пользовательскому компоненту, когда все надежды будут потеряны.