我有一个关于 Kylo 和 Nifi 的问题。 使用的 Kylo 版本是 0.10.1 使用的Nifi版本为1.6.0
当我们为数据库摄取创建提要时(使用数据库作为源),在附加选项步骤中没有输入源表列名的规定。
但是,在 Nifi 方面,我们使用一个 Import Sqoop 处理器,它有一个名为 Source Fields 的必填字段,它要求输入列,用逗号分隔。如果没有完成,我们会得到一个错误:
错误工具.ImportTool:导入失败:我们发现没有列名的列。如果使用自由格式查询导入,请验证您是否在查询中输入了所有列名(如果您使用列转换,请考虑添加子句 AS)
根据我们的要求,我们希望 Import Sqoop 自动将表中的所有列导入此属性,而无需在 Nifi 级别进行手动干预。是否有任何选项可以自动在后台包含数据库表的所有列?或者是否有任何其他可能性在 UpdateAttribute 处理器中提供此值?
最佳答案
如评论中所述,ImportSqoop 不是一个不正常的 Nifi 处理器。这不一定是问题,但意味着如果不让创建者参与,可能无法解决问题。
另外,虽然我还在争论Sqoop上的Nifi是否是反模式,但肯定没有必要。 请先查看标准选项:
- 从表中获取数据到 Nifi 的标准方法是使用标准处理器,例如 ExecuteSQL
- 如果这还不够,使用 Sqoop(一种批处理工具)的标准方法是使用批处理调度程序,例如 Oozie 或 Airflow
此线程可能会进一步消除对第 1 点的疑虑:http://apache-nifi.1125220.n5.nabble.com/Sqoop-Support-in-NIFI-td5653.html
关于apache-nifi - 导入 Sqoop 列名问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60240988/