我们正在尝试使用DataStax驱动程序将CSV文件中的数据插入Cassandra。有哪些方法可以做到这一点?
我们目前使用运行cqlsh从CSV文件加载。
这个问题相当模糊。通常,你应该能够提供代码,并给出一个不太适合你的例子。
话虽如此,我(本周)刚刚为工作中的开发人员讲授了一门关于这个主题的课程。所以我可以给你们举几个简单的例子。
首先,应该构建一个单独的类来处理Cassandra连接对象。我通常用几个构造函数来构建它,这样就可以用几种不同的方式来调用它。但每种方法本质上都调用了一个connect
方法,看起来像这样:
public void connect(String[] nodes, String user, String pwd, String dc) {
QueryOptions qo = new QueryOptions();
qo.setConsistencyLevel(ConsistencyLevel.LOCAL_ONE);
cluster = Cluster.builder()
.addContactPoints(nodes)
.withCredentials(user,pwd)
.withQueryOptions(qo)
.withLoadBalancingPolicy(
new TokenAwarePolicy(
DCAwareRoundRobinPolicy.builder()
.withLocalDc(dc)
.build()
)
)
.build();
session = cluster.connect();
在此基础上,我还编写了一些简单的方法来公开会话
对象的一些功能:
public ResultSet query(String strCQL) {
return session.execute(strCQL);
}
public PreparedStatement prepare(String strCQL) {
return session.prepare(strCQL);
}
public ResultSet query(BoundStatement bStatement) {
return session.execute(bStatement);
}
有了这些方法,我就可以在服务层内调用这些方法了。一个简单的INSERT
(准备一个语句并将值绑定到它)如下所示:
String[] nodes = {"10.6.8.2","10.6.6.4"};
CassandraConnection conn = new CassandraConnection(nodes, "aploetz", "flynnLives", "West-DC");
String userID = "Aaron";
String value = "whatever";
String strINSERT = "INSERT INTO stackoverflow.timestamptest "
+ "(userid, activetime, value) "
+ "VALUES (?,dateof(now()),?)";
PreparedStatement pIStatement = conn.prepare(strINSERT);
BoundStatement bIStatement = new BoundStatement(pIStatement);
bIStatement.bind(userID, value);
conn.query(bIStatement);
此外,DataStaxJava驱动程序在其Git存储库中有一个名为“示例”的文件夹。这里有一个“基本”示例的链接,我建议进一步阅读。
嘿,我是Cassandra的新手,我对Spring jdbc模板很友好。 有人能解释一下这两种方法的区别吗?你能建议哪一种更好用吗? 谢谢。
我正在使用php的Datastax Cassandra驱动程序,希望能够检查是否查询失败,在数据库中没有找到结果。现在,如果查询失败,日志报告如下 如果查询成功,它将返回预期的数据。下面是函数 根据发布的建议,我最后做了以下几点 谢谢你的建议
我从CLI中创建了这样的专栏家族- 现在,我试图使用Datastax Java驱动程序插入到这个列系列中- 但是,如果我试图插入到我在中创建的另一个表中,我可以插入到该表中。 任何帮助都将不胜感激。
我被datastax cassandra驱动程序卡住了,它抛出了这个错误: 我已经用gradle导入了库,我看到org.slf4j: slf4j-api: 1.7.5在“外部库”树中(我正在使用Intellij IDEA)。 你有办法解决这个问题吗?我发现这个帖子接近我的问题(NoClassDefFoundError-datastax Java driver for Cassandra),但没有人
我试图理解Datastax Cassandra驱动程序中的连池,因此我可以更好地在我的Web服务中使用它。 我有留档的1.0版。它说: Java驱动程序异步使用连接,因此可以在同一个连接上同时提交多个请求。 他们通过连接理解什么?当连接到集群时,我们有:一个生成器、一个集群和一个会话。他们中的哪一个是连接? 例如,有一个参数: MaxSimultaneousRecestsPerConnection
问题内容: 在进行大量数据加载时,基于日志数据增加计数器,但是遇到超时异常。我正在使用Datastax 2.0-rc2 Java驱动程序。 这是服务器无法跟上问题的问题(即服务器端配置问题),还是客户端无聊的等待服务器响应的问题?无论哪种方式,我都可以进行简单的配置更改来解决此问题吗? 节点之一在大致发生时报告此情况: 问题答案: 虽然我不了解此问题的根本原因,但我可以通过增加conf / cas