gpt4 book ai didi

cassandra - 使用 CQLSH 查看 Cassandra 分区

转载 作者:行者123 更新时间:2023-12-04 23:14:40 26 4
gpt4 key购买 nike

使用 Cassandra,我如何根据我创建主键的方式查看创建了多少个分区?我一直在关注一个教程,它提到转到 bin/cassandra-cli并使用 LIST命令。但是,最新的 Cassandra 安装并没有附带这个,我在网上阅读了其他文章,这些文章表明 cli 现在已被弃用。

无论如何我可以看到使用 cqlsh 创建的分区吗?

提前致谢!

最佳答案

首先你要调查你的cassandra.yaml文件查看 代币数量 当前配置的。这告诉您每个节点将拥有多少个分区:

$ grep num_tokens conf/cassandra.yaml
...
num_tokens: 128
...
$ grep initial_token conf/cassandra.yaml
...
# initial_token: 1
...

如果初始 token 被注释掉,这意味着节点将在启动期间计算出它自己的分区范围。

接下来您可以使用 nodetool ring 检查分区范围命令:
$ bin/nodetool ring

Datacenter: DC1
==========
Address Rack Status State Load Owns Token
9167006318991683417
127.0.0.2 r1 Down Normal ? ? -9178420363247798328
127.0.0.2 r1 Down Normal ? ? -9127364991967065057
127.0.0.3 r1 Down Normal ? ? -9063041387589326037

这会显示哪个分区范围属于集群中的哪个节点。

在上面的例子中,每个节点都拥有 128 分区范围。 之间的范围-9178420363247798327 -9127364991967065057 属于节点 127.0.0.2 .

您可以使用这个简单的选择来告诉每一行的分区键:
cqlsh:mykeyspace> select token(key), key, added_date, title from mytable;

system.token(key) | key | added_date | title
----------------------+-----------+--------------------------+----------------------
-1651127669401031945 | first | 2013-10-16 00:00:00+0000 | Hello World
-1651127669401031945 | first | 2013-04-16 00:00:00+0000 | Bye World
356242581507269238 | second | 2014-01-29 00:00:00+0000 | Lorem Ipsum
356242581507269238 | second | 2013-03-17 00:00:00+0000 | Today tomorrow
356242581507269238 | second | 2012-04-03 00:00:00+0000 | It's good to meet you

(5 rows)

在分区范围中查找分区键会告诉您记录的存储位置。

您也可以使用 nodetool只需一个简单的步骤即可完成相同的操作:
$ bin/nodetool getendpoints mykeyspace mytable 'first'
127.0.0.1
127.0.0.2

这会告诉分区键为“first”的记录所在的位置。

注意:如果部分节点宕机, getendpoints命令不会列出这些节点,即使它们应该根据复制设置存储记录。

关于cassandra - 使用 CQLSH 查看 Cassandra 分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46166650/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com