我是Cassandra的新手。我已经在Cassandra的NetworkTopology Strategy中创建了一个键空间,在一个数据中心中有2个副本。是否存在cql命令或其他方式来查看两个副本中的数据?
像SELECT * FROM tablename in replica1 / replica2
是否有另一种方式可以使我直观地看到两个副本中的数据?
提前致谢。
最佳答案
因此,您的问题不是很清楚“查看2个副本中的数据”。如果您想验证数据,则可以运行一些命令以可视方式查看内容。
您要做的第一件事是登录到要调查的节点。转到感兴趣的表的数据目录-> DataDir / keyspace / table。在其中,您将看到一个或多个类似于* Data.db的文件。那是你的稳定。在某些情况下,内存中的数据会刷新为sstables。如果要进行验证,您要确保将数据从内存刷新到磁盘(否则可能找不到所需的内容)。为此,发出“ nodetool flush”命令(如果只想刷新特定表,则可以将键空间和表用作参数)。
就像我说的那样,此后,内存中的所有内容都将刷新到磁盘。这样您就可以看到您的sstables(同样是* Data.db)文件。一旦有了这些sstable,就可以在每个sstable上运行“ sstabledump”命令以查看驻留在其中的数据,从而验证您的数据。
如果只有几行要验证并且有很多节点,则可以通过使用键空间,表和分区键运行“ nodetool getendpoints”来找到行将驻留在哪个节点上。这将告诉您每个将拥有数据的节点。这样,您就不会猜测该行应该在哪个节点上。不幸的是,没有办法知道行应该存在于哪个稳定表中(如果发生更新/删除等,可能会超过一个)。您必须遍历特定节点上的每个sstable。
希望可以帮助您回答问题吗?
祝好运。
-吉姆
关于cassandra - 有没有办法在Cassandra中查看2个副本中的数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58554288/