Cassandra 文档

版本

您正在查看预发布版本的文档。

SAI 索引和 SSTable 的虚拟表

存储附加索引 (SAI) 提供基于 CQL 的虚拟表,使您能够发现 SAI 索引和关联 SSTable 的系统元数据的当前状态。这些虚拟表位于 system_views keyspace 中。

有关相关信息,请参阅 SAI 信息

system_views.indexes

system_views.indexes 虚拟表包含有关 SAI 索引的状态信息。此视图在列索引级别提供信息,包括索引名称、已索引 SSTable 的数量、磁盘使用情况和索引状态。从索引状态,数据显示索引当前是否正在构建,以及索引是否可以查询。

使用 CQL 查看表的描述。示例

DESCRIBE TABLE system_views.indexes;
/*
Warning: Table system_views.indexes is a virtual table and cannot be recreated with CQL.
Structure, for reference:
VIRTUAL TABLE system_views.indexes (
    keyspace_name text,
    index_name text,
    analyzer text,
    cell_count bigint,
    column_name text,
    indexed_sstable_count int,
    is_building boolean,
    is_queryable boolean,
    is_string boolean,
    per_column_disk_size bigint,
    per_table_disk_size bigint,
    table_name text,
    PRIMARY KEY (keyspace_name, index_name)
) WITH CLUSTERING ORDER BY (index_name ASC)
    AND comment = 'Storage-attached column index metadata';
*/

要查看当前数据,请提交类似以下的查询

SELECT * FROM system_views.indexes;
 keyspace_name | index_name           | analyzer                                                    | cell_count | column_name  | indexed_sstable_count | is_building | is_queryable | is_string | per_column_disk_size | per_table_disk_size | table_name
---------------+----------------------+-------------------------------------------------------------+------------+--------------+-----------------------+-------------+--------------+-----------+----------------------+---------------------+------------------
       cycling |          age_sai_idx |                                              NoOpAnalyzer{} |          0 |          age |                     0 |       False |         True |     False |                    0 |                   0 | cyclist_semi_pro
       cycling |      country_sai_idx | NonTokenizingAnalyzer{caseSensitive=false, normalized=true} |          0 |      country |                     0 |       False |         True |      True |                    0 |                   0 | cyclist_semi_pro
       cycling |     lastname_sai_idx | NonTokenizingAnalyzer{caseSensitive=false, normalized=true} |          0 |     lastname |                     0 |       False |         True |      True |                    0 |                   0 | cyclist_semi_pro
       cycling | registration_sai_idx |                                              NoOpAnalyzer{} |          0 | registration |                     0 |       False |         True |     False |                    0 |                   0 | cyclist_semi_pro

(4 rows)
system_views.indexes 元数据
列名 CQL 类型 含义

keyspace_name

text

索引所属的 keyspace 的名称。

index_name

text

索引的名称。

analyzer

text

索引使用的分析器的 toString 表示形式。

cell_count

bigint

已索引表单元格的数量,或索引值-键条目的数量。这是每个 SSTable 中索引条目的数量之和。

column_name

text

已索引列的名称。

indexed_sstable_count

int

已索引 SSTable 的数量。请注意,没有相关数据的 SSTable 不会被索引或在此处计算。

is_building

boolean

索引是否正在进行构建。

is_queryable

boolean

是否可以查询索引。如果初始任务构建尚未完成,则无法查询。

is_string

boolean

索引是否用于文本字段 (asciitextvarchar)。

per_column_disk_size

bigint

专用于该列的索引组件的磁盘大小(以字节为单位)。

per_table_disk_size

bigint

与同一表的其他 SAI 索引共享的索引组件的磁盘大小(以字节为单位)。

table_name

text

已索引列所属的表的名称。

system_views.sstable_indexes

system_views.sstable_indexes 虚拟表每个 SAI 索引和 SSTable 有一行。此视图描述单个 SSTable 索引,并包含有关磁盘大小、最小/最大行 ID、最小/最大环形令牌和索引的写入时间版本的的信息。

使用 CQL 查看表的描述。示例

