NiFi:将数据从Kafka插入Cassandra的最佳流程?

时间:2018-12-12 10:03:09

标签: apache-nifi

我花了2天的时间进行研究,现在我需要你们的帮助。先感谢您。

我有以下流程: 1)ConsumeKafka(消息为JSON格式) 2)评估JsonPath 3)UpdateAttributes 4)AttributesToJson

以上所有流程均有效,但其余流程均无效: 5)PutCassandraRecord(我需要有关如何配置此处理器的帮助。我知道我的Cassandra服务器,端口,键空间,表名,记录读取器是JsonPathReader)。还有什么??? 6)添加了控制器服务-JsonPathReader(在这里我需要有关如何配置此记录读取器的帮助)。 7)我在以下附件中遇到异常。在哪里以及如何获取或配置Schema Registry? enter image description here

我检查了以下问题并回答:Apache Nifi/Cassandra - how to load CSV into Cassandra table

如果我的流程有误,请纠正我。谢谢。

致谢, 是的

1 个答案:

答案 0 :(得分:1)

multiple ways个我们可以配置记录读写器控制器服务

我将尝试解释以下两个架构访问策略

  • 使用“架构名称”属性
  • 使用“架构文本”属性

使用SchemaText属性:

在这种访问策略中,处理器将在VariableRegistry / FlowfileAttributes中查找avro.schema属性(或我们可以给schema in the property value赋值。

示例:

我给了模式文本属性值作为我的Avro模式 enter image description here

使用“架构名称”属性:

enter image description here

在此策略中,处理器检查Schema Name属性值${valor.vaengine}(这是一个属性名称),因此我们需要将此属性与流文件相关联。

>

然后,控制器服务使用${valor.vaengine}的值使用该控制器服务已使用的AvroSchemaRegistry中的适当架构。

在您的情况下,您的流文件没有${valor.vaengine}属性,要将此属性添加到流文件中,请使用UpdateAttribute处理器将新属性添加为

valor.vaengine

<schema_name_in_avroschemaregistry>

使用this模板获取有关Record Reader/writer控制器服务的配置/使用的更多详细信息


您正在为此控制器服务使用JsonPathReader控制器服务

我们需要添加至少一个用户定义的属性以启用控制器服务,例如将属性名称命名为 id ,将值命名为$.id