出于教学目的,我想深入了解cassandra集群的复制策略。因此,我想查询特定cassandra节点中的数据。我没找到办法吗?你们中有人知道怎么做吗?
inkz8wg91#
要了解来自哪个节点的数据,我认为您需要在cqlsh上启用跟踪。cqlsh>tracing on一旦启用跟踪,如果运行任何查询,您将获得跟踪详细信息和信息。有关更多详细信息,请参阅下面的链接。https://docs.datastax.com/en/dse/5.1/cql/cql/cql_reference/cqlsh_commands/cqlshtracing.html以上内容基于复制和一致性级别。
pxy2qtax2#
如果找到要查询的集群中的数据所在位置,通过cqlsh等工具登录到该节点,然后将一致性设置为local\ one,则应该只能从本地节点获取数据。如果您想证明这一点,请在运行查询之前启用跟踪。它将告诉您从何处提取数据(您还可以偶然获得一些读取修复案例(这也将显示其他节点)。如果你这样做了,忽略那次跑步,然后再做一次)。
ibrsph3r3#
你可以用https://github.com/tolbertam/sstable-tools 在单个sstable上使用cqlsh接口进行查询,无需经过cassandra;这方面有一个很好的例子https://github.com/tolbertam/sstable-tools#cqlsh. 您可以从那里获得存储在该sstable上的密钥列表,然后可以运行常规的cqlsh并启用跟踪,如另一个答案中所述,并查看它是否将转到该服务器或其他服务器。或者您可以停止除一台服务器以外的所有服务器,并尝试使用本地服务器对其运行查询。
3条答案
按热度按时间inkz8wg91#
要了解来自哪个节点的数据,我认为您需要在cqlsh上启用跟踪。cqlsh>tracing on一旦启用跟踪,如果运行任何查询,您将获得跟踪详细信息和信息。有关更多详细信息,请参阅下面的链接。https://docs.datastax.com/en/dse/5.1/cql/cql/cql_reference/cqlsh_commands/cqlshtracing.html
以上内容基于复制和一致性级别。
pxy2qtax2#
如果找到要查询的集群中的数据所在位置,通过cqlsh等工具登录到该节点,然后将一致性设置为local\ one,则应该只能从本地节点获取数据。如果您想证明这一点,请在运行查询之前启用跟踪。它将告诉您从何处提取数据(您还可以偶然获得一些读取修复案例(这也将显示其他节点)。如果你这样做了,忽略那次跑步,然后再做一次)。
ibrsph3r3#
你可以用https://github.com/tolbertam/sstable-tools 在单个sstable上使用cqlsh接口进行查询,无需经过cassandra;这方面有一个很好的例子https://github.com/tolbertam/sstable-tools#cqlsh. 您可以从那里获得存储在该sstable上的密钥列表,然后可以运行常规的cqlsh并启用跟踪,如另一个答案中所述,并查看它是否将转到该服务器或其他服务器。
或者您可以停止除一台服务器以外的所有服务器,并尝试使用本地服务器对其运行查询。