我正在尝试从camel-context查询Cassandra Db。以下是路线:
from __future__ import print_function
f = lambda x: print(x) if x%2 == 0 else False
我面临以下例外:
com.datastax.driver.core.exceptions.InvalidQueryException:无效的绑定变量数量 com.datastax.driver.core.exceptions.InvalidQueryException.copy(InvalidQueryException.java
有人能让我知道Cassandra camel组件的确切语法吗?
答案 0 :(得分:0)
<to uri="cql:0.0.0.0:9042/keyspace_name?cql=Select * from table_name where primary_key_column=?"/>
您可以根据您的设置替换IP和端口(但默认端口为9042)。您还可以根据数据结构设置keyspace_name,table_name和primary_key_column。
答案 1 :(得分:0)
今天,我为此受到了严重打击,正如Alexis所说,任何解决方法都将问题从“无效数量的绑定变量”更改为“ Prepared语句只有0个变量”。
我找到的解决方案是:
.split(body()).streaming()
.doTry()
.setHeader("CamelCqlQuery", simple("${body}"))
.setBody().simple("${null}")
.toD("cql:"+cassandra_ips+"/"+cassandra_keyspace)
在我的情况下,我有一个拆分器,因为我正在运行批处理。我需要主体中的语句列表以对其进行迭代,所以我不能只是将其设置为空。