Linux中國

如何在 Apache Cassandra 4.0 中使用虛擬表

在最近的發布的 Apache Cassandra 4.0 測試版中的眾多新增功能中, 虛擬表 virtual table 是一個值得關注的功能。

在以前的 Cassandra 版本中,用戶需要訪問 Java 管理擴展 Java Management Extensions JMX) 來查看 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_viewssystem_virtual_schemasystem_views 鍵空間包含了用戶查詢的所有有價值的信息,有用地存儲在一些表中。system_virtual_schema 鍵空間,顧名思義,存儲了這些虛擬表的所有必要的模式信息。

![system_views and system_virtual_schema keyspaces and tables](/data/attachment/album/202011/04/234540q4mqxbamq7tt8p8g.png "system_views and system_virtual_schema keyspaces and tables")

重要的是要明白,每個虛擬表的範圍僅限於其節點。任何虛擬表查詢都將返回的數據,只對其協調器的節點有效,而不管一致性如何。為了簡化這一要求,已經在幾個驅動中添加了支持,以便在這些查詢中指定協調器節點 (Python、DataStax Java 和其他驅動現在提供了這種支持)。

為了說明這一點,請查看這個 sstable_tasks 虛擬表。這個虛擬表顯示了對 SSTables 的所有操作,包括壓實、清理、升級等。

![Querying the sstable_tasks virtual table](/data/attachment/album/202011/04/234546yzjjmb0j5ueevevb.png "Querying the sstable_tasks virtual table")

如果用戶在以前的 Cassandra 版本中運行 nodetool compactionstats,則會顯示相同類型的信息。 在這裡,這個查詢發現該節點當前有一個活動的壓縮。它還顯示了它的進度以及它的鍵空間和表。得益於虛擬表,用戶可以快速收集這些信息,並同樣有效地獲得正確診斷集群健康狀況所需的能力。

需要說明的是,Cassandra 4.0 並沒有去除對 JMX 訪問的需求。JMX 仍然是查詢某些指標的唯一選擇。儘管如此,用戶會歡迎簡單地使用 CQL 來獲取關鍵集群指標的能力。由於虛擬表提供的便利,用戶可能會將之前投入到 JMX 工具的時間和資源重新投入到 Cassandra 本身。客戶端工具也應該開始利用虛擬表提供的優勢。

如果你對 Cassandra 4.0 測試版及其虛擬表功能感興趣,請試試試它

via: https://opensource.com/article/20/10/virtual-tables-apache-cassandra

作者:Ben Bromhead 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國