0

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

在此处输入图像描述

4

1 回答 1

3

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

尝试以下操作:

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

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

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

于 2018-01-09T14:05:14.520 回答