如何在Apache Cassandra 4.0中使用虚拟表

开源 其他数据库
在 Cassandra 4.0 中,虚拟表使得用户可以利用之前配置的驱动来查询所需信息。这一变化消除了与实现和维护 JMX 访问相关的所有开销。

[[350586]]

虚拟表是什么以及如何使用。

在最近的发布的 Apache Cassandra 4.0 测试版中的众多新增功能中,虚拟表virtual table是一个值得关注的功能。

在以前的 Cassandra 版本中,用户需要访问 Java 管理扩展Java Management ExtensionsJMX) 来查看 Cassandra 的细节,如运行中的压实compaction、客户端、度量和各种配置设置。虚拟表消除了这些挑战。Cassandra 4.0 测试版让用户能够从一个只读的系统表中以 Cassandra 查询语言Cassandra Query Language(CQL)行的形式查询这些细节和数据。

以下是之前 Cassandra 版本中基于 JMX 的机制是如何工作的。想象一下,一个用户想要检查集群中某个节点的压实状态。用户首先要建立一个 JMX 连接,在节点上运行 nodetool compactionstats。这个要求马上就给用户带来了一些复杂的问题。用户的客户端是否配置了 JMX 访问?Cassandra 节点和防火墙是否配置为允许 JMX 访问?是否准备好了适当的安全和审计措施,并落实到位?这些只是用户在处理 Cassandra 以前版本时必须面对的其中一些问题。

在 Cassandra 4.0 中,虚拟表使得用户可以利用之前配置的驱动来查询所需信息。这一变化消除了与实现和维护 JMX 访问相关的所有开销。

Cassandra 4.0 创建了两个新的键空间keyspace来帮助用户利用虚拟表:system_views 和 system_virtual_schemasystem_views 键空间包含了用户查询的所有有价值的信息,有用地存储在一些表中。system_virtual_schema 键空间,顾名思义,存储了这些虚拟表的所有必要的模式信息。

 

system_views and system_virtual_schema keyspaces and tables

重要的是要明白,每个虚拟表的范围仅限于其节点。任何虚拟表查询都将返回的数据,只对其协调器的节点有效,而不管一致性如何。为了简化这一要求,已经在几个驱动中添加了支持,以便在这些查询中指定协调器节点 (Python、DataStax Java 和其他驱动现在提供了这种支持)。

为了说明这一点,请查看这个 sstable_tasks 虚拟表。这个虚拟表显示了对 SSTables 的所有操作,包括压实、清理、升级等。

 

Querying the sstable_tasks virtual table

如果用户在以前的 Cassandra 版本中运行 nodetool compactionstats,则会显示相同类型的信息。 在这里,这个查询发现该节点当前有一个活动的压缩。它还显示了它的进度以及它的键空间和表。得益于虚拟表,用户可以快速收集这些信息,并同样有效地获得正确诊断集群健康状况所需的能力。

需要说明的是,Cassandra 4.0 并没有去除对 JMX 访问的需求。JMX 仍然是查询某些指标的唯一选择。尽管如此,用户会欢迎简单地使用 CQL 来获取关键集群指标的能力。由于虚拟表提供的便利,用户可能会将之前投入到 JMX 工具的时间和资源重新投入到 Cassandra 本身。客户端工具也应该开始利用虚拟表提供的优势。

如果你对 Cassandra 4.0 测试版及其虚拟表功能感兴趣,请试试试它。 

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2019-08-26 09:20:29

Windows 10虚拟桌面Windows

2018-03-08 09:14:45

云计算虚拟磁盘

2021-12-04 21:45:19

UbuntuLinux开源

2013-08-16 11:17:35

虚拟桌面虚拟快照

2019-09-04 19:32:56

HiveFlink大数据

2022-12-08 08:00:00

.NET 7BitArray数据执行

2021-03-09 07:27:40

Kafka开源分布式

2022-05-17 08:25:10

TypeScript接口前端

2022-06-23 08:00:53

PythonDateTime模块

2021-06-09 09:36:18

DjangoElasticSearLinux

2024-01-18 08:37:33

socketasyncio线程

2015-08-27 09:46:09

swiftAFNetworkin

2011-08-10 09:31:41

Hibernateunion

2019-08-01 08:00:04

AWS虚拟机Lightsail

2016-08-11 10:43:56

2020-01-07 09:50:41

Windows 10上帝模式Windows

2020-11-30 11:55:07

Docker命令Linux

2019-09-16 19:00:48

Linux变量

2014-07-02 09:47:06

SwiftCocoaPods

2024-09-06 11:34:15

RustAI语言
点赞
收藏

51CTO技术栈公众号