Я хочу создать работу с помощью Talend, которая импортирует несколько файлов xls в базу данных MySQL. Я не знаю схему этих файлов (количество столбцов и имен), но могу предположить, что строка заголовка соответствует именам столбцов. Моя идея - создать папку для каждой схемы xls, которая содержит файлы xls и файл конфигурации (описывает схему и сопоставление таблицы mySQL). Все файлы xls должны быть сопоставлены с одной уже существующей таблицей. Интересно, возможно ли это с помощью Talend open Studio? Любые другие решения более чем приветствуются.динамическая схема xls файл в базу данных mysql
ответ
На Talend Exchange есть компонент, который вы могли бы использовать для этого. Компонент предназначен для Excel, потому что он не является базой для фиксированной схемы (например, Talend) и работает, читая строку за строкой, но он основан на ячейке и читает ячейку по ячейке.
Что бы я сделал, это иметь работу для идентификации схемы, и в зависимости от нее будут генерироваться разные запросы на вставку. У меня не было бы работы для каждой схемы, но у меня была бы одинаковая работа для всех.
1. First job would go cell by cell through the first row (containing the header names) and populate them into a flow. (Row:1, Column:B, Value: "FullName")
2. second part of the job would be to go through cell by cell for the values and get them in a Key-Value way (Row:3, Column:B, Value: "Peter Jackson") into another flow
3. Denormalising the second flow could give you all of the values int the same Excel row.
4. A tMap woud give you the possibility to exchange the Column B with the Fullname attribute and have a concatenation going on that would give you the insert statement.
Вот как я подхожу к нему. Это займет около часа или двух, но должно быть выполнимо
Хорошо. Но мне нужно использовать внешний файл конфигурации с указанием столбца ввода и вывода. Например, если у меня есть файл xls с тремя столбцами (имя, возраст, пол) и файл конфигурации, указывающий, что столбец «name» этого файла должен быть сопоставлен столбцу «user» моей таблицы, может ли компонент tmap загрузить это динамически? –
ну, первый шаг - загрузить имена столбцов, там вы можете вытащить любую другую конфигурацию и сопоставить ее по имени и изменить то, что вам нужно. Назовите это Шаг 1.1. Если вы не хотите использовать столбец, вы просто оставите его вне конфигурации, и он не будет соответствовать потоку на шаге 1. Соединение с потоком с шага 2 будет разрешено только для данных, которые вы хотите обрабатываться. Я не вижу проблем. – user853710
Если у вас возникли проблемы, попросите своего начальника нанять меня в качестве консультанта на пару часов. ;) – user853710
Являются ли имена столбцов таблицы одинаковыми по всей схеме. Я имею в виду, что столбец «xxXXyyKK» также содержит те же данные в столбце «xxXXyyKK» из другой схемы – user853710
не обязательно. –