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 |
*
对于编码统计值,此值与当前纪元时间的差值在以最优方式编码和存储数据时使用。