仮想キースペースおよびテーブルについて

仮想キースペースおよびテーブルの詳細を説明します。

CASSANDRA-7622では、仮想キースペースおよび仮想テーブルのサポートが導入されました。仮想テーブルは、サーバーによってローカル・テーブルとしてユーザーに公開されます。これは読み取り専用ですが、更新がサポートされている場合もあります。セカンダリ・インデックスまたはマテリアライズド・ビューはサポートされていません。仮想テーブルは仮想キースペースの一部です。system_virtual_schemasystem_viewsの2つの仮想キースペースを使用できます。仮想テーブルはディスク上の物理ファイルに関連付けられておらず、memtablesまたはSSTableがありません。メモリ内の構成やメトリクスなどのサーバー・データを公開することを目的としています。

system_virtual_schema keyspace

system_virtual_schemaには、既存の仮想キースペースおよびテーブルに関する情報が含まれています。また、指定されたデータ・オブジェクトの定義を公開する3つの仮想テーブルも含まれています。
1. キースペース
カラム名 CQL型 カラム型
keyspace_name text パーティション・キー
2. テーブル
カラム名 CQL型 カラム型
keyspace_name text パーティション・キー
table_name text クラスター化キー
comment text 通常
3. カラム
カラム名 CQL型 カラム型
keyspace_name text パーティション・キー
table_name text クラスター化キー
column_name text クラスター化キー
clustering_order text 通常
column_name_bytes BLOB 通常
position int 通常
type text 通常

system_views keyspace

システム・ビューは、サーバー内部に関する情報を公開します。sstable_tasksシステム・ビューは、ホストで現在実行中のSSTableタスクを公開します。
4. sstable_tasks
カラム名 CQL型 カラム型
keyspace_name text パーティション・キー
table_name text クラスター化キー
task_id uuid クラスター化キー
kind text 通常
progress bigint 通常
total bigint 通常
unit text 通常
ヒント: SELECT句でtotal - progress AS remainingを使用することで、残りの作業量を計算できます。

仮想テーブルとcqlsh

仮想テーブルはローカル・テーブルとして公開され、cqlshは現在接続されているホストのデータを表示します。仮想テーブルのスキーマを置き換える場合は、DESCRIBE FULL SCHEMAを使用して、実際のキースペースと仮想キースペースの両方のスキーマを返します。
注: ユーザーは、仮想キースペースまたは仮想テーブルを作成できません。
仮想テーブルsstable_tasksのスキーマを表示するには、次を使用します。
DESCRIBE TABLE system_views.sstable_tasks
/*
Warning: Table system_views.sstable_tasks is a virtual table and cannot be recreated with CQL.
Structure, for reference:
VIRTUAL TABLE system_views.sstable_tasks (
    keyspace_name text,
    table_name text,
    task_id uuid,
    kind text,
    progress bigint,
    total bigint,
    unit text,
    PRIMARY KEY (keyspace_name, table_name, task_id)
) WITH CLUSTERING ORDER BY (table_name ASC, task_id ASC)
    AND comment = 'current sstable tasks';
SSTableタスクの残り時間を確認するには、次のコマンドを使用します。
SELECT total - progress AS remaining FROM system_views.sstable_tasks;