通常情况下 SELECT * FROM TABLE WHERE col = something 通常对Cassandra来说是一个非常糟糕的查询,直到 col 至少是分区密钥。由于cassandra是分布式系统,它需要从所有节点获取数据并返回。当您在cassandra集群中有相对大量的数据时,这个查询很可能只是超时。 您仍然可以执行类似的查询,但会更复杂。您可以: 将spark与spark cassandra接头一起使用(请参阅中的文档 doc 文件夹); 通过将查询拆分为多个,覆盖各个令牌范围,对所有节点上的数据执行有效扫描,这样您就可以并行处理各个节点上的数据,而不会使协调节点过载。我有一个java代码的例子,你可以用它作为基础,但是spark更容易实现。 p、 我建议你从Cassandra的基本知识开始,了解它是如何工作的——如果你明白你能做什么不能做什么,你的生活会更轻松。你可以从税务学院的ds201课程开始。
1条答案
按热度按时间wpcxdonn1#
通常情况下
SELECT * FROM TABLE WHERE col = something
通常对Cassandra来说是一个非常糟糕的查询,直到col
至少是分区密钥。由于cassandra是分布式系统,它需要从所有节点获取数据并返回。当您在cassandra集群中有相对大量的数据时,这个查询很可能只是超时。您仍然可以执行类似的查询,但会更复杂。您可以:
将spark与spark cassandra接头一起使用(请参阅中的文档
doc
文件夹);通过将查询拆分为多个,覆盖各个令牌范围,对所有节点上的数据执行有效扫描,这样您就可以并行处理各个节点上的数据,而不会使协调节点过载。我有一个java代码的例子,你可以用它作为基础,但是spark更容易实现。
p、 我建议你从Cassandra的基本知识开始,了解它是如何工作的——如果你明白你能做什么不能做什么,你的生活会更轻松。你可以从税务学院的ds201课程开始。