Если вы хотите создать пользовательский заголовок для выходного CSV-файла , затем настройте CSV-ридер службу контроллера, как показано ниже.
Configs:
Поскольку мы используем стратегию доступа к схеме в качестве текста схемы и задаем схему как
{
"type": "record",
"name": "SQLSchema",
"fields" : [
{"name": "ID", "type": ["null","int"]},
{"name": "TIME", "type": ["null","string"]},
{"name": "MxB01", "type": ["null","int"]},
{"name": "MxB02", "type": ["null","int"]},
{"name": "MxB03", "type": ["null","int"]}
]
}
И мы рассматриваем первую строку данных CSV как заголовок и , игнорируя имена столбцов CSV-заголовков , поэтому выходной файл потока будет иметь схему, которую мы определили выше.
Конфигурации CsvWriter:
Поскольку мы наследуем стратегию записи схемы, выходной файл потока будет иметь тот же заголовок, который мы указали в считывателе.
Кроме того Я не уверен, почему вы используете процессор SplitText после ConvertRecord в качестве процессора PutDatabaseRecord, предназначенного для одновременной работы с кусками записей.
Даже если вы можете настроить PutDatabaseRecord с помощью службы контроллера CsvReader, упомянутой выше , тогда ваш поток будет:
Расход:
GetFile -> PutDatabaseRecord
Примечание:
Поскольку я не использовал логические типы Avro для поля метки времени, если вы используете логические типы, измените соответствующие настройки службы контроллера.