sstablemetadata
從相關的 Statistics.db 和 Summary.db 檔案將 sstable 的資訊列印到標準輸出。
在執行此工具之前,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 寬限秒數
若要查看在設定的 gc 寬限秒數下可捨棄的墓碑比率,請使用 gc_grace_seconds 選項。由於 sstablemetadata 工具不會直接存取架構,因此這是一種更精確估計可捨棄墓碑的方式,例如,如果您傳入與架構中設定值相符的 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 中 |
Bloom 濾波器 FP |
讀取時使用的 Bloom 濾波器精度;定義在資料表定義中 |
最小時間戳記 |
此 SSTable 中任何條目的最小時間戳記(以紀元微秒為單位) |
最大時間戳記 |
此 SSTable 中任何條目的最大時間戳記(以紀元微秒為單位) |
持續時間 |
最大時間戳記與最小時間戳記之間的差異 |
SSTable 最小本機刪除時間 |
基於 TTL 的刪除日期最小時間戳記(以紀元秒為單位) |
SSTable 最大本機刪除時間 |
基於 TTL 的刪除日期最大時間戳記(以紀元秒為單位) |
壓縮器 |
預設為空白 (-);如果不空白,表示已在資料表上啟用的壓縮類型 |
TTL 最小值 |
以秒為單位的存活時間;除非在資料表定義中定義,否則預設為 0 |
TTL 最大值 |
以秒為單位的存活時間;除非在資料表定義中定義,否則預設為 0 |
第一個權杖 |
在 SSTable 摘要中找到的最低權杖和相關金鑰 |
最後一個權杖 |
在 SSTable 摘要中找到的最高權杖和相關金鑰 |
估計可捨棄的墓碑 |
墓碑與欄位的比率,如果相關,則使用設定的 gc 寬限秒數 |
SSTable 層級 |
此 SSTable 的壓縮層級(如果使用分層壓縮 (LCS)) |
修復於 |
此 SSTable 標記為透過 sstablerepairedset 修復的時間戳記(以紀元毫秒為單位) |
已涵蓋的重播位置 |
與此 SSTable 相關的時間間隔和提交記錄位置 |
totalColumnsSet |
資料表中的儲存格數 |
totalRows |
資料表中的列數 |
估計的墓碑捨棄時間 |
將過期的列數近似值,依紀元秒排序 |
計數列大小儲存格計數 |
兩欄中兩個直方圖;一個表示列大小的分布,另一個表示儲存格數量的分布 |
估計基數,用於壓縮的唯一值估計 |
編碼統計* minTTL |
以歷元毫秒為單位 |
編碼統計* minLocalDeletionTime |
以歷元秒為單位 |
編碼統計* minTimestamp |
以歷元微秒為單位 |
鍵類型 |
分割鍵的類型,用於從儲存中讀取和寫入資料;在表格定義中定義 |
叢集類型 |
叢集鍵的類型,用於從儲存中讀取和寫入資料;在表格定義中定義 |
靜態欄位 |
表格中共用欄位的清單 |
常規欄位 |
*
對於編碼統計值,此值與當前歷元時間的差值會在以最最佳方式編碼和儲存資料時使用。