我知道对于cassandra来说,数据是按集群键排序的,只按分区键排序。我想知道Cassandra是否对全局扫描进行了优化。假设cluster键是一个整数值,如果我想搜索cassandra集群上的所有数据以找到具有值的集合 < 3 . cassandra查询引擎在遇到一个数字之后不需要继续查看分区中的集合 >= 3 . 有没有cassandra提供的api(比如cdk)来执行这些优化?
< 3
>= 3
iyzzxitl1#
没有一个本机的cql优化可用于全表扫描——它们总是不好的,因为cassandra是针对oltp工作负载优化的。不过,spark cassandra connector对spark的分析(olap)工作负载进行了优化。oltp和olap是天壤之别,因此您必须使用合适的工具来完成这项工作。干杯!
lp0sw83n2#
在cassandra中,按分区键查询是最好的查询方式。如果您想使用集群键进行查询,那么您可以使用“允许过滤”选项。但建议不要在生产中使用“允许过滤”。为了扫描整个表并过滤一些数据,您可以使用spark来完成您的工作。为什么要费心c*呢?它不是为它而设计的,最好是得到它的朋友的帮助(在这个例子中是spark)
2条答案
按热度按时间iyzzxitl1#
没有一个本机的cql优化可用于全表扫描——它们总是不好的,因为cassandra是针对oltp工作负载优化的。
不过,spark cassandra connector对spark的分析(olap)工作负载进行了优化。
oltp和olap是天壤之别,因此您必须使用合适的工具来完成这项工作。干杯!
lp0sw83n2#
在cassandra中,按分区键查询是最好的查询方式。如果您想使用集群键进行查询,那么您可以使用“允许过滤”选项。但建议不要在生产中使用“允许过滤”。
为了扫描整个表并过滤一些数据,您可以使用spark来完成您的工作。为什么要费心c*呢?它不是为它而设计的,最好是得到它的朋友的帮助(在这个例子中是spark)