如何将nifi flowfile内容作为blob文件插入oracle数据库

问题描述 投票:0回答:1

我需要将 nifi 流文件内容作为 blob 文件插入到我的 oracle 数据库中,假设下面是我的表列。 id(我将作为 nifi 属性获取)、名称(这也是我将作为属性获取)和数据(这包含我的流文件内容,我希望将其作为 blob 文件)。您可以使用 nifi 帮助实现这一目标吗? 我的桌子如下

id,name,data
1,aaa,some blob file
apache-nifi
1个回答
0
投票

我认为最好的选择仍然是编写脚本......

使用 ExecuteGroovyScript 处理器

声明属性:

SQL.mydb       = <select connection to database here>
SQL_STATEMENT  = insert into MyTable (name, data) values (:p_name, :p_data) 

并使用以下作为“脚本主体”属性:

import groovy.sql.Sql

def ff = session.get()
if(!ff) return

ff.read{ rawIn->
  def params = [
    p_name : ff."Attribute name", //get flow file attribute by name
    p_data : Sql.BLOB( rawIn ),   //use input stream as BLOB sql parameter
  ]
  SQL.mydb.execute(params, SQL_STATEMENT.getValue()) //execute statement defined in properties
}
REL_SUCCESS << ff //just transfer flow file to success

链接:

© www.soinside.com 2019 - 2024. All rights reserved.