2014-12-18 1 views
0

У меня есть требование, в котором один источник является таблицей, а один источник - файлом. Мне нужно присоединиться к ним как по столбцу. Проблема в том, что я могу сделать это для одной таблицы с одним преобразованием, но мне нужно сделать это для нескольких наборов файлов и таблиц для загрузки в другой набор определенных файлов в качестве целевой, используя одно и то же преобразование.Как динамически визуализировать имя таблицы и имя файла в pentaho DI

Ломая мое требование более конкретно:

Source Table      Source File Target File 

VOICE_INCR_REVENUE_PROFILE_0 VoiceRevenue0 ProfileVoice0 
VOICE_INCR_REVENUE_PROFILE_1 VoiceRevenue1 ProfileVoice1 
VOICE_INCR_REVENUE_PROFILE_2 VoiceRevenue2 ProfileVoice2 
VOICE_INCR_REVENUE_PROFILE_3 VoiceRevenue3 ProfileVoice3 
VOICE_INCR_REVENUE_PROFILE_4 VoiceRevenue4 ProfileVoice4 
VOICE_INCR_REVENUE_PROFILE_5 VoiceRevenue5 ProfileVoice5 
VOICE_INCR_REVENUE_PROFILE_6 VoiceRevenue6 ProfileVoice6 
VOICE_INCR_REVENUE_PROFILE_7 VoiceRevenue7 ProfileVoice7 
VOICE_INCR_REVENUE_PROFILE_8 VoiceRevenue8 ProfileVoice8 
VOICE_INCR_REVENUE_PROFILE_9 VoiceRevenue9 ProfileVoice9 

В таблице и имена файлов всегда соответствующие т.е. VOICE_INCR_REVENUE_PROFILE_0 всегда должны присоединиться к VoiceRevenue0 и результат должен быть сохранен в ProfileVoice0. В этом случае не должно быть несоответствий. Я попытался установить переменные с именами таблиц и именами файлов, но он принимает значение только за раз.

Все имена таблиц и имена файлов являются постоянными. Есть ли другой способ обойти это. Любая помощь будет оценена по достоинству.

ответ

0

Попробуйте использовать шаг «Копировать строки в результат». Он сохранит все входящие строки (в вашем случае имена таблиц и файлов) в память. И для каждой строки он попытается выполнить вашу трансформацию. Таким образом, вы можете прочитать несколько имен файлов за один раз.

Попробуйте прочитать this ссылка. Это не точный ответ, но похожий.


Я создал образец here. Пожалуйста, проверьте, требуется ли это.

В первом преобразовании я читаю имена таблиц и имена файлов и загружаю их в память. После этого я использовал шаг переменной get для чтения всех файлов и имен таблиц для генерации вывода. [Примечание: я не использовал вход таблицы как источник в любом месте, вместо этого использовал TablesNames. Вы можете заменить то же самое с входными данными таблицы.]

Надеется, что это помогает :)

+0

Благодаря Rishu для ввода, но с «Копированием строк в результате» шаг можно использовать как имена файлов и таблиц в качестве входного и выполнить для каждой строки, которая на самом деле выполняется точно так же, как вы сказали, для имен файлов, но как мне получить это, чтобы прочитать имена таблиц на шаге ввода таблицы и выполнить для каждой строки? –

+0

Пробовали ли вы использовать переменные, используемые в «Копировать строки в результат» на этапе ввода таблицы? .. Я имею в виду использование переменной для замены имени таблицы на шаге TableInput. – Rishu

+0

Переменные не принимают сразу несколько значений таблицы, поэтому копирование строк в результат должно приводить только к одному значению, кроме того, что заданная переменная не работает, –

Смежные вопросы