2016-04-26 2 views
0

Я хочу создать работу с помощью Talend, которая импортирует несколько файлов xls в базу данных MySQL. Я не знаю схему этих файлов (количество столбцов и имен), но могу предположить, что строка заголовка соответствует именам столбцов. Моя идея - создать папку для каждой схемы xls, которая содержит файлы xls и файл конфигурации (описывает схему и сопоставление таблицы mySQL). Все файлы xls должны быть сопоставлены с одной уже существующей таблицей. Интересно, возможно ли это с помощью Talend open Studio? Любые другие решения более чем приветствуются.динамическая схема xls файл в базу данных mysql

+0

Являются ли имена столбцов таблицы одинаковыми по всей схеме. Я имею в виду, что столбец «xxXXyyKK» также содержит те же данные в столбце «xxXXyyKK» из другой схемы – user853710

+0

не обязательно. –

ответ

0

На 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. 

Вот как я подхожу к нему. Это займет около часа или двух, но должно быть выполнимо

+0

Хорошо. Но мне нужно использовать внешний файл конфигурации с указанием столбца ввода и вывода. Например, если у меня есть файл xls с тремя столбцами (имя, возраст, пол) и файл конфигурации, указывающий, что столбец «name» этого файла должен быть сопоставлен столбцу «user» моей таблицы, может ли компонент tmap загрузить это динамически? –

+0

ну, первый шаг - загрузить имена столбцов, там вы можете вытащить любую другую конфигурацию и сопоставить ее по имени и изменить то, что вам нужно. Назовите это Шаг 1.1. Если вы не хотите использовать столбец, вы просто оставите его вне конфигурации, и он не будет соответствовать потоку на шаге 1. Соединение с потоком с шага 2 будет разрешено только для данных, которые вы хотите обрабатываться. Я не вижу проблем. – user853710

+0

Если у вас возникли проблемы, попросите своего начальника нанять меня в качестве консультанта на пару часов. ;) – user853710