Articles of cassandra

在cassandra中select组合types键

所以我定义了一个使用复合ID作为行键的列族。 所以说复合键是CompositeType(LongType,LongType) 。 所以我testing了这个types的存储项目,并且工作正常,而且当我知道完整的密钥时, SELECT按预期工作。 但让我们说,我想所有的键都有0作为第一个元素,任何作为第二个。 到目前为止,我可以看到执行此查询的唯一方法如下所示: 如果我所有的键都是0:*那么我会做一个CQL查询的key >= 0:0 AND key < 1:0 ,只要有一个顺序保存分区。 我的问题是: 1)是这个奇怪的语法只是因为我使用一个CQL驱动程序(除了节俭之外,只有nodejs的选项) 2)这种types的查询有没有效率低下? 基本上我使用复合键而不是超级列,因为这些在CQL中不受支持。 在代码中处理这个逻辑没有问题,只要没有像这样使用它的限制。

Cassandra – NodeJS – 检索地图types值时发出

我在我的node-js项目中使用helenus来获取/设置cassandra的值。 我在表中有一个MapType字段,但是当我从表中检索值时,我得到一个空的键值集。 下面是我的表的架构 CREATE TABLE datapoints ( id uuid PRIMARY KEY, created_at timestamp, properties map<text,text> ); 我使用下面的查询插入了来自cql的值 INSERT INTO datapoints (id, properties) VALUES (24053e20-63e9-11e3-8d81-0002a5d5c51b, { 'fruit' : 'apple', 'band' : 'Beatles' }); 以下是我的nodejs代码: var helenus = require('/usr/local/lib/node_modules/helenus') var pool = new helenus.ConnectionPool({ hosts : ['localhost:9160'], keyspace : 'mykeyspace', timeout : 3000 }); pool.connect(function(err, keyspace){ if(err){ […]

卡桑德拉请求从一个节点下来的数据?

设置:2个节点,Ec2Snitch 1节点UP 54.1xx.1xx.1xx 1节点向下54.1xx.2xx.1xx [故意] Keyspace NetworkTopology复制因子2(两个节点都有数据) 现在我testing读取一致性级别一。 我得到“所有主机(S)尝试查询失败。第一个主机尝试,54.1xx.2xx.1xx:主机认为是closures,看到innerErrors”。 获取这个closures的节点。 为什么我得到这个exception? 不应该Cassandra服务所有请求从节点是自动升起? [我期待着卡桑德拉来处理它。] 或者我们应该处理一个DN(Down Normal)的节点,我该如何处理? 如果我手动使向下节点向上,我得到所有的回应,否则我得到上述错误的总前四分之一请求。

如何确保非规范化的数据插入cassandra?

在卡桑德拉我有4个表具有几乎相同的(重复)数据。 如何确保将数据插入到4个不同的表中? 我正在为我的应用程序服务器使用NodeJS。

datastax Node.js驱动程序中的“无法为条件更新提供自定义时间戳”

我尝试使用datastax Node.js驱动程序(cassandra-driver@2.2.2)将logging插入到cassandra-2.2.3中。 大部分的cql操作都能正常工作,但是下面的cql语句不能正确执行。 驱动程序继续响应“无法提供有条件更新的自定义时间戳”? var current = new Date(); var current_timestamp = current.getTime(); var userId = uuid.random(); var cqlStatement = "INSERT INTO user_credentials(email, password, userid) VALUES(?, ?, ?) IF NOT EXISTS USING TIMESTAMP ?"; var cqlParams = [user.emailAddress, user.password, userId, current_timestamp]; cassandra_client.execute(cqlStatment, cqlParams, { prepare: true }, function (err, result) { if (err) { var […]

在cassandra中使用node.js将UUID写为文本

我有一个cassandra表user_id这是types文本的列。 我试图传递生成的uuid作为string打包写入表中。 当我这样做时,我得到一个错误: Not a valid text value, expected String obtained uuid 当我传递参数时,我尝试使用提示: {hint: 'String', value: data['userId']} 但是我仍然得到一个错误: [TypeError: Not a valid text value, expected String obtained { hint: 'String', value: 'e738922c-2277-45fd-aa94-7f5e7a189084' }] 我正在使用cassandra版本:2.2.4 任何想法如何解决这个问题?

用于cassandra节点js驱动程序的executeAsync方法

在用于java的cassandra驱动程序中,有一个像executeAsync()这样的方法,它可以asynchronous地从Cassandra读取数据。 试图find是否有一个方法在节点js中执行相同的任务

从Node.js服务器查询Spark SQL

我目前使用npm的cassandra-driver从Node.js服务器查询我的Cassandra数据库。 由于我想能够写更复杂的查询,我想使用Spark SQL而不是CQL。 有没有什么办法来创build一个RESTful API(或其他),以便我可以像我目前使用CQL一样使用Spark SQL? 换句话说,我想能够从我的Node.js服务器发送一个Spark SQL查询到另一个服务器,并得到一个结果。 有没有办法做到这一点? 我一直在寻找解决这个问题的一段时间,还没有find任何东西。 编辑:我能够查询我的数据库从Spark壳Scala和Spark SQL,所以这一点工作。 我只需要以某种方式连接Spark和我的Node.js服务器。

“中止”cassandra结果的阅读

我有一个cql,我需要执行和使用node.js驱动程序stream结果。 但是,如果满足某个条件,我需要中止stream式传输。 像这样的东西: client.eachRow(cql, [], { autoPage: true }, function(n, row) { if(applySomeFilterLogic(row) === 'some val') { //abort streaming } else { rows.push(row); } }, function(err, result) { logger.error("server responded with error : %s", err); }); 数据不能用过滤逻辑进行预处理,并保留在cassandra中。 它需要在运行时计算,基于一些数据持久化时不知道的标准。 有没有办法通过node.js驱动程序或cassandra来优雅地实现这一点?

为我的节点应用程序select正确的数据库

我是新的节点js&我需要build议为我的节点应用程序select数据库。 比方说,我的名单上有几个游戏(以千计)。 数组应该看起来像这样: { "Football": { "John": [{ "age": "1", "weight": "2", "height": "3", }], "Smith": [{ "age": "11", "weight": "22", "height": "33", }], … }, "Golf": { "Ricky": [{ "age": "4", "weight": "5", "height": "6", }], "Jonathan": [{ "age": "44", "weight": "55", "height": "66", }], … }, … /* Thousand more to go */ […]