gpt4 book ai didi

apache-nifi - PutFile 追加文件

转载 作者:行者123 更新时间:2023-12-04 18:03:33 25 4
gpt4 key购买 nike

Nifi的新手!

我想知道 nifi 是否有办法使用诸如“PutFile”之类的处理器并将其写入一个文件(将数据附加到此文件,或覆盖此文件中的数据)-而不是创建多个不同的文件?是否需要使用另一个处理器来完成此操作?

最佳答案

对于那些不想覆盖文件中的数据但想追加数据的人 .

使用 ExecuteStreamCommand 处理器附加到单个文件 :

putFile 处理器无法实现,但您可以使用 ExecuteStreamCommand处理器来实现这一点。

在命令参数中放置要记录的属性,以分隔符分隔${aatr1};${aatr2};${attr3}
在命令路径中输入 bash 脚本的绝对路径:/path/logger.sh

logger.sh :

#!/bin/bash
echo "$1|$2|$3">> /path/attributes.log

attibutres.log 将逐行附加三个属性。确保 bash 脚本可以通过 nifi 执行。

做一个 chmod 777 logger.sh
使用 ExecuteScript 处理器附加到单个文件 :

试试这个 ECMA 脚本:
var flowFile = session.get();
var File = Java.type("java.io.RandomAccessFile");
if (flowFile != null) {
var filename = flowFile.getAttribute("filename");
/// write to file
var filePath = "/path/attributes.log" ;
flowFile = session.putAttribute(flowFile, "filePath", filePath);
var file = new File(filePath, "rws");
file.seek(file.length());
file.write(filename.getBytes());
file.write("\n".getBytes());
file.close();
// Finish by transferring the FlowFile to an output relationship
session.transfer(flowFile, REL_SUCCESS);
}

关于apache-nifi - PutFile 追加文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37530121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com