当前位置: 首页 > 知识库问答 >
问题:

Cassandra astyanax sql查询在使用where子句时出错

柴华灿
2023-03-14

在cassandra cqlsh中select with where子句工作良好

CREATE TABLE personalization1 (
                       username text primary key,
                      incidentPage text,
                      timelinePage text,
                      );

insert into personalization1 (username,incidentpage,timelinepage) values ('3cd70b90-d211-11e3-8774-14109fdb7013','3cd70b90-d211-11e3-8774-14109fdb7013','3cd70b90-d211-11e3-8774-14109fdb7013');

SELECT * FROM personalization1 where username='3cd70b90-d211-11e3-8774-14109fdb7013' ;

com.netflix.astyanax.connectionpool.exceptions网站。BadRequestException:BadRequest异常:[host=10.65.240.89(10.65.240.89):9160,latency=237(342),attachs.AbstractOperationImpl.execute的com.netflix.astyanax.recuster.ThriftConverter.ToConnectionPoolException位于com.netflix.astyanax.record.AbstractOperationImpl.execute(AbstractOperationImpl.java:28),位于com.net flix.astyanax.lecord.ThriftSyncConnectionFactoryImpl$ThriftConnection.exe(ThriftSyncConnectionFacctoryImpl.jawa:151),位于sun.reflect.NativeMethodAccessorImpl上com.netflix.astyanax.connectionpool.impl.AbstractHostPartitionConnectionPool.executeWithFailover(Abstract主机分区连接池.java:338)。sun.reflect.NativeMethodAccessorImpl处的invoke0(本机方法)。sun.reflect.DelegatingMethodAccessorImpl处的invoke(未知源)。在java.lang.reflect.Method调用(未知源)。在org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod_java:47)在org.junit.internal.runners.model.ReflectivesCallable.run(Reflective Callable.java:12)在org.junit.runners.model.FrameworkMethod.invokeExplogally(FrameworkMet方法.java:44)在org.runit.internal.runner.statements.InvokeMethod.evaluate(InvokeMathod.java:17)在org.springframework.test.context.junit4.statements.RunBefore.evaluate(RunBefores.java:26)位于org.sprinkframework.dest.context。junit4.statements。RunBeforeTestMethodCallbacks.evaluationorg.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepature.java:72)位于org.spring framework-test.context处org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)位于org.juinit.runners.ParentRunner.runChildren(ParentRunner.java:236)位于org.junit.runner.ParentRunnner.access$000(ParentRunner.java:53)位于org.gunit.runers.ParentionRunner$2.evaluate(ParentRunner.java:229)位于org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluation(RunBefore TestClassCalLBacks.java:61)位于org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfter TestClassCallabacks.java:71)位于org.junit.runners.ParentRunner.run(ParentRunner.java:309)位于org.spring framework/test.context.junit4.SpringJUnit4ClassRunner.runorg.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecute.java:38),位于org.eclips.jdt.intral.junit.internal.runit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467),位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.mainorg.apache.cassandra.recit.cassandra$Client.recv_execute_cql_query(cassandra.java:1525),位于com.netflix.astyanax.recit.StriftCqlQuery$1.internExecute(Cassandera.java:1511),位于com.netflix.astyanax.refict.AbstractThriftCqlQuery$1.internalExecute(AbstractThriftCqlQuery.java:43),位于com.netflix.astynax.refrict.Abstract OperationImpl.execute(Abstract操作Impl.java:60)

共有1个答案

丁恩
2023-03-14

我从堆栈跟踪中注意到正在使用execute_cql_query函数,而不是execute_cql3_query,因此正在运行的查询就像在cqlsh-2执行的一样,这很可能是问题所在。从cql2的角度来看,主键的名称可能是“键”。

 类似资料:
  • 问题内容: 我有以下只需1秒即可执行的sql查询: 但是我需要一个结果集来获取比率大于0的结果。因此,当我将查询更改为此时,需要7分钟的时间来执行: 为什么这会使查询时间从1秒增加到7分钟?由于b表很大,因此我什至尝试使用CTE,但这也没有提高性能。我认为使用CTE可以从中筛选出较小的一组值,因此应该更快一些,但这无济于事: 我不能包括执行计划,因为除了查询之外,我没有对数据库的权限。 问题答案:

  • 问题内容: 在命名查询的where子句中可能有一个like?我正在尝试执行以下操作,但出现异常 我尝试像在普通SQL中那样添加%,但是得到了异常编译。 任何指针,不胜感激! 谢谢 问题答案: 您不能在中添加%,但可以在为其分配参数的值中包含它。 如:

  • 问题内容: 谁能给我一些关于如何将这种子查询放入提示?(我正在使用 JPA 2.0 - Hibernate 4.x ) -第二个选择将始终获得单个结果或null。 问题答案: 尝试类似以下示例的操作来创建子查询: 请注意,由于附近缺少IDE,因此该代码尚未经过测试。

  • 问题内容: 这对我来说是一个常见的SQL查询: 有什么办法可以避免拥有两个几乎相同的子查询?该查询是一个明显的简化,但是性能会受到影响,并且查询的内容不必要地凌乱。 问题答案: 不幸的是,Informix不支持UPDATE语句中的FROM子句。解决方法,您将获得更好的结果(性能),方法是将UPDATE更改为MERGE语句。 仅当您的数据库为11.50或更高版本时,此方法才有效 查看IBM Info

  • 问题内容: 是否可以执行这样的mysql查询? 我需要在一般的“ where”子句中使用子查询的结果。 问题答案: 您可以将其包装在子查询中,如下所示:

  • 问题内容: 我最近才刚开始使用SQLAlchemy,但仍无法解决某些概念。 归结为基本元素,我有两个这样的表(通过Flask-SQLAlchemy): 我将如何查询用户列表及其最新帖子(不包括无帖子的用户)。如果我使用的是SQL,则可以执行以下操作: 因此,我确切地知道“期望的” SQL可以达到我想要的效果,但是不知道如何在SQLAlchemy中“正确地”表达它。 编辑:如果很重要,我使用的是SQ