【发布时间】:2018-01-10 02:09:22
【问题描述】:
我正在尝试使用 nifi 将 mysql 表数据迁移到 cassandra。附上我在 nifi 中尝试过的屏幕截图,因为我坚持 putCassandraQl 命令,因为它抛出了附加屏幕截图中提到的错误。请帮助我,因为我需要添加更多步骤。
【问题讨论】:
标签: cassandra apache-nifi kylo
我正在尝试使用 nifi 将 mysql 表数据迁移到 cassandra。附上我在 nifi 中尝试过的屏幕截图,因为我坚持 putCassandraQl 命令,因为它抛出了附加屏幕截图中提到的错误。请帮助我,因为我需要添加更多步骤。
【问题讨论】:
标签: cassandra apache-nifi kylo
PutCassandraQL 要求流文件包含 CQL 语句,您在其中传递从 QueryDatabaseTable 获取的 Avro 记录,或者在尝试使用 ReplaceText 修改内容之后。
尝试以下方法:
QDT -> SplitAvro -> ConvertAvroToJSON -> ConvertJSONToSQL -> ReplaceText(将 SQL 更改为 CQL)-> PutCassandraQL
编辑:PutCassandraQL 需要cql.args.N.type 和cql.args.N.value 形式的属性参数,其中N 是一个正整数,对应于要插入的值的位置。但是 ConvertJSONToSQL 输出 sql.args.N.type 和 sql.args.N.value 形式的属性。这意味着您需要使用 UpdateAttribute 或 ExecuteScript 更改它们。从 NiFi 1.5.0(在撰写本文时尚未发布)通过NIFI-4684,您将能够指定来自 ConvertJSONToSQL 的属性的前缀,因此您可以将该属性设置为 cql。
如果 ConvertJSONToSQL 生成的内容是有效的 CQL,您可能不需要 ReplaceText。如果不是,则需要使用 ReplaceText 将 SQL 语句更改为有效的 CQL。
【讨论】: