apache - Oracle + NiFi => 所有字段转换为字符串

标签 apache oracle11g avro apache-nifi

我正在使用 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/

相关文章:

php - apache 停止响应然后崩溃

sql - PL/SQL : ORA-00904: : invalid identifier

apache-kafka - 无法使用 kafka-avro-console-consumer 读取 avro 消息。序列化异常 : Unknown magic byte

apache - 更改 Apache .htaccess 文件以与 Nginx 一起使用

apache - 除了特定页面之外,如何将 http 重定向到 https,然后将 https 重定向到同一页面的 http?

oracle - ORA-01008 : not all variables bound after database upgrade

c# - Oracle.DataAccess.Client.BulkCopy - 试图在不应该将 varchar2 转换为数字

json - 可以用其他信息扩展avro json吗?

uuid - 在 Avro 中表示 UUID 的最佳方式?

php - Apache 无法使用 curl 发出传出 HTTP 请求