我创建了一个表,如下所示:
CREATE TABLE my_table (
date text,
id text,
time timestamp,
value text,
PRIMARY KEY (id));
CREATE INDEX recordings_date_ci ON recordings (date);
Run Code Online (Sandbox Code Playgroud)
我可以使用以下Node代码简单地向表中添加新行:
const cassandra = require('cassandra-driver');
const client = new cassandra.Client({ contactPoints: ['localhost'], keyspace: 'my_keyspace'});
const query = 'INSERT INTO my_table (date, id, time, url) VALUES (?, ?, ?, ?)';
client.execute(query, ['20160901', '0000000000', '2016-09-01 00:00:00+0000', 'random url'], function(err, result) {
if (err){
console.log(err);
}
console.log('Insert row ended:' + result);
});
Run Code Online (Sandbox Code Playgroud)
但是,出现以下错误:
'错误:日期的预期长度为8或0个字节(24)
当我将时间戳更改为epoc时间时:
client.execute(query, ['20160901', '0000000000', 1472688000, 'random url'] …Run Code Online (Sandbox Code Playgroud) 我有一个带有 IN 参数的 Cassandra SELECT 查询,我想通过 Node 驱动程序运行它,但无法弄清楚语法。
在 cqlsh 控制台上,我可以运行这个选择并得到正确的结果:
SELECT * FROM sourcedata WHERE company_id = 4 AND item_id in (ac943b6f-0143-0e1f-5282-2d39209f3a7a,bff421a0-c465-0434-8806-f128612b6850,877ddb6d-a164-1152-da77-1ec4c4468258);
Run Code Online (Sandbox Code Playgroud)
但是,尝试使用 Cassandra 节点驱动程序使用一组 ID 运行此查询时,根据格式,我会收到各种错误。这是我尝试过的:
client.execute("SELECT * FROM sourcedata WHERE company_id = ? AND item_id in (?)", [id, item_ids], function(err, rs) { ...
Run Code Online (Sandbox Code Playgroud)
错误是:
ResponseError: 类型为 uuid 的 item_id 的列表文字无效
有了这个:
client.execute("SELECT * FROM sourcedata WHERE company_id = ? AND item_id in (?)", [id, item_ids], function(err, rs) { ...
Run Code Online (Sandbox Code Playgroud)
错误是:
ResponseError: line 1:72 在输入 '[' (...WHERE company_id …
我正在编写测试来检查cassandra键空间和表的元数据信息.我还想检查哪个节点已启动或哪个节点已关闭.我该怎么做?