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

 

導讀:虛擬表是什麼以及如何使用。                                                 

本文字數:1620,閱讀時長大約:2分鐘

https://linux.cn/article-12791-1.html
作者:Ben Bromhead
譯者:geekpi

在最近的發佈的 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_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 測試版及其虛擬表功能感興趣,請試試試它。


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

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

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