This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 30eebf24d72 Print TableSchemaMap in TsFileSketchTool (#17031)
30eebf24d72 is described below
commit 30eebf24d7233eef1f4150496726cbc74a271165
Author: shuwenwei <[email protected]>
AuthorDate: Fri Jan 16 14:16:28 2026 +0800
Print TableSchemaMap in TsFileSketchTool (#17031)
---
.../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, "");