apache/seatunnel · error · InfluxdbConnectorException

UNSUPPORTED_DATA_TYPE

UNSUPPORTED_DATA_TYPE

Error message

Unsupported data type: 

What it means

InfluxDBRowConverter.convert maps an InfluxDB query result field value to a SeaTunnel field based on the declared SeaTunnel SqlType. The branch chain only handles supported types (numeric types like FLOAT/DOUBLE/INT/BIGINT, BOOLEAN, STRING); a target SeaTunnel data type outside the supported set throws InfluxdbConnectorException with code UNSUPPORTED_DATA_TYPE naming the SeaTunnelDataType.

Source

Thrown at seatunnel-connectors-v2/connector-influxdb/src/main/java/org/apache/seatunnel/connectors/seatunnel/influxdb/converter/InfluxDBRowConverter.java:60

            SqlType fieldSqlType = seaTunnelDataType.getSqlType();
            if (null == values.get(columnIndex)) {
                seaTunnelField = null;
            } else if (SqlType.BOOLEAN.equals(fieldSqlType)) {
                seaTunnelField = Boolean.parseBoolean(values.get(columnIndex).toString());
            } else if (SqlType.SMALLINT.equals(fieldSqlType)) {
                seaTunnelField = Short.valueOf(values.get(columnIndex).toString());
            } else if (SqlType.INT.equals(fieldSqlType)) {
                seaTunnelField = Integer.valueOf(values.get(columnIndex).toString());
            } else if (SqlType.BIGINT.equals(fieldSqlType)) {
                seaTunnelField = Long.valueOf(values.get(columnIndex).toString());
            } else if (SqlType.FLOAT.equals(fieldSqlType)) {
                seaTunnelField = ((Double) values.get(columnIndex)).floatValue();
            } else if (SqlType.DOUBLE.equals(fieldSqlType)) {
                seaTunnelField = values.get(columnIndex);
            } else if (SqlType.STRING.equals(fieldSqlType)) {
                seaTunnelField = values.get(columnIndex);
            } else {
                throw new InfluxdbConnectorException(
                        CommonErrorCodeDeprecated.UNSUPPORTED_DATA_TYPE,
                        "Unsupported data type: " + seaTunnelDataType);
            }

            fields.add(seaTunnelField);
        }

        return new SeaTunnelRow(fields.toArray());
    }
}

View on GitHub (pinned to cf67b549a7)

Solutions

  1. Restrict the declared source schema types to what InfluxDB returns and the converter supports (numeric types, boolean, string)
  2. Change unsupported column types (e.g. ARRAY/MAP) to STRING and parse downstream
  3. Check the full supported-type chain in InfluxDBRowConverter and align your schema option with it
  4. Extend convert() with the missing SqlType branch if the type is legitimately representable

Example fix

// before
schema = { fields = { tag_map = "map<string,string>" } }
// after
schema = { fields = { tag_map = "string" } }
Defensive patterns

Strategy: validation

Validate before calling

java.util.Set<SqlType> ok = Set.of(SqlType.FLOAT, SqlType.DOUBLE, SqlType.STRING,
    SqlType.INT, SqlType.BIGINT, SqlType.BOOLEAN);
schemaFields.values().forEach(t -> {
    if (!ok.contains(t.getSqlType())) throw new IllegalArgumentException("Unsupported InfluxDB source type: " + t);
});

Type guard

boolean isConvertible(SeaTunnelType<?> t) {
    SqlType s = t.getSqlType();
    return s == SqlType.FLOAT || s == SqlType.DOUBLE || s == SqlType.STRING
        || s == SqlType.INT || s == SqlType.BIGINT || s == SqlType.BOOLEAN;
}

Try / catch

try {
    row = InfluxDBRowConverter.convert(...);
} catch (InfluxdbConnectorException e) {
    if ("UNSUPPORTED_DATA_TYPE".equals(String.valueOf(e.getCode()))) {
        log.error("Schema field type not supported: {}", e.getMessage());
    }
    throw e;
}

Prevention

When it happens

Trigger: Declaring an InfluxDB source schema column with a SeaTunnel type (e.g. ARRAY, MAP, ROW, BYTES, DATE/TIME variants) that the converter's if/else chain never handles, then reading a record whose field lands on that column.

Common situations: Schema config lists a complex type for an InfluxDB field; users expect Decimal/BigDecimal mapping that isn't implemented; schema drift after someone edited the schema option in the HOCON config.

Related errors


AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10). Data as JSON: /api/errors/a42326fce685a7dc. Report an issue: GitHub.