我有个关于凯洛和尼菲的问题。使用的kylo版本是0.10.1使用的nifi版本是1.6.0
当我们为数据库摄取创建feed(使用数据库作为源)时,在附加选项步骤中没有输入源表列名的规定。
但是,在nifi端,我们使用import sqoop处理器,它有一个名为source fields的强制字段,并且要求输入列,用逗号分隔。如果不这样做,我们会得到一个错误:
error tool.importtool:导入失败:找到的列没有列名。如果使用自由格式查询导入,请验证您已在查询中输入了所有列名(考虑添加子句,如同使用列转换一样)
对于我们的需求,我们希望importsqoop将表中的所有列自动带入这个属性,而不需要nifi级别的手动干预。是否有任何选项可以在后台自动包含数据库表的所有列?或者在updateattribute processor中是否有其他可能提供此值?
1条答案
按热度按时间t1qtbnec1#
正如评论中提到的,importsqoop不是一个普通的nifi处理器。这不一定是问题,但意味着如果不涉及创建者,就不可能解决问题。
另外,尽管我还在争论sqoop上的nifi是否是反模式,但这肯定不是必需的。请先查看标准选项:
从表中获取数据到nifi的标准方法是使用executesql之类的标准处理器
如果这还不够,那么使用sqoop(批处理工具)的标准方法是使用批处理调度器,比如oozie或airflow
这条线索可以消除对第1点的进一步怀疑:http://apache-nifi.1125220.n5.nabble.com/sqoop-support-in-nifi-td5653.html