【问题标题】:NIFI JDBC Connection to MariaDB UTF8 supportNIFI JDBC 连接到 MariaDB UTF8 支持
【发布时间】:2019-06-24 00:58:42
【问题描述】:
当我们从 MySQL 工具(在 Windows 上使用 ODBC)运行 select convert(field using utf8) 时,我的查询工作正常。当我从 NIFI(在 Linux 上使用 JDBC)运行相同的查询时,我的查询不起作用。我缺少什么设置?
JDBC 连接字符串是
jdbc:mysql://10.10.x.x:y/仓库
我们没有收到错误。正在转换的字段为空。
【问题讨论】:
标签:
mysql
mariadb
apache-nifi
【解决方案1】:
您正在运行的完整查询是什么?当您使用函数作为要从中选择的字段时,返回的名称通常很时髦,并且由于 Avro 中字段命名的严格规则(ExecuteSQL 将数据转换为该字段),它经常抱怨,因此您必须使用别名,类似于select convert(field using utf8) as field from myTable。
但是,如果您没有收到错误,我怀疑可能在您的外部 MySQL 工具上设置了一些会话变量,并且没有为 NiFi 的会话设置。在即将发布的 NiFi 1.9.0 版本中(通过 NIFI-5780),您将能够在执行主查询之前为会话发出 SET 语句等。
否则,JDBC 驱动程序可能会向 NiFi 返回一个无法正确处理的类型(尽管对于 UTF8,我希望它会报告一个字符串)。我用BINARY(10) 字段尝试了这个,它对我有用(使用最新的主版本,而不是发布的版本),所以我不确定那里发生了什么。