Установите и получите сервер стека Redis из Apache NiFi
На самом деле я могу нормально работать с Redis в Apache Nifi. Но я не могу найти никаких ссылок или документации по работе с Redis Stack и RedisJSON .
Я пытался использовать текущее решение, которое работало с Redis, для использования с Redis Stack, но оно не работает.
Есть ли у кого-нибудь опыт в этом или есть какие-либо предложения? пожалуйста, скажите мне в комментарии.
Я очень ценю любую помощь, которую вы можете оказать.
1 ответ
Вы можете попробовать этот подход с помощью языка Groovy в Apache Nifi:
Скачать
Jedis
JAR-файл.ПРИМЕЧАНИЕ. Это обязательная зависимость, которую необходимо добавить в путь к классу Groovy Script.
Загрузите загруженный JAR-файл в каталог вашего работающего экземпляра Nifi.
ПРИМЕЧАНИЕ. Если вы используете Nifi в Docker, загрузите файл JAR на смонтированный том, к которому у вас будет доступ из вашего экземпляра Nifi.
Добавьте процессор в свой Nifi Flow. Выберите Groovy в
Script Engine
Свойство Затем заполнитеModule Directory
Свойство с адресом каталога файлов JAR на вашем экземпляре Nifi.Чтобы подключиться к RedisStack , выберите
Script Body
Недвижимость вExecuteScript
процессор и запишите желаемый сценарий. Например:
// Import the necessary Jedis classes
import redis.clients.jedis.Jedis
import redis.clients.jedis.JedisPool
import redis.clients.jedis.JedisPoolConfig
// Set up a connection to RedisStack using Jedis
// Replace [REDIS_IP_ADDRESS] and [REDIS_PORT] with your actual running Redis IP address and port number.
def redisHost = "[REDIS_IP_ADDRESS]"
def redisPort = [REDIS_PORT]
def jedis = new Jedis(redisHost, redisPort)
// Connect to the RedisJSON module using the Jedis MODULE LOAD command
//This loads the RedisJSON module into RedisStack, allowing you to use RedisJSON commands
jedis.sendCommand("MODULE", "LOAD", "redisjson")
//Use RedisJSON commands with Jedis to interact with RedisJSON
// Set a JSON object
jedis.sendCommand("JSON.SET", "myjson", ".", '{"name":"John","age":30}')
// Get a JSON object
def result = jedis.sendCommand("JSON.GET", "myjson")
println(result)
// Query a JSON path
def query = ".name"
def value = jedis.sendCommand("JSON.GET", "myjson", query)
println(value)
//Do not forget to close your Jedis connection when you done
jedis.close()
Таким образом вы можете подключиться к RedisStack и использовать команды RedisJSON в Groovy, используя библиотеку Jedis, и все это применимо в Apache Nifi.
Я надеюсь, что это поможет вам.