问题标签 [datastax-java-driver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cassandra - Cassandra Datastax 驱动程序准备好的语句只评估“now()”一次
我正在使用 Datastax java 驱动程序的 Cassandra 1.2.4 和 1.0.0(通过 Clojure 的 Alia,但我认为这不重要)。如果我准备一个带有 timeuuid 列的语句,并将'now()' 放入 timeuuid 的值中,则 now() 在编译准备好的语句时被评估一次,然后再也不会被评估。
想象一下这个准备好的语句:“插入 some_table (id,time) 值 (?,now())”
准备好之后,每次执行时, now() 将始终相同,无论何时执行。
您可以使用 min/max timeuuid 函数来解决这个问题,但是您将失去 timeuuid 值唯一性的所有好处。实际上,我认为这意味着我无法使用准备好的语句插入 timeuuid。
我错过了什么吗?还是缺少功能?
java - 如何建立 Cassandra 连接
我想用 java 类与 Cassandra 建立连接。但它不起作用。这是我的代码..
这是错误日志..
构建失败
总时间:0.883s 完成时间:Wed Jun 05 15:54:02 IST 2013
最终内存:4M/15M
无法在项目 CassandraConnection 上执行目标:无法解析项目 com.mycompany:CassandraConnection:jar:1.0-SNAPSHOT 的依赖项:无法解析以下工件:com.datastax.cassandra:cassandra-driver-parent:jar:1.0。 0, org.specs2:scalaz-effect_2.11.0-SNAPSHOT:jar:7.0.1-SNAPSHOT, org.scalaz:scalaz-effect_2.9.3:jar:7.1.0-SNAPSHOT: 找不到com.datastax.cassandra:cassandra -driver-parent:jar:1.0.0 在http://repo.maven.apache.org/maven2被缓存在本地仓库中,直到中央的更新间隔已经过去或强制更新才会重新尝试解析-> [帮助1]
要查看错误的完整堆栈跟踪,请使用 -e 开关重新运行 Maven。使用 -X 开关重新运行 Maven 以启用完整的调试日志记录。
有关错误和可能的解决方案的更多信息,请阅读以下文章:[帮助 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
cassandra - Datastax PreparedStatements 的工作原理
当我们创建 PreparedStatement 对象时,它是否缓存在服务器端?与 Oracle 驱动程序中的 PreparedStatement 相比有何不同?如果重复使用准备好的语句,将哪些数据发送到 Cassandra 服务器,仅参数值?
据我了解,java 驱动程序中的一个 Session 对象拥有到集群中多个节点的多个连接。如果我们在多个线程中的应用程序中重用相同的预处理语句,是否会使我们只使用一个连接到一个 Cassandra?我猜准备语句只在一个连接上完成......当每次执行调用更新路由键时会发生什么?
使用准备好的语句有什么好处?
谢谢
java - Datastax Java Driver 是否容易受到注入攻击?
如果使用纯文本 CQL,DataStax Java 驱动程序是否容易受到 CQL 注入攻击?使用 QueryBuilder 会有帮助吗?
scala - 使用 Scala 中的 Datastax Cassandra 驱动程序
我想探索使用来自 scala 的 Datastax Cassandra CQL3 驱动程序,但我想我可能已经遇到了第一个障碍。
在Javadoc中用于创建 Cluster 对象的方法中有一个重载方法,addContactPoints
该方法将 String 序列或 java.net.InetAddress 序列作为参数。有没有办法以惯用的 Scala 方式对此进行建模,以便我可以尝试对输入参数的类型和数量进行模式匹配以调用正确的方法。
和
cp回报
然而cps给出
cassandra - Cassandra datastax java驱动程序,无法连接到服务器“没有为流设置处理程序”
如果我创建一个这样的新项目。
此代码有效。
但是如果我从这个项目中取出所有的罐子并将罐子迁移到我自己的项目中。上面的代码不起作用,它说:
java - 使用 DataStax 客户端将参数传递给 Cassandra CQL 查询
我使用 datastax 作为连接到 cassandra 的客户端。我已通过 Java 成功连接到 cassandra 集群/键空间/列族。我正在尝试通过 java 对 cassandra 列族进行一些查询。对我来说,它适用于简单的查询,例如
现在我想从用户那里获取 id 参数并将其传递给session.execute(); 陈述。我应该怎么做?
java - 告诉 Datastax Java Cassandra 驱动程序超时集群连接
您如何告诉 Datastax Java Cassandra 驱动程序在尝试连接到您的集群时超时?
我对主机可访问但 Cassandra 端口被阻止或 Cassandra 守护程序未运行的情况特别感兴趣。我正在编写一个命令行客户端,如果它无法在合理的时间内连接,它应该退出并报告合适的错误消息。目前,如果接触点可达,司机似乎会永远等待接触点的响应。
也就是说,如果驱动程序在给定的最长时间内无法与任何接触点的 Cassandra 守护程序通信,我想Cluster.build()
抛出一个。NoHostAvailableException
- 创建我自己的
RetryPolicy
不起作用:那是为了重试查询,我希望在我们准备好运行查询之前应用超时。 - 创建我自己的
ReconnectinoPolicy
最初看起来很有希望,但是接口的合同没有提供任何方法来表明“认为这个节点永远死了”
java - Cassandra 1.2.6 java datastax驱动程序异常没有为流0设置处理程序
我从昨天开始在最新版本的 cassandra 1.2.6 上使用 datastax java 驱动程序...我交叉检查了 start_native_transport: true 在 yaml 中设置...我的 cassandra 也配置了 rpc_address 和 listen_adress 作为计算机主机名...。并以相同的名称连接到客户端....但它显示此消息,然后挂在 .build(); ...
我还交叉检查了我所有的罐子都是按照 http://www.datastax.com/documentation/developer/java-driver/1.0/java-driver/reference/settingUpJavaProgEnv_r.html
我正在使用JDK 1.6 ...
这是我收到的消息:
2013 年 7 月 17 日上午 11:20:37 com.datastax.driver.core.Connection$Dispatcher messageReceived SEVERE: [mlhwlt08/192.168.2.111-1] 没有为流 0 设置处理程序(这是一个错误,无论是这个驱动程序还是Cassandra,你应该报告它)。收到的消息是 ROWS [peer(system, peers), org.apache.cassandra.db.marshal.InetAddressType][data_center(system, peers), org.apache.cassandra.db.marshal.UTF8Type][rack(system, peers) ), org.apache.cassandra.db.marshal.UTF8Type][tokens(system, peers), org.apache.cassandra.db.marshal.SetType(org.apache.cassandra.db.marshal.UTF8Type)][rpc_address(系统,同行),org.apache.cassandra.db.marshal.InetAddressType]
| 192.168.2.109 | 数据中心1 | 机架1 | 000100142d37353634343931333331313737343033343435 | 192.168.2.109
| 192.168.2.108 | 数据中心1 | 机架1 | 0001000130 | 192.168.2.108
请帮我解决这个问题...
问题已解决,请阅读以下内容:
我的问题解决了..现在我可以使用 java 客户端创建表并在其中插入值...
启用 TRACE 模式对我来说没什么问题,因为我从类路径中删除了所有 slf4j jar 并下载了最新的,这样就可以看到调试日志......
通过从我的类路径中删除此 jar 解决了实际问题: google-collect-1.0-rc1.jar 并添加这两个 jar jackson-core-asl-1.9.2.jar, jackson-mapper-asl-1.9.2.jar
根本原因是:com/google/common/collect/ImmutableSet 这存在于两个 jar 中 google-collect-1.0-rc1.jar 和 guava-14.0.1.jar ......所以删除第一个 jar 解决了它......
我希望这将帮助那些将在没有 maven 的情况下使用 datatstax java 驱动程序的人..
谢谢大家的帮助...
maven - 解决 org.glassfish.deployment.common.DeploymentException:CDI 部署失败 - Cassandra Datastax Java 驱动程序、Maven、Glassfish 4
我只是将这个作为解决方案发布给那些在通过 Maven 部署在 Glassfish 4 上使用 Datastax 的 Java 驱动程序时遇到错误的人。
正如在 Datastax 的网站上所写,驱动程序的依赖项是:
不幸的是,如果你通过 Maven 将它部署到 Glassfish 4,它会抛出 org.glassfish.deployment.common.DeploymentException: CDI deployment failure... 就像下面这样:
因此,要解决这个问题,只需在部署到 Glassfish 4 时将 xml 部分更改为:
希望能帮助到你。