NiFi или Streamsets для чтения из HBase, соединения с контентом из плоского файла и записи в Hive

Пытался выяснить, можно ли объединить с помощью apache NiFi или Streamsets. Чтобы я мог периодически читать данные из HBase, присоединяться к другим таблицам и записывать несколько полей в таблицу Hive.

Или есть какой-либо другой инструмент диспетчера рабочих процессов, поддерживающий эту операцию?


person Srihari Karanth    schedule 03.05.2017    source источник


Ответы (1)


Я не знаком с Streamsets, но постараюсь помочь с NiFi. Ваш плоский файл статичен? Если да, то хотите ли вы произвести прямую замену ценностей? У вас должна быть возможность использовать ReplaceTextWithMapping для этого. Если не прямая замена, вы можете предварительно заполнить DistributedMapCache со значениями из плоского файла, затем используйте FetchDistributedMapCache, чтобы выполнить поиск по записям HBase.

Если ничего не помогает, то, если вы хорошо знакомы с языком сценариев, таким как Groovy, Javascript или Jython, вы можете написать часть «соединения», используя ExecuteScript или InvokeScriptedProcessor.

Есть открытый кейс Jira (с некоторым хорошим прогрессом) при поиске / enrichment процессор, который поддерживает файлы CSV, файлы свойств и поиск в памяти.

person mattyb    schedule 03.05.2017
comment
Спасибо, похоже, что я ищу FetchDistributedMapCache. Может тоже периодически делать. например, у меня есть таблица, которая постоянно заполняется новыми строками, и я хочу агрегировать один раз в час данные за предыдущий час (с объединениями в других статических таблицах). Так будет ли NiFi помнить, какие часы уже суммированы, а какие нужно выбрать для оставшихся часов? И агрегирование будет иметь SUM / AVG в нескольких столбцах. - person Srihari Karanth; 03.05.2017
comment
Он не выполняет агрегацию, кеш предназначен только для поиска. В предстоящем выпуске NiFi 1.2.0 вы можете использовать UpdateAttribute, чтобы вести текущий счетчик / сумму по мере прохождения файлов. - person mattyb; 03.05.2017