cassandra 如何在Astra DB上编写“nodetool status”的CQL查询?

xqnpmsa8  于 2022-11-29  发布在  Cassandra
关注(0)|答案(2)|浏览(192)

我正在使用Astradb并希望了解有关数据库的特定信息,但无法在Astradb中编写nodetool状态查询
我尝试在astraDB的CQL中运行noodtool状态查询,但它显示“在输入'nodetool'([nodetool]...)处没有可行的替代项"。

zwghvu4y

zwghvu4y1#

所以Astra DB背后的整个想法是将信息从你身边 * 抽象 * 出来。但是,我相信你可以通过查询system.localsystem.peers将其中的一些信息拼凑起来:

token@cqlsh> SELECT broadcast_address, host_id, data_center, rack, tokens FROM system.local;

 broadcast_address | host_id                              | data_center | rack  | tokens
-------------------+--------------------------------------+-------------+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        10.16.19.2 | ac8bfed1-9440-47ab-994f-b7ef98117bcf |    us-east1 | rack0 | {'-3466893331802638996', '-7189152594095502834', '-7743619013763055482', '1393532910918095565', '1597888904347105718', '3014295866360776345', '4210538617285918185', '7954653708828547606'}

(1 rows)
token@cqlsh> SELECT peer, host_id, data_center, rack, tokens FROM system.peers;

 peer      | host_id                              | data_center | rack  | tokens
-----------+--------------------------------------+-------------+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 10.16.7.2 | 4e3f943d-8c53-46c6-801e-6dabca21a2e0 |    us-east1 | rack1 | {'-2359035084030801128', '-3568203120055674420', '-7527234136092159677', '2040951025520895185', '5112277637022770422', '7536877072455490670', '7596502811906969058', '8655155433379455388'}
 10.16.4.3 | 6157e7e6-fc87-4471-8436-a55791b5c687 |    us-east1 | rack2 |  {'-1573689545965570176', '-2873530414896862389', '-4711666288472706723', '-788972128988926049', '1360301076154144663', '6409534500549901780', '7611313913660737863', '977603904086666902'}

(2 rows)

如果您要查找集群负载(从节点工具状态),最好查看Astra DB Jmeter 板上的“Storage Consumed”(已消耗存储)部分:

4jb9z9bj

4jb9z9bj2#

Astra DB是一种云原生无服务器完全托管的Cassandra即服务。这三个术语与您的问题相关,因为Astra DB使用与传统Cassandra集群完全不同的模型/实施/架构/范式。
作为云原生和无服务器,“不涉及服务器”,Cassandra节点的概念不再有意义。传统Cassandra节点执行的功能和操作现在由服务完成,而不是节点和服务器。例如,协调器功能现在由 Coordination Services 执行,读/写数据现在由 Data Services 执行。
在他的回答中,@Aaron展示了如何查询system.peers表。这些对等体实际上只是Stargate协调器pod,它们提供 * 协调服务 *,协调对相关 * 数据服务 * 的读写请求。这些对等体与您可能习惯的传统Cassandra节点不同。
最后,在Astra数据库上运行nodetool status也是没有意义的,因为它是一个完全托管的数据库即服务,你应该关心的是你的应用是否可以从数据库读取或写入。
我喜欢用Gmail来打个比方。它是一个完全由谷歌管理的邮件即服务。你永远不会联系谷歌来询问你的邮件所使用的邮件服务器列表。你所关心的只是你是否可以发送或接收电子邮件。同样的想法也适用于Astra DB。干杯!

相关问题