我正在使用 NiFi 将 Oracle (11g) 数据库表传输到 HDFS(Avro 格式)。
AVRO 列的类型出现问题:它们都被定义为字符串,即使 Oracle 表列是其他类型,例如数字、日期时间的时间戳。显然,这很烦人:-)
经过一番谷歌搜索后,我发现问题存在于某些 Oracle JDBC 驱动程序和 Avro 转换器的组合中。然而,我找不到合适的解决方案;有谁知道要使用什么 JDBC(或其他?)驱动程序才能在 Avro 输出中正确输入?
最佳答案
如果驱动程序按照 Bryan 建议的那样返回“字符串”作为每列的类型(或者 NiFi 将其视为字符串的未知类型),那么如果您知道预期的列类型,则对于原始类型转换(字符串、长整型) ,int,double,float)你可以尝试 ConvertAvroSchema处理器。
对于日期/时间字段,根据您想要对它们执行的操作,有一些 Date Manipulation functions NiFi 表达式语言可以帮助您处理它们。
关于apache - Oracle + NiFi => 所有字段转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41805434/