声明!
这就是个小白文,刚接触Nifi,想要自己开发组件的,可以当做借鉴后续还会补充自己认为值得记录的东西
概览
准备工作
案例源码
以简单的向处理的数据中添加常量为例,简单介绍一下Nifi自定义processor开发的过程
//不需要关注上下文
@SideEffectFree
//支持批量
@SupportsBatching
//用于标记这个processor的标签,可以用于搜索
@Tags({
"add", "value", "avro" })
// 声明,对于该processor输入是必须的
@InputRequirement(Requirement.INPUT_REQUIRED)
//针对这个processor的注释
@CapabilityDescription("Add static value to JStream\n向给定的Json字符流中添加指定的变量")
@WritesAttribute(attribute = "mime.type", description = "Sets the mime type to application/avro-binary")
public class AddStaticValue extends AbstractProcessor {
private List<PropertyDescriptor> properties;
private Set<Relationship> relationships;
public static final PropertyDescriptor PARAM_NAME = new PropertyDescriptor.Builder()
// 参数名,输入框前展示的内容
.name("PARAMATER NAME")
// 是否必填
.required(true)
// 添加过滤器
.addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
// 内容添加完成后构建
.build();
public static final PropertyDescriptor PARAM_VALUE = new PropertyDescriptor.Builder()
// 参数名,输入框前展示的内容
.name("PARAMATER VALUE")
// 是否必填
.required(true)
// 添加过滤器
.addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
// 内容添加完成后构建
.build();
public static final PropertyDescriptor CJRWXX = new PropertyDescriptor.Builder()
// 参数名,输入框前展示的内容
.name("cjrwxx")
// 是否必填
.required(