Tag: datastax java driver

使用Datastax API(使用新的二进制协议)升级/读入/读取Cassandra数据库

我已经开始使用Cassandra database 。 我打算使用Datastax API来upsert/read Cassandra database 。 我对这个Datastax API (使用新的二进制协议)完全不Datastax API ,我也找不到很多具有一些适当示例的文档。 create column family profile with key_validation_class = ‘UTF8Type’ and comparator = ‘UTF8Type’ and default_validation_class = ‘UTF8Type’ and column_metadata = [ {column_name : crd, validation_class : ‘DateType’} {column_name : lmd, validation_class : ‘DateType’} {column_name : account, validation_class : ‘UTF8Type’} {column_name : advertising, validation_class […]

使用datastax java驱动程序连接到本地cassandra节点?

我使用datastax java驱动程序3.1.0连接到cassandra集群,我的cassandra集群版本是2.0.10。 下面是我用来连接cassandra集群的单例类。 public class CassUtil { private static final Logger LOGGER = Logger.getInstance(CassUtil.class); private Session session; private Cluster cluster; private static class Holder { private static final CassUtil INSTANCE = new CassUtil(); } public static CassUtil getInstance() { return Holder.INSTANCE; } private CassUtil() { List servers = TestUtils.HOSTNAMES; String username = TestUtils.loadCredentialFile().getProperty(TestUtils.USERNAME); String password […]

如何使用Datastax Java驱动程序的异步/批量写入function

我打算使用Datastax Java驱动程序写入Cassandra ..我主要对Datastax java驱动程序的Batch Writes和Asycnhronousfunction感兴趣,但我无法获得任何可以解释如何在我的下面的代码中包含这些function的教程它使用Datastax Java驱动程序.. /** * Performs an upsert of the specified attributes for the specified id. */ public void upsertAttributes(final String userId, final Map attributes, final String columnFamily) { try { // make a sql here using the above input parameters. String sql = sqlPart1.toString()+sqlPart2.toString(); DatastaxConnection.getInstance(); PreparedStatement prepStatement = DatastaxConnection.getSession().prepare(sql); prepStatement.setConsistencyLevel(ConsistencyLevel.ONE); BoundStatement […]

使用DataStax客户端将参数传递给Cassandra CQL查询

我使用datastax作为连接cassandra的客户端。 我已经通过Java成功连接到cassandra集群/密钥空间/列系列。 我正在尝试,对cassandra专栏家族thriugh java发出一些疑问。 对我来说,它适用于简单的查询 ResultSet results = session.execute(“select * from demodb.customer where id = 1”); 现在我想从用户获取id参数并将其传递给session.execute(); 声明。 我该怎么办呢?

使用Datastax Cassandra驱动程序时重用PreparedStatement?

我目前正在使用Cassandra 2的Datastax Cassandra驱动程序来执行cql3。 这工作正常。 我开始使用PreparedStatement’s : Session session = sessionProvider.getSession(); try { PreparedStatement ps = session.prepare(cql); ResultSet rs = session.execute(ps.bind(objects)); if (irsr != null) { irsr.read(rs); } } 有时我会在日志中收到驱动程序的警告: Re-preparing already prepared query . Please note that preparing the same query more than once is generally an anti-pattern and will likely affect performance. Consider preparing […]

Cassandra集群具有差的插入性能和插入稳定性

我必须每个客户每秒存储大约250个数值,每小时大约900k个数字。 它可能不是一整天的录音(可能每天5-10个小时),但我会根据客户端ID和读取日期对数据进行分区。 最大行长约为22-23M,仍然可以控制。 毫无意义,我的计划看起来像这样: CREATE TABLE measurement ( clientid text, date text, event_time timestamp, value int, PRIMARY KEY ((clientid,date), event_time) ); 密钥空间的复制因子为2,仅用于测试,snitch是GossipingPropertyFileSnitch和NetworkTopologyStrategy 。 我知道复制因子3是更多的生产标准。 接下来,我在公司服务器上创建了一个小型集群,三个裸机虚拟化机器,具有2个CPU x 2核心和16GB RAM以及大量空间。 我和他们在千兆局域网中。 群集基于nodetool运行。 这是我用来测试我的设置的代码: Cluster cluster = Cluster.builder() .addContactPoint(“192.168.1.100”) .addContactPoint(“192.168.1.102”) .build(); Session session = cluster.connect(); DateTime time = DateTime.now(); BlockingQueue queryQueue = new ArrayBlockingQueue(50, true); try { ExecutorService […]