问题标签 [cassandra]

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 回答
1759 浏览

nosql - 使用 HBase 和/或 Cassandra 进行搜索(和一般查询)(最佳实践?)

我有用户模型对象,其中包含很少的字段(属性,如果您愿意)。说“名字”、“姓氏”、“城市”和“出生年份”。每个用户还获得“唯一 ID”。

我希望能够通过他们进行搜索。我该如何正确地做到这一点?如何做到这一点?

我的理解(几乎适用于任何键值存储——首先是键,然后是值)

u:123456789 = serialized_json_object

(“u”作为用户密钥的简单前缀,123456789 是“唯一 id”)。

现在,考虑到我希望能够按名字和姓氏进行搜索,我可以保存在:

f:Steve = u:384734807,u:2398248764,u:23276263 f:Alex = u:12324355,u:121324334

所以键是“f”——这是名字的前缀,而“Steve”是实际的名字。对于“u:Steve”,我们将所有属于“Steve”的用户 ID 保存为值。

这使得每次搜索都非常非常容易。按少数字段(属性)查询——比如按名字(即“Steve”)和姓氏(即“l:Anything”)仍然很容易——首先从“f:Steve”获取用户 ID 列表,然后从“l :Anything",找到交叉的用户 ID,然后就可以了。

问题(而且有很多):

  1. 保存、更新、删除用户很痛苦。它必须是原子的和一致的操作。此外,如果我们将价值大小限制在某个值上——那么我们就有(潜在的)麻烦。这里真的没有答案。只压缩用户 ID 列表?不过也不算太酷。

  2. 我们要添加新字段以进行搜索的 id。最终。用“城市”说。我们当然可以这样做 "c:Los Angeles" = ..., "c:Chicago" = ...,但是如果我们一开始就没有预见到所有这些“搜索选择”,那么我们将有能够通过所有现有的用户记录创建一些夜间工作或其他东西并为他们更新那些“c:CITY”......相当大的工作!

  3. 锁定问题。用户“u:123”更新了他的名字“Alex”,用户“u:456”更新了他的名字“Alex”。他们都必须用他们的 id 更新“f:Alex”。这意味着要么我们遇到覆盖问题,要么一个更新将等待另一个更新(如果有很多更新,还有成像?!)。

这样做的最佳方法是什么?请记住,我想按多个字段进行搜索?

PS 请,问题是关于 HBase/Cassandra/NoSQL/Key-Value 存储。请 - 不建议使用 MySQL 和“阅读”SELECT;并担心“以后”的扩展问题。我完全按照我的方式问我的问题是有原因的。:-)

0 投票
18 回答
99139 浏览

database - 什么时候不使用 Cassandra?

最近有很多关于Cassandra的讨论。

Twitter、Digg、Facebook 等都使用它。

什么时候有意义:

  • 使用卡桑德拉,
  • 不使用 Cassandra,并且
  • 使用 RDMS 而不是 Cassandra。
0 投票
4 回答
10390 浏览

java - 如何将 Java Long 转换为 Cassandra 的字节 []?

懒惰的程序员警报。:)

Cassandra 将列值存储为字节(Java 示例)。指定LongType 比较器会将这些字节作为 long 进行比较。我希望将 long 的值转换为 Cassandra 友好的字节 []。如何?我转了一圈。我认为你们可以更快地帮助我。

编辑:

亚历山大和伊莱的回答都同意这种反向转换。谢谢!

0 投票
1 回答
319 浏览

python - Pylons Web 应用程序中的唯一用户 ID

使用UUID在 Python 中创建唯一用户 ID 的最佳方法是什么?

0 投票
3 回答
1653 浏览

cassandra - Cassandra:使用 LongType

我正在尝试使用“CompareWith”属性“LongType”将数据插入到 ColumnFamily 中。但是,当尝试在数字键下插入数据时,出现节俭错误。

尝试使用 cassandra-cli 程序执行相同操作时,我收到错误“A long is just 8 bytes”。我该如何解决这个问题?我应该使用不同的比较类型吗?

谢谢

0 投票
1 回答
509 浏览

c# - 将 C# 代码从 Cassandra .5 迁移到 .6

我有一些从示例派生的简单代码,旨在形成对 Cassandra 数据库的快速写入,然后循环返回并读取所有当前条目,一切正常。当 .6 出现时,我升级了 Cassandra 和 thrift,这在我的代码中引发了错误 (www[dot]copypastecode[dot]com/26760/) - 我能够通过转换必要的类型来消除错误,但是在现在编译的版本似乎只读回一项,我不确定它是否没有保存数据库更改或者它是否只读回 1 个条目。“固定”代码在这里: http: //www.copypastecode.com/26752/。任何帮助将不胜感激。

0 投票
1 回答
1874 浏览

php - 我如何使用 php 删除/删除整个键空间:cassandra:thrift

我如何使用 php 删除/删除整个键空间:cassandra:thrift

0 投票
1 回答
740 浏览

perl - 如何使用 Net::Cassandra::Easy 存储和检索 TimeUUIDType 类型?

执行以下操作:

结果是:

对于 UUID,我没有看到任何类似于 Net::Cassandra::Easy::pack_decimal 的东西。

0 投票
1 回答
536 浏览

database - 您如何在 Cassandra 中存储套装?

我想将此 JSON 转换为 Cassandra 中的数据模型,其中每个数组都是一个没有重复的集合:

var data = { "data1": { "100": [1, 2, 3], "200": [3, 4] }, "data2": { "k1", [1], "k2", [ 4, 5] } }

我想这样查询: data["data1"]["100"] 来检索集合。有人知道你如何在 Cassandra 中建模吗?(我唯一想到的是名称是设定值的列,而列的值是空字符串,但感觉不对。)

不能将集合序列化为 JSON 或其他字符串,这样会更容易。

另外,我应该注意,可以将 data1 和 data2 拆分为单独的 ColumnFamilies,它们不必是同一个中的键。

0 投票
1 回答
609 浏览

cassandra - 用一个额外的节点扩展 Cassandra 集群:需要打开哪些端口?

假设 Cassandra 集群具有主机AB. 这个集群现在应该用另一台主机来扩展C。假设C在防火墙网络上,默认情况下所有数据包都被丢弃。

必须在新节点之间打开哪些端口和协议才能C <> A正常运行?C <> BC