Tag: cassandra

将JSON模式转换为CQL(Cassandra)模式

我想将一个JSON对象,如下所示,转换成一个Cassandra模式/表。 举个例子,像这样的东西: { "type": "object", "properties": { "name": { "type": "string" }, "age": { "type": "integer" } } } 像这样的东西: CREATE TABLE IF NOT EXISTS people ( name text PRIMARY KEY, age int); 在Node.js中,使用Datastax Cassandra驱动程序 。 所以本质上:使用Node.js我想创build基于JSON模式的Cassandra表(不必手动创build表,但有节点parsingJSON对象并构build用于创buildCassandra表的脚本)。

如何通过节点js运行复杂的cassandra sql

我试图从node.js运行复杂的cassandra的SQL和使用cassandra express包,下面是查询: client.execute("select distinct c.objekt PSP, b.bestellung purchase_order, b.details, b.bestellnettowert Budget, c.Interim_Amounts, c.belegdatum, b.cost_centre from (select objekt, sum("Wert/KWahr") Interim_Amounts, belegdatum, bestellung from bdr.cj74 where year(belegdatum) = '2016' group by objekt, belegdatum, bestellung) c, (select bestellung, "Lieferant/Lieferwerk" details, bestellnettowert, belegdatum, "PSP-Elm", "Kostenst." cost_centre from bdr.opexcapex where year(opexcapex.belegdatum) = '2016') b where b."PSP-Elm" = c.objekt and year(c.belegdatum) […]

在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服务器。