Nifi抽取数据问题

最近学习用Nifi来进行数据抽取,遇到一个问题,目前不知如何解决
数据库是本地测试的,所以目标库和源库都是一个库。数据表也是测试数据

img

Nifi设置如下

img

img

img

img

img

img

img

img

img

  • 关于该问题,我找了一篇非常好的博客,你可以看看是否有帮助,链接:Nifi 编译问题
  • 除此之外, 这篇博客: 【NiFi】(二)三分钟搞定 NiFi 安装与简单使用!中的 二、NiFi 的简单使用 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 不理解NIFI是做什么的,看一个简单的例子(同步文件夹)吧,帮助理解。

    1、从工具栏中拖入一个Processor,在弹出面板中搜索GetFIle,然后确认。

    在这里插入图片描述
    在这里插入图片描述
    2、配置GetFile,设置结束关系、输入目录、保留源文件,其他设置可以不动,输入目录中有文件:file.txt(内容为abc)。

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    3、从工具栏中拖入一个Processor,在弹出面板中搜索PutFIle,然后确认,如第一步。

    4、配置PutFile,设置结束关系、输出目录,其他设置可以不动,输出目录为空文件夹。

    在这里插入图片描述
    在这里插入图片描述
    5、将GetFIle与PutFIle关联起来,从GetFIle中心点击,拖拉到PutFIle上。

    在这里插入图片描述
    在这里插入图片描述
    6、右键启动GetFIle与PutFIle,可以看到结果,输入目录中的文件同步到,输出目录中了。

    在这里插入图片描述
    注意:操作过程中,注意错误排查

    1、Processor上的警告

    在这里插入图片描述

    2、Processor上的错误

    在这里插入图片描述

  • 以下回答由chatgpt基于相关博客总结生成:

    我不知道你遇到的具体问题是什么,需要更多的信息才能提供帮助。但是,我可以给出以下解决方案:

    1. 确认本地测试数据库的连接和权限是否正确,可以通过在命令行中直接对数据库进行查询来进行测试。

    2. 确认Nifi配置的Get和Put Processor的输入和输出目录是否正确,并且在输入目录中确实有需要抽取的数据表或数据文件。

    3. 如果你需要使用自己开发的Processor组件,可以按照段落1中的步骤进行开发和安装。

    4. 确认NiFi安装过程中是否遇到了任何问题,比如Java安装和环境变量设置等。可以参考段落2中的安装步骤进行确认和修改。

    5. 如果你想使用Java代码进行文件复制,可以参考段落3提供的代码示例。要注意的是,Nifi本身已经提供了一些常用的Processor组件,例如GetFile、PutFile、ExecuteSQL等,可以在工具栏中直接拖入使用,无需进行额外的Java编程。

以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:

根据你提供的信息,我看到你的Nifi设置中使用了ExecuteSQL和PutDatabaseRecord两个Processor,且都设置正确了。但是你没有说明具体的问题是什么,所以我猜测你遇到的问题可能是数据没有抽取成功。

首先,你可以检查一下你的ExecuteSQL Processor是否正常执行了SQL语句,可以在该Processor的配置中勾选"Auto Terminate Relationships"并在"Relationships"选项中添加"success",这样当Processor执行成功时会自动输出一个"success"的Relationship。如果没有成功输出该Relationship,可以查看日志信息来确定问题原因。

其次,你可以检查一下PutDatabaseRecord Processor是否正确地将数据写入目标库中。可以在该Processor的配置中勾选"Auto Terminate Relationships"并在"Relationships"选项中添加"success",这样当Processor执行成功时会自动输出一个"success"的Relationship。如果没有成功输出该Relationship,可以查看日志信息来确定问题原因。

最后,如果以上两个Processor都没有问题,那么可能是你的SQL语句有问题,可以在ExecuteSQL Processor的配置中添加一个"failure"的Relationship,并在PutDatabaseRecord Processor的配置中勾选"Rollback On Failure"来确保数据不会被写入目标库中。然后可以查看日志信息来确定问题原因,并修改SQL语句后重新执行。

希望这些思路可以帮助你解决问题。如果有任何不清楚的地方,可以在评论区提出来,我会尽力帮助你。