From b9cec9581c56f1cca369f8cdc6a58de2b8677c4b Mon Sep 17 00:00:00 2001 From: Caideyipi <87789683+Caideyipi@users.noreply.github.com> Date: Thu, 9 Jul 2026 17:49:59 +0800 Subject: [PATCH] Reduce pipe type conversion log frequency (#18161) --- .../PipeConvertedInsertRowStatement.java | 29 +++++++++---------- .../PipeConvertedInsertTabletStatement.java | 14 +++++---- ...tementDataTypeConvertExecutionVisitor.java | 8 ++++- 3 files changed, 28 insertions(+), 23 deletions(-) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/transform/statement/PipeConvertedInsertRowStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/transform/statement/PipeConvertedInsertRowStatement.java index 48c2f65a46f84..530d6239662ad 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/transform/statement/PipeConvertedInsertRowStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/transform/statement/PipeConvertedInsertRowStatement.java @@ -85,13 +85,13 @@ public PipeConvertedInsertRowStatement(final InsertRowStatement insertRowStateme @Override protected boolean checkAndCastDataType(int columnIndex, TSDataType dataType) { - PipeLogger.log( - LOGGER::info, - "Pipe: Inserting row to %s.%s. Casting type from %s to %s.", - devicePath, - measurements[columnIndex], - dataTypes[columnIndex], - dataType); + if (LOGGER.isInfoEnabled()) { + PipeLogger.log( + LOGGER::info, + "Pipe: Inserting row. Casting type from %s to %s.", + dataTypes[columnIndex], + dataType); + } values[columnIndex] = ValueConverter.convert(dataTypes[columnIndex], dataType, values[columnIndex]); dataTypes[columnIndex] = dataType; @@ -122,15 +122,12 @@ public void transferType(ZoneId zoneId) throws QueryProcessException { try { values[i] = ValueConverter.parse(values[i].toString(), dataTypes[i]); } catch (Exception e) { - PipeLogger.log( - LOGGER::warn, - "data type of %s.%s is not consistent, " - + "registered type %s, inserting timestamp %s, value %s", - devicePath, - measurements[i], - dataTypes[i], - time, - values[i]); + if (LOGGER.isWarnEnabled()) { + PipeLogger.log( + LOGGER::warn, + "Pipe: Failed to parse row value during data type conversion. Registered type %s.", + dataTypes[i]); + } if (!IoTDBDescriptor.getInstance().getConfig().isEnablePartialInsert()) { throw e; } else { diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/transform/statement/PipeConvertedInsertTabletStatement.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/transform/statement/PipeConvertedInsertTabletStatement.java index 7a0052422832f..d2a58ed54084c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/transform/statement/PipeConvertedInsertTabletStatement.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/transform/statement/PipeConvertedInsertTabletStatement.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.pipe.receiver.transform.statement; +import org.apache.iotdb.commons.pipe.resource.log.PipeLogger; import org.apache.iotdb.db.pipe.receiver.transform.converter.ArrayConverter; import org.apache.iotdb.db.queryengine.plan.statement.crud.InsertTabletStatement; @@ -89,12 +90,13 @@ public PipeConvertedInsertTabletStatement(final InsertTabletStatement insertTabl @Override protected boolean checkAndCastDataType(int columnIndex, TSDataType dataType) { - LOGGER.info( - "Pipe: Inserting tablet to {}.{}. Casting type from {} to {}.", - devicePath, - measurements[columnIndex], - dataTypes[columnIndex], - dataType); + if (LOGGER.isInfoEnabled()) { + PipeLogger.log( + LOGGER::info, + "Pipe: Inserting tablet. Casting type from %s to %s.", + dataTypes[columnIndex], + dataType); + } columns[columnIndex] = ArrayConverter.convert(dataTypes[columnIndex], dataType, columns[columnIndex]); dataTypes[columnIndex] = dataType; diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementDataTypeConvertExecutionVisitor.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementDataTypeConvertExecutionVisitor.java index 7443879bec047..1911a6474f32b 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementDataTypeConvertExecutionVisitor.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/receiver/visitor/PipeStatementDataTypeConvertExecutionVisitor.java @@ -22,6 +22,7 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.pipe.config.PipeConfig; import org.apache.iotdb.commons.pipe.datastructure.pattern.IoTDBPipePattern; +import org.apache.iotdb.commons.pipe.resource.log.PipeLogger; import org.apache.iotdb.db.pipe.event.common.tsfile.container.scan.TsFileInsertionScanDataContainer; import org.apache.iotdb.db.pipe.receiver.protocol.thrift.IoTDBDataNodeReceiver; import org.apache.iotdb.db.pipe.receiver.transform.statement.PipeConvertedInsertRowStatement; @@ -73,7 +74,12 @@ private Optional tryExecute(final Statement statement) { try { return Optional.of(statementExecutor.execute(statement)); } catch (final Exception e) { - LOGGER.warn("Failed to execute statement after data type conversion.", e); + if (LOGGER.isWarnEnabled()) { + PipeLogger.log( + LOGGER::warn, + "Pipe: Failed to execute statement after data type conversion. Exception type: %s.", + e.getClass().getName()); + } return Optional.empty(); } }