2015-11-22 2 views
2

Я хочу использовать «Таблица существует» шаг, чтобы проверить, если определенная таблица существует, если нет, то создать один«Таблица существует» шаг в Pentaho Чайник

трансформацию я создал (для того, чтобы скопировать данные из входных баз данных в вывода базы данных)

Table Input -----> Table exists ----> Table output 

свойства в "таблице существует" являются

Step name: 
connection: 
Schema name: 

Tablename field: 
Result fieldname: 

Первые три очевидны. Последние два

Что означает поле «Название таблицы»? Это список с ограниченными параметрами, имена столбцов таблицы ввода. Должно ли это имя таблицы, я хочу проверить соединение?

Что такое полевое имя? Как я могу это использовать?

ответ

2
  • Tablename Поле - это стол, который он проверяет.
  • Result fieldname Имя поля, которое будет содержать логический результат на выходе этого шага.

Используйте следующую последовательность, чтобы проверить и создать таблицу, если она не существует.

enter image description here

Таблица ввода - Получить данные из базы данных.

Сгенерировать строки - указать tablenamefield как имя и table_name_to_check как стоимость и String как тип. Позже мы можем использовать поле tablenamefield в таблице существует шаг

Таблица Exist - выберите tablenamefield, который появляется в поле Табличное имя. Написать любое имя как Result fieldname т.е. result

Switch/Case - Тип Y в случае значения и Table Output в качестве целевого шага. Сделайте execute SQL statement в качестве целевого шага по умолчанию. имя поля для коммутатора: result

Выполнение инструкции SQL - Напишите запрос на создание таблицы SQL.

Выход таблицы - записывается в новый стол.

NB: Если вы не хотите проверять, существует ли таблица для каждой строки.вы можете использовать задание и проверить существование таблицы в первом преобразовании и шаги ввода и вывода таблицы во втором преобразовании, которые я рекомендую для выполнения.

+0

спасибо за ответ. В моей ложке вход в таблицу не может перескочить для генерации строк –

+0

Любая ошибка? Если нет, вы можете создать постоянное поле в своем запросе в виде ввода таблицы, например SELECT field1, field2, 'tablename' в качестве tablenamefield из таблицы. Так что вам не нужно использовать шаг Generate Rows –

0

Поле Tablename - это поле, содержащее имя таблицы (таблиц), которую вы хотите проверить. Если вы хотите проверить только одну таблицу, вам нужно только одну строку с именем таблицы в одном из полей.

Result fieldname - это имя нового поля, которое шаг будет добавлен к выходному сигналу шага. Это новое поле содержит результат проверки. Это поле boolean, которое вы можете использовать в последующих шагах, например, чтобы отправить эту строку в ветку, которая создает таблицу. Значение поля равно true, если таблица существует и false, если таблица не существует.

+0

благодарит за ответ. Мне не разрешено заполнять имя таблицы, которую я хочу проверить, это список с ограниченными параметрами, которые являются именами столбцов таблицы, которую я хочу проверить. Возможно ли, что я связал шаги неправильно? –

+0

нет. Как обычно работают шаги ETL - они берут свои параметры из полей. Таким образом, ваша «контрольная таблица» -ступят выполняется для каждой отдельной строки в вашем преобразовании и получает имя таблицы из строки на ее входе. Вы не можете вручную ввести имя поля на шаге. –

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