Apache nifi 在apachenifi中使用AvroSchemaRegistry

Apache nifi 在apachenifi中使用AvroSchemaRegistry,apache-nifi,Apache Nifi,我有5种不同的CSVReader控制器服务。除了架构文本(因为标题不同)和1CSVRecordSetWriter,它们的配置是相同的 我只想留下一个CSVReader并动态设置schema text。我读过有关AvroSchemaRegistry的文章,但我不清楚如何使用它 我是否应该创建5个不同的AvroSchemaRegistry控制器,其中包含两个属性:name和value? F.e.我想提出以下模式: { "type": "record",

我有5种不同的
CSVReader
控制器服务。除了
架构文本
(因为标题不同)和1
CSVRecordSetWriter
,它们的配置是相同的

我只想留下一个
CSVReader
并动态设置
schema text
。我读过有关AvroSchemaRegistry的文章,但我不清楚如何使用它

我是否应该创建5个不同的
AvroSchemaRegistry
控制器,其中包含两个属性:
name
value
? F.e.我想提出以下模式:

{
    "type": "record",
    "name": "campaigns",
    "namespace": "common",
    "fields": [
        {"name": "campaign_name", "type": "string"},
        {"name": "campaign_id", "type": "long"},
        {"name": "date", "type" : {"type": "int", "logicalType" : "date"}}
    ]
}
我应该创建
AvroSchemaRegistry

  • 名称
    =活动
  • =上面的完整代码
对于另一个模式,我应该使用另一个属性创建另一个
avroschemaregistry
控制器
name
value


之后,如何配置
CSVReader
CSVRecordSetWriter
来使用这些模式?最后,我应该如何处理流文件?添加其他属性?什么类型?

像这样配置您的流程(根据您的要求进行更改)

  • UpdateAttribute
    用于派生/硬编码流文件特定架构的配置-
  • ValidateRecord
    配置以使用通用csv读取器并动态传递架构-
  • CSVReader
    控制器服务使用动态传递的架构并设置架构访问策略-

  • 如果您希望使用NiFi支持的架构注册表,请将所有架构放在注册表中,并为记录读取器/写入器设置
    schema.name
    access strategy
    属性,以便从注册表访问架构,但首先您需要在控制器服务中添加/配置架构注册表提供程序。

    我会尝试!请您也为控制器服务中的模式注册表提供简单的配置好吗?我不知道它应该是什么样子。