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

Not able to transfer mysql table data to cassandra using Nifi

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

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

尝试以下操作:

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

EDIT: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 的属性的前缀,因此您可以设置属性 到 cql.

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