2016-06-13 5 views
2

Интересно, поддерживает ли Kettle (AKA Pentaho PDI) изменение метаданных во время выполнения.Pentaho Kettle: изменение мета во время выполнения

Я реализовал несколько пользовательских плагинов:

  • Первый плагин отправляет данные на второй плагин. Метаданные строк, отправленных на выходе, могут измениться при возникновении некоторых условий. На практике это означает, что processRow() начинается с определенных метаданных, а затем через некоторое время он меняет его. Конечно, строка, отправленная на выходе через putRow(), всегда синхронизируется с соответствующими метаданными.
  • Второй плагин получает данные от первого плагина, вызывая getInputRowMeta() для понимания метаданных полученной строки. Однако такие метаданные не синхронизируются с полученной строкой.

Учитывая результаты этого простого примера, интересно, если двигатель чайника поддерживает этот вид поведения времени выполнения --- т.е. если getInputRowMeta() возвращает правильные метаданные для конкретной строки, которая была получена.

Кто-нибудь может предоставить доказательства того, что изменение метаданных на самом деле невозможно? В противном случае существует ли безопасный способ получения метаданных определенной строки, полученной в processRow()?

+0

Мы можем использовать «Шаг выбора значений» после изменения метаданных исходного потока, и он будет получать новые метаданные оттуда, но в конце последнего шага (например, выход CSV, вывод таблицы и т. Д.) Необходимо будет метаданные, поэтому мы должны быть уверены в последнем типе данных каждого из них. – suraj08

ответ

0

От странице 616 книги Pentaho Kettle Solutions:

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