问题标签 [cql3]

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 投票
1 回答
784 浏览

cassandra - 有没有办法在 Cassandra 中按数据类型而不是字符串进行聚类排序?

我使用以下 CQL 在 cqlsh 中的 CQL3 中创建了一个表:

请注意,locationid 是一个整数。

但是,在我插入数据并运行选择之后,我注意到 locationid 的升序排序似乎是基于字符串,而不是整数。

请注意 0 10 5. 有没有办法通过其实际数据类型对其进行排序?

谢谢,艾莉森

0 投票
2 回答
930 浏览

cassandra - 复合键上的 CQL2 列切片和 CQL3 wheres 是否等效?

我有一些问题让我的大脑围绕着 CQL。我一直在尝试在 CQL3 中使用列切片(我认为这是正确的术语),但所有关于它的文档似乎都参考了 CQL2。

例如我有下表:

现在,在 CQL2 中,我可以执行以下操作:

它返回所有行范围内的所有列

现在,在 CQL3 中我不能这样做(至少,不能在 cqlsh 上),但我可以这样做:

这让我得到了基本相同的信息,但格式略有不同。

问题是——这些是等价的吗?如果我不添加允许过滤,cqlsh 会警告我有关性能问题的事实告诉我,CQL2 版本更有效,并且我的 CQL3 查询运行方式不同,但我真的无法找到一个直接的答案来确认我的直觉在这里。

编辑:让我担心的具体事情是运行 CQL2 查询不会引起 cqlsh 的抱怨,但是运行 CQL3 查询而不“允许过滤”会使 cqlsh 由于担心性能不可预测而拒绝执行查询。

0 投票
3 回答
4686 浏览

cassandra - 如果不鼓励在 cassandra 1.2/Cql3 中使用动态列,那么它在功能上比 Mysql 好多少?

最初我开始学习 Cassandra,因为动态列引起了我的注意。随着我开始学习更多,我了解到复合主键比动态列更受欢迎,并且 Cassandra 正在转向基于模式(模式是可选的,不是强制性的,但建议使用)。在 cql3 中,这是强制性的,我读到 cql3 是 cassandra 中新应用程序的最佳方法。

这是我面临一个有趣问题的地方。我正在阅读一张特定的幻灯片(Mysql vs Casssandra)-http://lanyrd.com/2012/austin-mysql-meetup-january/spdrx/ 跳转到第 31 张幻灯片),其中讨论了欺诈检测用例。

“在 FraudDetection 中,为了计算风险,通常需要知道有关帐户曾经使用过的所有电子邮件、目的地、来源、设备、位置、电话号码等。”

解释了我们如何在关系世界中维护电子邮件、目的地、来源等的单个表,以及在 cassandra 世界中使用动态列键和值是多么容易。(31-34 张幻灯片)。

既然动态列的键和值都被劝阻了,我们该如何解决这个问题呢?我们是否应该为每个电子邮件、目的地等维护单独的列族?那么它与关系世界有什么不同呢?仅与可扩展性有关吗?我们还能继续使用无模式方法吗?这是“架构是可选的和推荐的,但不是强制性的”的黄金法则吗?

谢谢

0 投票
1 回答
2173 浏览

schema - Cassandra CQL 克隆键空间模式

我正在尝试转储 Cassandra 键空间的模式,该模式可用于将其导入另一个键空间,例如备份 cassandra 键空间并将其恢复到具有相同模式的不同键空间中。

我正在使用 cqlsh:

我最初使用 CLUSTERING ORDER 时间戳 DESCENDING 顺序创建模式:

然后我使用 CQL 函数转储我认为有效的 CQL3:

当我尝试将其导入回 cqlsh 时,出现以下错误:

我相信它无法解析创建的列定义(最初是使用 CLUSTERING ORDER BY 创建的):

是否有其他方法可以转储给定键空间的模式?

0 投票
2 回答
6232 浏览

cassandra - 在 cassandra 1.2 中重命名键空间和列族

如何在 cassandra 1.2 中重命名键空间和列族?我知道不再支持 cassandra-cli rename api -如何在 Cassandra 中重命名键空间。也许CQL3中有一些api?或者一些用于创建新列族并将所有数据从旧列族处理到新列族的 api?

0 投票
1 回答
486 浏览

map - Astyanax地图数据访问cql3

我正在尝试使用 Astyanax 访问地图列类型。从我已经采取以下的例子。我正在循环这些行,并且可以从所有列中获取数据,除了具有数据类型 MAP 的列存储名称。我假设我需要遍历地图的元素以将数据放入我的对象中,但我不知道如何从列中获取地图数据。

我正在尝试 column.getValue 并尝试过 getByteBuffer 但都无法正常工作。我可以获得一个列对象,我看到有一个 ColumnMap 接口,但我不知道如何将数据放入扩展或使用它的对象中。我还看到了一个 MapSerializer 接口,但不知道如何实现它......

我对 getValue() 有点困惑,因为它需要一个 Serializer 作为它的第二个参数和一个默认值作为它的第三个参数。如何将 MapSerializer 作为第二个参数传递,或者我什至应该使用 getValue() 方法?默认值是 Map 中的键值吗?如果我想返回地图中的所有值,那该怎么办?谢谢。

0 投票
3 回答
18223 浏览

cassandra - 从地图中选择特定值

我正在尝试创建一个包含 20,000 多列的 WIDE Column Table

最初我想我会使用:

插入此表工作正常

但是,我想阅读一个单独的细节:

执行此查询时,我收到以下错误:

这会奏效吗,还是我需要不同的方法?

0 投票
1 回答
830 浏览

cassandra - 在 Cassandra CQL 3 表定义中,我对静态和动态列混合有多少控制?

我试图更好地了解我可以在 CQL3 中实际混合静态和动态列的级别。我在 CQL 3 中创建了一个表来存储用户订阅数据,但我也在测试在表中存储一个tenant_id(带有二级索引)的方法,以便我可以快速识别哪些用户属于哪些租户(租户是用户所属的更高级别的实体)。

我的创建表语句如下,然后是一些虚拟数据插入:

这一切都很好,我得到了使用 cql 3 API 的期望:

但是,行的底层存储会导致 Cassandra 为每个新订阅复制tenant_id:

我的问题是:有没有办法让我(使用 CQL 3)以每行仅列出一次 subscription_id 的方式构造表?如果没有,是否可以使用较旧的 cassandra-cli API 来执行此操作?看起来这将是一个可行的用例,实际上是一个将静态数据与动态数据(即订阅位)混合的问题,但我很可能是错的。我知道 map 和其他 CQL 3 集合类型是这样做的一种方式,但是我必须一次检索整个集合的事实让我有点紧张,我宁愿不将一些复杂的对象序列化到 map 值槽中,如果我可以帮助它。

谢谢!

0 投票
4 回答
15478 浏览

cassandra - Cassandra:获取列族的列名?

我想知道 CQL3 中是否有一个查询允许您获取具有静态模式的特定列族的列名?
提前致谢 :)

0 投票
5 回答
491 浏览

cassandra - 将 Pig 与 Cassandra CQL3 一起使用

当尝试针对 CQL3 创建的 Cassandra Schema 运行 PIG 时

我收到以下错误。

我知道这是设计使然,但我一直无法找到将 CQL3 表加载到 PIG 中的正确方法。

有人可以指出我正确的方向吗?是否缺少一些文档?