NIFI JDBC Подключение к поддержке MariaDB UTF8 - PullRequest
0 голосов
/ 30 января 2019

когда мы запускаем команду select convert (поле с использованием utf8) из инструмента MySQL (который работает в Windows с использованием ODBC), мой запрос работает нормально.Когда я выполняю тот же запрос из NIFI (который находится в Linux с использованием JDBC), мой запрос не работает.Какие настройки мне не хватает?

строка подключения JDBC:

jdbc: mysql: //10.10.xx: y / warehouse

Мы не получаем ошибку.Единственное преобразовываемое поле пустое.

1 Ответ

0 голосов
/ 30 января 2019

Какой полный запрос вы выполняете?Когда вы используете функцию в качестве поля для выбора, возвращаемое имя обычно является чем-то напуганным, и из-за строгих правил именования полей в Avro (в который ExecuteSQL преобразует данные) часто жалуется, поэтому вы должны использовать псевдонимчто-то вроде select convert(field using utf8) as field from myTable.

Но если вы не получаете сообщение об ошибке, я подозреваю, что, возможно, есть некоторая переменная сеанса, которая устанавливается в вашем внешнем инструменте MySQL и не устанавливается для сеанса NiFi.В предстоящем выпуске NiFi 1.9.0 (через NIFI-5780 ) вы сможете выполнять инструкции SET и тому подобное для сеанса до выполнения основного запроса.

В противном случае этоВозможно, что драйвер JDBC возвращает тип к NiFi, который он обрабатывает неправильно (хотя для UTF8 я ожидал, что он сообщит String).Я пробовал это с полем BINARY(10), и оно работает для меня (используя последний мастер, а не выпущенную версию), поэтому я не уверен, что там происходит.

...