This is an automated email from the ASF dual-hosted git repository. shuwenwei pushed a commit to branch printTableSchemaMapInTsFileSketchTool in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 8acd7c966dfd73125d97d454ffc6492bfa19d53b Author: shuwenwei <[email protected]> AuthorDate: Fri Jan 16 11:41:03 2026 +0800 Print TableSchemaMap in TsFileSketchTool --- .../apache/iotdb/db/tools/TsFileSketchTool.java | 30 ++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/TsFileSketchTool.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/TsFileSketchTool.java index 3d70faa5923..8b04018abf5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/TsFileSketchTool.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/tools/TsFileSketchTool.java @@ -20,6 +20,7 @@ package org.apache.iotdb.db.tools; import org.apache.tsfile.common.conf.TSFileConfig; +import org.apache.tsfile.enums.ColumnCategory; import org.apache.tsfile.file.IMetadataIndexEntry; import org.apache.tsfile.file.MetaMarker; import org.apache.tsfile.file.header.ChunkGroupHeader; @@ -30,6 +31,7 @@ import org.apache.tsfile.file.metadata.DeviceMetadataIndexEntry; import org.apache.tsfile.file.metadata.IChunkMetadata; import org.apache.tsfile.file.metadata.IDeviceID; import org.apache.tsfile.file.metadata.MetadataIndexNode; +import org.apache.tsfile.file.metadata.TableSchema; import org.apache.tsfile.file.metadata.TimeseriesMetadata; import org.apache.tsfile.file.metadata.TsFileMetadata; import org.apache.tsfile.file.metadata.enums.MetadataIndexNodeType; @@ -40,6 +42,7 @@ import org.apache.tsfile.read.common.Chunk; import org.apache.tsfile.read.common.Path; import org.apache.tsfile.utils.BloomFilter; import org.apache.tsfile.utils.Pair; +import org.apache.tsfile.write.schema.IMeasurementSchema; import org.apache.tsfile.write.schema.Schema; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -87,6 +90,7 @@ public class TsFileSketchTool { this.filename = filename; pw = new PrintWriter(new FileWriter(outFile)); reader = new TsFileSketchToolReader(filename); + reader.setEnableCacheTableSchemaMap(); StringBuilder str1 = new StringBuilder(); for (int i = 0; i < 21; i++) { str1.append("|"); @@ -188,6 +192,9 @@ public class TsFileSketchTool { printIndexOfTimerseriesIndex(reader.getFileMetadataPos(), rootNode); } + // tableSchema + printTableSchemaMap(tsFileMetaData.getTableSchemaMap()); + // metaOffset printlnBoth( pw, String.format("%20s", "") + "|\t[meta offset] " + tsFileMetaData.getMetaOffset()); @@ -266,6 +273,29 @@ public class TsFileSketchTool { String.format("%20s", "") + "|\t\t<endOffset, " + metadataIndexNode.getEndOffset() + ">"); } + private void printTableSchemaMap(Map<String, TableSchema> tableSchemaMap) { + if (tableSchemaMap == null || tableSchemaMap.isEmpty()) { + return; + } + printlnBoth(pw, String.format("%20s", "") + "|\t[TableSchemaMap]"); + for (Entry<String, TableSchema> entry : tableSchemaMap.entrySet()) { + String tableName = entry.getKey(); + TableSchema tableSchema = entry.getValue(); + printlnBoth(pw, String.format("%20s", "") + String.format("|\t\t[TableSchema] " + tableName)); + List<ColumnCategory> columnTypes = tableSchema.getColumnTypes(); + List<IMeasurementSchema> columnSchemas = tableSchema.getColumnSchemas(); + for (int i = 0; i < columnTypes.size(); i++) { + IMeasurementSchema columnSchema = columnSchemas.get(i); + printlnBoth( + pw, + String.format("%20s", "") + + String.format( + "|\t\t\t[%s, %s, %s]", + columnSchema.getMeasurementName(), columnSchema.getType(), columnTypes.get(i))); + } + } + } + private void printFileInfo() { try { printlnBoth(pw, "");
