sstablemetadata
将有关 sstable 的信息从相关的 Statistics.db 和 Summary.db 文件打印到标准输出。
在执行此工具之前,必须停止 Cassandra,否则会导致意外结果。注意:该脚本不会验证 Cassandra 是否已停止。
用法
sstablemetadata <选项> <sstable 文件名>
--colors |
使用 ANSI 颜色序列 |
--gc_grace_seconds <arg> |
计算时要使用的 gc_grace_seconds |
--help |
帮助 |
--scan |
对 sstable 进行完整扫描以获取更多详细信息。仅在 3.0+ sstable 中可用。默认值:false |
--timestamp_unit <arg> |
单元格时间戳写入的时钟单位 |
--unicode |
使用 Unicode 绘制直方图和进度条可丢弃的墓碑 |
打印所有元数据
对与表相关的 Data.db 文件运行 sstablemetadata。如果需要,请使用 sstableutil 查找Data.db 文件。
示例
$ sstableutil keyspace1 standard1 | grep Data
/var/lib/cassandra/data/keyspace1/standard1-f6845640a6cb11e8b6836d2c86545d91/mc-1-big-Data.db
$ sstablemetadata /var/lib/cassandra/data/keyspace1/standard1-f6845640a6cb11e8b6836d2c86545d91/mc-1-big-Data.db
SSTable: /var/lib/cassandra/data/keyspace1/standard1-f6845640a6cb11e8b6836d2c86545d91/mc-1-big
Partitioner: org.apache.cassandra.dht.Murmur3Partitioner
Bloom Filter FP chance: 0.010000
Minimum timestamp: 07/08/2023 09:11:52 (1688800312685792)
Maximum timestamp: 07/08/2023 09:12:03 (1688800323542149)
Duration: Days: 0 Hours: 0 Minutes: 0 Seconds: 10
SSTable min local deletion time: 07/08/2023 09:11:52 (1688800312)
SSTable max local deletion time: 07/08/2023 09:12:03 (1688800323)
Compressor: org.apache.cassandra.io.compress.LZ4Compressor
Compression ratio: 0.553999337227618
TTL min: 86400
TTL max: 86400
First token: -9223004712949498654 (key=39373333373831303130)
Last token: 9222554117157811897 (key=4f3438394e39374d3730)
Covered clusterings: ALL
Estimated droppable tombstones: 0.9188263888888889
SSTable Level: 0
Repaired at: 0
Originating host id: badfcb83-a283-402b-818e-78ede00aa3c4
Pending repair: --
Replay positions covered: {CommitLogPosition(segmentId=1535025390651, position=226400)=CommitLogPosition(segmentId=1535025390651, position=6849139)}
Total Column Cells: 72918
Total Rows: 24306
Estimated tombstone drop times:
1535039100: 80390
1535039160: 5645
1535039220: 13965
Count Row Size Cell Count
1 0 0
2 0 0
3 0 0
4 0 0
5 0 20000
6 0 0
7 0 0
8 0 0
10 0 0
12 0 0
14 0 0
17 0 0
20 0 0
24 0 0
29 0 0
35 0 0
42 0 0
50 0 0
60 0 0
72 0 0
86 0 0
103 0 0
124 0 0
149 0 0
179 0 0
215 0 0
258 20000 0
310 0 0
372 0 0
446 0 0
535 0 0
642 0 0
770 0 0
924 0 0
1109 0 0
1331 0 0
1597 0 0
1916 0 0
2299 0 0
2759 0 0
3311 0 0
3973 0 0
4768 0 0
5722 0 0
6866 0 0
8239 0 0
9887 0 0
11864 0 0
14237 0 0
17084 0 0
20501 0 0
24601 0 0
29521 0 0
35425 0 0
42510 0 0
51012 0 0
61214 0 0
73457 0 0
88148 0 0
105778 0 0
126934 0 0
152321 0 0
182785 0 0
219342 0 0
263210 0 0
315852 0 0
379022 0 0
454826 0 0
545791 0 0
654949 0 0
785939 0 0
943127 0 0
1131752 0 0
1358102 0 0
1629722 0 0
1955666 0 0
2346799 0 0
2816159 0 0
3379391 0 0
4055269 0 0
4866323 0 0
5839588 0 0
7007506 0 0
8409007 0 0
10090808 0 0
12108970 0 0
14530764 0 0
17436917 0 0
20924300 0 0
25109160 0 0
30130992 0 0
36157190 0 0
43388628 0 0
52066354 0 0
62479625 0 0
74975550 0 0
89970660 0 0
107964792 0 0
129557750 0 0
155469300 0 0
186563160 0 0
223875792 0 0
268650950 0 0
322381140 0 0
386857368 0 0
464228842 0 0
557074610 0 0
668489532 0 0
802187438 0 0
962624926 0 0
1155149911 0 0
1386179893 0 0
1663415872 0 0
1996099046 0 0
2395318855 0 0
2874382626 0
3449259151 0
4139110981 0
4966933177 0
5960319812 0
7152383774 0
8582860529 0
10299432635 0
12359319162 0
14831182994 0
17797419593 0
21356903512 0
25628284214 0
30753941057 0
36904729268 0
44285675122 0
53142810146 0
63771372175 0
76525646610 0
91830775932 0
110196931118 0
132236317342 0
158683580810 0
190420296972 0
228504356366 0
274205227639 0
329046273167 0
394855527800 0
473826633360 0
568591960032 0
682310352038 0
818772422446 0
982526906935 0
1179032288322 0
1414838745986 0
Estimated cardinality: 20196
EncodingStats minTTL: 0
EncodingStats minLocalDeletionTime: 1442880000
EncodingStats minTimestamp: 1535025565275000
KeyType: org.apache.cassandra.db.marshal.BytesType
ClusteringTypes: [org.apache.cassandra.db.marshal.UTF8Type]
StaticColumns: {C3:org.apache.cassandra.db.marshal.BytesType, C4:org.apache.cassandra.db.marshal.BytesType, C0:org.apache.cassandra.db.marshal.BytesType, C1:org.apache.cassandra.db.marshal.BytesType, C2:org.apache.cassandra.db.marshal.BytesType}
RegularColumns: {}
IsTransient: false
指定 gc grace seconds
要查看给定配置的 gc grace seconds 的可丢弃墓碑的比例,请使用 gc_grace_seconds 选项。由于 sstablemetadata 工具不会直接访问模式,因此这是一种更准确地估计可丢弃墓碑的方法,例如,如果您传递与模式中配置的 gc_grace_seconds 相匹配的 gc_grace_seconds。提供的 gc_grace_seconds 值将从当前机器时间(以秒为单位)中减去。
示例
$ sstablemetadata /var/lib/cassandra/data/keyspace1/standard1-41b52700b4ed11e896476d2c86545d91/mc-12-big-Data.db | grep "Estimated tombstone drop times" -A4 Estimated tombstone drop times: 1536599100: 1 1536599640: 1 1536599700: 2 $ echo $(date +%s) 1536602005 # if gc_grace_seconds was configured at 100, all of the tombstones would be currently droppable $ sstablemetadata --gc_grace_seconds 100 /var/lib/cassandra/data/keyspace1/standard1-41b52700b4ed11e896476d2c86545d91/mc-12-big-Data.db | grep "Estimated droppable tombstones" Estimated droppable tombstones: 4.0E-5 # if gc_grace_seconds was configured at 4700, some of the tombstones would be currently droppable $ sstablemetadata --gc_grace_seconds 4700 /var/lib/cassandra/data/keyspace1/standard1-41b52700b4ed11e896476d2c86545d91/mc-12-big-Data.db | grep "Estimated droppable tombstones" Estimated droppable tombstones: 9.61111111111111E-6 # if gc_grace_seconds was configured at 100, none of the tombstones would be currently droppable $ sstablemetadata --gc_grace_seconds 5000 /var/lib/cassandra/data/keyspace1/standard1-41b52700b4ed11e896476d2c86545d91/mc-12-big-Data.db | grep "Estimated droppable tombstones" Estimated droppable tombstones: 0.0
扫描表
可以指定 --scan 选项以获取有关表的更多统计信息,这可能很耗时。
示例
sstablemetadata -s /var/lib/cassandra/data/data/ks/tb-dbead8501c9511ee805bb3deafc4499b/oa-1-big-Data.db
这将为您提供以下统计信息,例如
Size: 120 Partitions: 2 Rows: 5 Tombstones: 0 Cells: 5 Widest Partitions: [2] 3 [1] 2 Largest Partitions: [2] 147 (147 B) [1] 98 (98 B)
上面打印的每个值的解释
| 值 | 解释 |
|---|---|
SSTable |
与该 sstable 相关的 sstable 文件名的前缀 |
分区器 |
用于将数据分布到节点的分区器类型;在 cassandra.yaml 中定义 |
布隆过滤器 FP |
读取中使用的布隆过滤器的精度;在表定义中定义 |
最小时间戳 |
此 sstable 中任何条目的最小时间戳,以纪元微秒为单位 |
最大时间戳 |
此 sstable 中任何条目的最大时间戳,以纪元微秒为单位 |
持续时间 |
最大时间戳和最小时间戳之间的差值 |
SSTable 最小本地删除时间 |
基于 TTL 的删除日期的最小时间戳,以纪元秒为单位 |
SSTable 最大本地删除时间 |
基于 TTL 的删除日期的最大时间戳,以纪元秒为单位 |
压缩器 |
默认情况下为空 (-);如果非空,则表示在表上启用的压缩类型 |
TTL 最小值 |
生存时间(以秒为单位);默认值为 0,除非在表定义中定义 |
TTL 最大值 |
生存时间(以秒为单位);默认值为 0,除非在表定义中定义 |
第一个令牌 |
在 sstable 摘要中找到的最低令牌和相关键 |
最后一个令牌 |
在 sstable 摘要中找到的最高令牌和相关键 |
估计的可丢弃墓碑 |
墓碑与列的比率,如果相关,则使用配置的 gc grace seconds |
SSTable 级别 |
此 sstable 的压缩级别,如果使用分层压缩 (LCS) |
修复时间 |
此 sstable 通过 sstablerepairedset 标记为已修复的时间戳,以纪元毫秒为单位 |
覆盖的重放位置 |
与该 sstable 相关的时间间隔和提交日志位置 |
totalColumnsSet |
表中的单元格数量 |
totalRows |
表中的行数 |
估计的墓碑删除时间 |
将过期的行数(按纪元秒排序)的近似值 |
Count Row Size Cell Count |
两列中的两个直方图;一个表示行大小的分布,另一个表示单元格计数的分布 |
估计的基数对唯一值的估计,用于压缩 |
EncodingStats* minTTL |
以纪元毫秒为单位 |
EncodingStats* minLocalDeletionTime |
以纪元秒为单位 |
EncodingStats* minTimestamp |
以纪元微秒为单位 |
KeyType |
分区键的类型,在读取和写入数据到/从存储时很有用;在表定义中定义 |
ClusteringTypes |
聚类键的类型,在读取和写入数据到/从存储时很有用;在表定义中定义 |
StaticColumns |
表中共享列的列表 |
RegularColumns |
* 对于编码统计值,此值与当前纪元时间的差值在以最优方式编码和存储数据时使用。
