Возможности структурирования полученных данных json с помощью Nifi

Можно ли с помощью Nifi загрузить файл json в структурированную таблицу?

Я вызвал следующие данные прогноза погоды (с 6000 метеостанций), которые сейчас загружаю в HDFS. Все это отображается в одной строке:

{"SiteRep":{"Wx":{"Param":[{"name":"F","units":"C","$":"Feels Like Temperature"},{"name":"G","units":"mph","$":"Wind Gust"},{"name":"H","units":"%","$":"Screen Relative Humidity"},{"name":"T","units":"C","$":"Temperature"},{"name":"V","units":"","$":"Visibility"},{"name":"D","units":"compass","$":"Wind Direction"},{"name":"S","units":"mph","$":"Wind Speed"},{"name":"U","units":"","$":"Max UV Index"},{"name":"W","units":"","$":"Weather Type"},{"name":"Pp","units":"%","$":"Precipitation Probability"}]},"DV":{"dataDate":"2017-01-12T22:00:00Z","type":"Forecast","Location":[{"i":"14","lat":"54.9375","lon":"-2.8092","name":"CARLISLE AIRPORT","country":"ENGLAND","continent":"EUROPE","elevation":"50.0","Period":{"type":"Day","value":"2017-01-13Z","Rep":{"D":"WNW","F":"-3","G":"25","H":"67","Pp":"0","S":"13","T":"2","V":"EX","W":"1","U":"1","$":"720"}}},{"i":"22","lat":"53.5797","lon":"-0.3472","name":"HUMBERSIDE AIRPORT","country":"ENGLAND","continent":"EUROPE","elevation":"24.0","Period":{"type":"Day","value":"2017-01-13Z","Rep":{"D":"NW","F":"-2","G":"43","H":"63","Pp":"3","S":"25","T":"4","V":"EX","W":"3","U":"1","$":"720"}}}, .....

В идеале я хочу, чтобы схема была структурирована в таблицу из 6000 строк.

Я пробовал написать схему для передачи вышеизложенного в Pig, но безуспешно, вероятно, потому, что я недостаточно знаком с json, чтобы правильно это перевести.

Обыскивая простой способ добавить некоторую структуру к данным, я заметил, что в Nifi есть процессор PutHBaseJson.

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

Я очень ценю любое руководство.


person Jon295087    schedule 13.01.2017    source источник


Ответы (1)


Вероятно, вы захотите использовать SplitJson для разделения структуры JSON из 6000 записей на 6000 отдельных потоковых файлов. Если вам нужно «ввести» определения параметров из ответа верхнего уровня, вы можете сделать _ 2_ или _ 3_ операция для управления отдельными записями JSON. Вот хороший статья Иоланды Дэвис, описывающая, как выполнять преобразования Jolt (JSON -> JSON) в NiFi.

Если у вас есть отдельные потоковые файлы, содержащие одну запись JSON, поместить их в HBase очень просто. Брайан Бенде написал статью с описанием необходимых конфигураций для PutHBaseJson процессора.

person Andy    schedule 13.01.2017
comment
Большое спасибо @Andy за предоставленную информацию - похоже, это именно то, что мне нужно. Я поэкспериментирую в течение следующих нескольких дней и отправлю свои результаты. - person Jon295087; 13.01.2017