datastax—在给定的cassandra集群中“select*fromcolumnfamine”时会发生什么

oug3syen  于 2021-06-14  发布在  Cassandra
关注(0)|答案(1)|浏览(370)

有人能解释并提供文件来解释

select * from <keyspace.table>

假设我有5个节点的集群,当发出这样的查询时,cassandradatastax驱动程序是如何工作的(fetchsize设置为500)
这是提取数据的正确方法吗?它会导致性能问题吗?

wwwo4jvm

wwwo4jvm1#

不,这是一个非常糟糕的数据提取方法。当cassandra至少通过分区键(用于标识保存实际数据的服务器)获取数据时,它会大放异彩。当你在做 select * from table ,请求被发送到协调节点,该节点将需要从所有服务器中提取所有数据并通过协调节点发送,从而使其过载,如果集群中有足够的数据,则很可能导致超时。
如果您真的需要从集群执行数据的完全获取,那么最好使用类似spark cassandra connector的方法,它通过令牌范围读取数据,直接从保存数据的节点获取数据,并并行执行。当然,您可以在java驱动程序中实现令牌范围扫描,类似于这样,但是与使用spark相比,您需要做更多的工作。

相关问题