DESCRIBE TABLE system_views.sstable_indexes;
/*
Warning: Table system_views.sstable_indexes is a virtual table and cannot be recreated with CQL.
Structure, for reference:
VIRTUAL TABLE system_views.sstable_indexes (
    keyspace_name text,
    index_name text,
    sstable_name text,
    cell_count bigint,
    column_name text,
    end_token text,
    format_version text,
    max_row_id bigint,
    min_row_id bigint,
    per_column_disk_size bigint,
    per_table_disk_size bigint,
    start_token text,
    table_name text,
    PRIMARY KEY (keyspace_name, index_name, sstable_name)
) WITH CLUSTERING ORDER BY (index_name ASC, sstable_name ASC)
    AND comment = 'SSTable index metadata';
*/

要查看当前数据,请提交类似以下的查询

SELECT * FROM system_views.sstable_indexes;
system_views.sstable_indexes 元数据<
列名 CQL 类型 含义

keyspace_name

text

索引所属的 keyspace 的名称。

index_name

text

索引的名称。

sstable_name

text

SSTable 的名称。

cell_count

bigint

已索引表单元格的数量,或索引值-键条目的数量。

column_name

text

已索引列的名称。

start_token

text

已索引 SSTable 覆盖的令牌范围的开始。

end_token

text

已索引 SSTable 覆盖的令牌范围的结束。

min_row_id

bigint

SSTable 索引中的最小行 ID。

max_row_id

bigint

SSTable 索引中的最大行 ID。

per_column_disk_size

bigint

专用于该列的 SSTable 索引组件的磁盘大小(以字节为单位)。

per_table_disk_size

bigint

与同一表的其他 SAI 索引共享的 SSTable 索引组件的磁盘大小(以字节为单位)。

table_name

text

已索引列所属的表的名称。

system_views.sstable_index_segments

system_views.sstable_index_segments 虚拟表每个 SAI 索引和 SSTable 段有一行。此视图描述 SSTable 索引的段。它公开段行 ID 偏移量和 SSTable 级虚拟表中的大多数信息,特别是在段粒度级别。

使用 CQL 查看表的描述。示例

DESCRIBE TABLE system_views.sstable_index_segments;
/*
Warning: Table system_views.sstable_index_segments is a virtual table and cannot be recreated with CQL.
Structure, for reference:
VIRTUAL TABLE system_views.sstable_index_segments (
    keyspace_name text,
    index_name text,
    sstable_name text,
    segment_row_id_offset bigint,
    cell_count bigint,
    column_name text,
    component_metadata frozen<map<text, map<text, text>>>,
    end_token text,
    max_sstable_row_id bigint,
    max_term text,
    min_sstable_row_id bigint,
    min_term text,
    start_token text,
    table_name text,
    PRIMARY KEY (keyspace_name, index_name, sstable_name, segment_row_id_offset)
) WITH CLUSTERING ORDER BY (index_name ASC, sstable_name ASC, segment_row_id_offset ASC)
    AND comment = 'SSTable index segment metadata';
*/

要查看当前数据,请提交类似以下的查询

SELECT * FROM system_views.sstable_index_segments;
system_views.sstable_index_segments 元数据
列名 CQL 类型 含义

keyspace_name

text

索引所属的 keyspace 的名称。

index_name

text

索引的名称。

sstable_name

text

SSTable 的名称。

segment_row_id_offset

bigint

SSTable 段的行 ID 偏移量。

cell_count

bigint

已索引段的数量,或索引段值-键条目的数量。

column_name

text

已索引列的名称。

component_metadata

frozen<map<text, map<text, text>>>

SSTable 段中的组件元数据。

end_token

text

SSTable 段覆盖的令牌范围的结束。

max_sstable_row_id

bigint

SSTable 段中的最大行 ID。

max_term

text

SSTable 段中的最大项。

min_sstable_row_id

bigint

SSTable 段中的最小行 ID。

min_term

text

SSTable 段中的最小项。

start_token

text

SSTable 段覆盖的令牌范围的开始。

table_name

text

SSTable 段所属的表的名称。