|
|
@@ -44,11 +44,8 @@ public class TdEngineService {
|
|
44
|
44
|
// 默认批量大小
|
|
45
|
45
|
private static final int DEFAULT_BATCH_SIZE = 50;
|
|
46
|
46
|
|
|
47
|
|
- // device_id 字段长度限制
|
|
48
|
|
- private static final int DEVICE_ID_VARCHAR_LENGTH = 32;
|
|
49
|
|
-
|
|
50
|
47
|
// 默认 VARCHAR 字段长度限制
|
|
51
|
|
- private static final int DEFAULT_VARCHAR_LENGTH = 38;
|
|
|
48
|
+ private static final int DEFAULT_VARCHAR_LENGTH = 255;
|
|
52
|
49
|
|
|
53
|
50
|
// 东八区时区偏移(避免重复创建)
|
|
54
|
51
|
private static final ZoneOffset ZONE_OFFSET_8 = ZoneOffset.of("+8");
|
|
|
@@ -412,10 +409,6 @@ public class TdEngineService {
|
|
412
|
409
|
* 根据 TdEngine 列类型获取创建列的 SQL 类型
|
|
413
|
410
|
*/
|
|
414
|
411
|
private String getColumnTypeForDDL(String tdType, String columnName) {
|
|
415
|
|
- // device_id 固定 32,兼容旧表(旧表为 VARCHAR(32))
|
|
416
|
|
- if ("device_id".equalsIgnoreCase(columnName)) {
|
|
417
|
|
- return "VARCHAR(" + DEVICE_ID_VARCHAR_LENGTH + ")";
|
|
418
|
|
- }
|
|
419
|
412
|
switch (tdType) {
|
|
420
|
413
|
case "BOOL":
|
|
421
|
414
|
case "BIGINT":
|
|
|
@@ -469,19 +462,10 @@ public class TdEngineService {
|
|
469
|
462
|
}
|
|
470
|
463
|
|
|
471
|
464
|
// 字符串类型校验长度
|
|
472
|
|
- int maxLen = "device_id".equalsIgnoreCase(columnName) ? DEVICE_ID_VARCHAR_LENGTH : DEFAULT_VARCHAR_LENGTH;
|
|
473
|
|
- if ("device_id".equalsIgnoreCase(columnName)) {
|
|
474
|
|
- // UUID 去掉连字符适配旧表 VARCHAR(32)
|
|
475
|
|
- if (strValue.length() == 36 && strValue.charAt(8) == '-' && strValue.charAt(13) == '-'
|
|
476
|
|
- && strValue.charAt(18) == '-' && strValue.charAt(23) == '-') {
|
|
477
|
|
- strValue = strValue.replace("-", "");
|
|
478
|
|
- log.debug("device_id UUID 去连字符: {} -> {}", value, strValue);
|
|
479
|
|
- }
|
|
480
|
|
- }
|
|
481
|
|
- if (strValue.length() > maxLen) {
|
|
|
465
|
+ if (strValue.length() > DEFAULT_VARCHAR_LENGTH) {
|
|
482
|
466
|
log.debug("字段值超长,截断存储 | 列: {} | 值长度: {} | 最大: {} | 截断后: {}...",
|
|
483
|
|
- columnName, strValue.length(), maxLen, strValue.substring(0, maxLen));
|
|
484
|
|
- strValue = strValue.substring(0, maxLen);
|
|
|
467
|
+ columnName, strValue.length(), DEFAULT_VARCHAR_LENGTH, strValue.substring(0, DEFAULT_VARCHAR_LENGTH));
|
|
|
468
|
+ strValue = strValue.substring(0, DEFAULT_VARCHAR_LENGTH);
|
|
485
|
469
|
}
|
|
486
|
470
|
return "'" + escapeValue(strValue) + "'";
|
|
487
|
471
|
}
|