Использование Nifi для добавления столбца даты в Hive - PullRequest
0 голосов
/ 02 февраля 2020

Я использую Nifi для загрузки еженедельного CSV для клиента. Nifi помещает CSV в каталог HDFS, после чего внешняя таблица Hive загружает данные. Каждую неделю новый файл попадает в каталог, и данные добавляются в таблицу Hive.

Однако у них нет возможности сообщить новые данные из старых данных, поэтому было предложено добавить метку даты в новые строки. Создание столбца «дата» в Hive не проблема, но мне интересно, как заполнить этот столбец датами. Я думал о добавлении процессора PutHQL после процессора PutHDFS, чтобы он мог выполнить оператор вроде

    insert into my_table(date) ${now():format('YYYY-MM-dd')}

Но здесь есть некоторые проблемы:

  • может ли Nifi игнорировать предыдущие записи и вставлять только в новые строки?
  • как Nifi узнает, во сколько строк ввести метку даты?
  • Я даже не уверен, что приведенная выше команда Hive будет работать так, как нужно Я думаю, что это будет

Другая проблема заключается в том, что оригинальный CSV должен быть оставлен без изменений. Часть проблемы в том, что я не уверен, как Nifi взаимодействует с CSV-файлами. Если у него есть способ читать столбцы и строки как атрибуты, то, возможно, возможно добавить значения меток даты, прежде чем он достигнет Hive (может быть?).

Я также слышал, что Hive может сделать это вроде бы напрямую, но у меня нет никаких деталей. Любые предложения приветствуются.

...