как параметризировать URI в процессоре getMongo - PullRequest
0 голосов
/ 06 ноября 2018

мой поток выглядит так => generateFF-> updateAttribute-> getMongo

Я получаю следующее исключение

`Caused by: java.lang.IllegalArgumentException: The connection string is invalid. Connection strings must start with 'mongodb://'
        at com.mongodb.ConnectionString.<init>(ConnectionString.java:203)
        at com.mongodb.MongoClientURI.<init>(MongoClientURI.java:176)
        at com.mongodb.MongoClientURI.<init>(MongoClientURI.java:158)
        at org.apache.nifi.processors.mongodb.AbstractMongoProcessor.createClient(AbstractMongoProcessor.java:191)`

Я устанавливаю mongoURI в "updateAttribute" и вижу его также в атрибуте ff. и в getMongo я помещаю URI как => $ {mongo_uri}

проблема в том, что процессор выдает ошибку, как только я запускаю поток, даже до того, как ff достигнет процессора. Если процессор допускает язык выражений, разве он не должен ждать, пока ff достигнет его, чтобы мы могли использовать какой-либо тип выражения?

я что-то упустил? или URI должен быть жестко закодирован?

1 Ответ

0 голосов
/ 06 ноября 2018

Согласно NiFi-1.8.0 документации Mongo URI

  • Поддерживает язык выражений: true, но (будет оцениваться только с использованием реестра переменных)

Таким образом, этот процессор не будет иметь возможности для получения атрибутов потокового файла .

Сохраните MongoURI как переменную в переменном реестре , тогда процессор получит значение переменной.

enter image description here

...