У меня есть json с десятками полей, как я могу легко преобразовать его в атрибут nifi?
Я использовал EvaluateJsonPath, но необходимо вводить значения по одному.
Я буду использовать эти атрибуты в базе данных Phoenix. Когда я использую ConvertJsontoSQL, это не работает...
Можете ли вы помочь с этой проблемой?
Образец содержимого JoltTransformJSON выглядит следующим образом:
{
"AAAA": "AAAA",
"BBBB": "BBBB",
"CCCC": "CCCC",
"DDDD": "DDDD",
"EEEE": "EEEE",
"FFFF": "FFFF",
"GGGG": "GGGG",
"HHHH": "HHHH",
...
...
...
}
Я хочу определить поля json для атрибутов nifi. Я не хочу вводить по одному с EvaluateJsonPath.
Меня интересует, есть ли такой метод. Потому что у меня json с 300 полями, занимает много времени...
@veganzombie, не могли бы вы показать пример вашего json? это сложно или просто объект с ключами?
можно использовать скрипт...
Обновлено: я нашел этот скрипт для ExecuteGroovyScript и обработал его.
import org.apache.commons.io.IOUtils
import java.nio.charset.*
def flowFile = session.get();
if (flowFile == null) {
return;
}
def slurper = new groovy.json.JsonSlurper()
def attrs = [:] as Map<String,String>
session.read(flowFile,
{ inputStream ->
def text = IOUtils.toString(inputStream, StandardCharsets.UTF_8)
def obj = slurper.parseText(text)
obj.each {k,v ->
attrs[k] = v.toString()
}
} as InputStreamCallback)
flowFile = session.putAllAttributes(flowFile, attrs)
session.transfer(flowFile, REL_SUCCESS)
Да, это решение работает. Также я создал кастомный процессор SplitRecordToAttributes
, tonykoval.github.io/nifi-vub-scala-bundle/…
@tonykoval где я могу скачать этот процессор?
Я поместил файл nar под, но ошибка при назначении json атрибуту. Появляется процессор. Когда я вхожу в раздел значений атрибутов: ошибки java.lang.NoClassDefFoundError: org/apache/nifi/json/WriteJsonResult
Я исправлю это.
жду новостей :)
Вы уверены в этом решении? Вы должны добавить все ключевые значения в атрибут потока nifi?