无法使用Nifi将mysql表数据传输到cassandra

时间:2018-01-09 13:39:52

标签: cassandra apache-nifi kylo

我尝试使用nifi将mysql表数据迁移到cassandra。附上我在nifi中尝试过的截图,因为我在putCassandraQl命令中,因为它抛出了附加屏幕截图中提到的错误。请帮助我,因为我需要添加更多步骤。

enter image description here

1 个答案:

答案 0 :(得分:3)

PutCassandraQL要求流文件包含一个CQL语句,您可以在其中传递从QueryDatabaseTable获取的Avro记录,或者在尝试使用ReplaceText修改内容之后。

尝试以下方法:

QDT - > SplitAvro - > ConvertAvroToJSON - > ConvertJSONToSQL - > ReplaceText(将SQL更改为CQL) - > PutCassandraQL

编辑:PutCassandraQL期望cql.args.N.typecql.args.N.value形式的属性中的参数,其中N是对应于要插入的值的位置的正整数。但是,ConvertJSONToSQL输出sql.args.N.typesql.args.N.value形式的属性。这意味着您需要使用UpdateAttribute或ExecuteScript更改它们。从NiFi 1.5.0开始(在撰写本文时尚未发布)通过NIFI-4684,您将能够指定ConvertJSONToSQL中出现的属性的前缀,因此您可以将该属性设置为{{ 1}}。

如果ConvertJSONToSQL生成的内容是有效的CQL,则可能不需要ReplaceText。如果不是,则需要使用ReplaceText将SQL语句更改为有效的CQL。