apache-nifi - 导入 Sqoop 列名问题

标签 apache-nifi sqoop tablecolumn kylo

我有一个关于 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是否是反模式,但肯定没有必要。 请先查看标准选项:

  1. 从表中获取数据到 Nifi 的标准方法是使用标准处理器,例如 ExecuteSQL
  2. 如果这还不够,使用 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/

相关文章:

tableview - 计算TableView中不同列的总和

date - apache-nifi 纪元日期转换失败

linux - 从 Apache Nifi 中的 ExecuteProcess 调用远程 shell 脚本时,无法将环境变量作为敏感字段传递

java - 时间戳不兼容(NiFi 的 PutSQL)

apache-nifi - 如何动态更新 Nifi 中的 variable.registry.properties?

mysql - sqoop 中以下命令面临问题

hadoop - 使用 Sqoop 将 RDBMS 更新到 HDFS

mysql - 线程 "main"java.lang.IncompatibleClassChangeError : Found interface org. apache.hadoop.mapreduce.JobContext 中的异常,但类是预期的?

php - 在一列中放置多个 MySQL 行

java - 复制值TableColumn不可见的问题