问题标签 [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.

0 投票
2 回答
1516 浏览

cassandra - 能够写入特定的 cassandra 节点

是否有可能使用 datastax 驱动程序写入特定节点?

例如,我在数据中心 1 中有三个节点,在数据中心 2 中有三个节点。

现存的

如果我使用其中任何一个作为种子来构建集群,则 datastax java 驱动程序将检测到所有节点。因此,在这种情况下,如果我使用驱动程序插入数据,它将自动选择其中一个节点并作为协调器继续处理(最好是本地数据中心)

要求

我想要一种方法来联系数据中心 2 中的任何节点并将协调员作业移交给数据中心 2 中的一个节点。

为什么我需要这个

我正在尝试单独使用数据中心 2 的触发功能。由于触发器由 co-ordinator 负责,我希望从数据中心 2 中选择一个 co-ordinator,以便数据中心 1 不必执行此操作。

0 投票
2 回答
7625 浏览

cassandra - 如何提高 cassandra 的写入性能?

我有一个名为 Emails 的列族,我将邮件保存到这个 CF 中,写 5000 封邮件需要 100 多秒。

我正在使用 i3 处理器,8gb 内存。我的数据中心有 6 个节点,复制因子 = 2。

我们存储在 Cassandra 中的数据大小会影响性能吗?影响写入性能的所有因素是什么?如何提高性能?

提前致谢..

0 投票
3 回答
6162 浏览

cassandra - Datastax 驱动程序限制选项

我使用 datastax java 驱动程序构造了一个选择查询。我使用限制选项设置限制。但我看到另一个可以设置的属性

setFetchSize(整数大小)

DEFAULT_FETCH_SIZE- 5000 根据文档。

http://www.datastax.com/drivers/java/2.0/com/datastax/driver/core/QueryOptions.html#DEFAULT_FETCH_SIZE

这是否意味着如果我一行中有大约 10000 列,如果我有一个限制为 3 的查询运行,它将始终获取指定的默认值 - 5000 行,然后限制最后 3 行?

我认为限制查询在像这样使用时默认单独获取最后 3 个值。有人可以澄清一下吗?

0 投票
4 回答
15148 浏览

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

我目前正在使用 Cassandra 2 的 Datastax Cassandra 驱动程序来执行 cql3。这可以正常工作。我开始使用PreparedStatement's

有时我会在日志中收到来自驱动程序的警告:

这个警告是有道理的,但我不确定我应该如何重用PreparedStatement?

PreparedStatement我应该在构造函数/初始化方法中创建所有我的而不是简单地使用它们吗?

但是当多个线程同时使用相同PreparedStatement的(特别是调用PreparedStatement.bind()绑定对象)时,这是否顺利

0 投票
1 回答
375 浏览

clojure - 使用 DataStax 1.0.5 java 驱动程序和 Cassaforte 从 Cassandra 1.2 读取字符串化 json 对象的映射时出现无效的序列化值错误

我正在使用 cassaforte 1.3.0-beta9、Cassandra 1.2 (DataStax) 和 com.datastax.cassandra/cassandra-driver-core 1.0.5(因为 2.0 不适用于 Cassandra 1.2)。我有一个具有以下架构的表:

这是存储在一行中的示例:

当我尝试阅读该devices列时,出现以下错误:

我可以使用 cqlsh 毫无问题地读取设备列(如上所示)。地图中存储的值是字符串化的 json 对象。

这是示例工作流程:

我使用原始 CQL 和 Cassaforte 尝试了相同的工作流程,结果完全相同:

任何有关如何将 json 对象存储在 Cassandra 的地图集合中的帮助和/或建议将不胜感激。

0 投票
2 回答
406 浏览

cassandra - 准备好的查询中的 cql 二进制协议和命名绑定变量

想象一下我有一个简单的 CQL 表

在很多情况下,人们想要利用 Cassandra 的无模式本质,只设置一些值并执行,例如,

在编写应用程序以写入 Cassandra 集群中的此类 CQL 表时,出于性能原因,立即需要使用准备好的语句来执行此操作。

这由不同的驱动程序以不同的方式处理。例如,Java 驱动程序(借助对 CQL 二进制协议的修改)引入了使用命名绑定变量的机会。非常实用:CASSANDRA-6033

我想知道的是,从二进制协议的角度来看,仅在准备好的查询中为绑定变量的子集提供值的正确方法是什么?

实际上,通过构建值列表将值提供给准备好的查询,如中所述

请注意 [bytes] 的定义

从这个描述我得到以下信息:

  1. QUERY 中的“值”无法为特定列提供值。它只是一个有序的值列表。我猜 [short] 必须对应于准备好的查询中绑定变量的确切数量?
  2. 所有值,无论它们是什么类型,都表示为 [bytes]。如果这是真的,对 [bytes] 值的任何解释都留给服务器(转换为 int、short、text ......)?

假设我没问题,我想知道是否可以使用“null”[bytes] 值来“跳过”绑定变量而不为其分配值。

我尝试了这个并修补了 cpp 驱动程序(这是我感兴趣的)。查询被执行,但是当我从 clqsh 执行 SELECT 时,我没有看到空字段的“null”字符串表示,所以我想知道这是否是一种黑客攻击,由于某些原因不仅仅是崩溃或预期的方式来做到这一点.

很抱歉,但我真的不认为我可以下载 java 驱动程序并查看命名绑定变量是如何实现的!:(

---------- 编辑 - 已解决 ----------

我的假设是正确的,现在支持跳过准备好的查询中的字段已添加到 cpp 驱动程序(参见此处),方法是使用 null [字节值]。

0 投票
2 回答
8452 浏览

cassandra - Cassandra:插入timeuuid错误

我有下表

我正在运行以下查询:

我收到以下错误:

我正在使用 cassandra 1.2.2。

0 投票
1 回答
236 浏览

java - 使用本机协议为 Cassandra 自定义 map-reduce 输入格式化程序

我正在使用 Apache Cassandra (1.2) 和 Apache Map-Reduce 来处理一些数据。目前我CqlPagingInputFormatorg.apache.cassandra.hadoop.cql3使用。此提供程序使用 Thrift 提取数据。Thrift 似乎相当慢(300M 记录,在 3 节点集群中需要 8 多个小时才能读取),并且由于存在原生二进制协议,我想知道是否有人使用过它。

我对任何其他优化和配置调整不感兴趣 - 这是一个单独的问题。

我的问题是

  1. 是否有直接使用 Cassandra 本机协议的 map-reduce 输入格式化程序的实现?

  2. 如果没有,我自己编写的第一步是什么,例如使用 DataStax 驱动程序?

0 投票
1 回答
1652 浏览

java - Cassandra DataStax 的最大插入大小是多少

当我尝试使用 Java DataStax 驱动程序发送大地图时,我得到

我在这里存储一个地图,其中一个值为 aprox。100k 个字符。

这些插入的大小似乎有限制,但我无法找出限制是什么,它是否记录在某处?

是否可配置?

0 投票
1 回答
820 浏览

java - Cassandra-all 依赖失败

我已将 cassandra-all 包含在我的 gradle 依赖项列表中。就这个:

但是当我尝试构建时,它失败了,出现以下异常:

我看到 Maven 存储库中并没有真正存在依赖项。以为我会去该站点,手动下载jar并将其放入maven本地存储库。但我找不到 com.github.stephenc:jamm:0.2.6 jar。有没有其他人面临同样的问题?请建议如何前进。