Commit 35c8ebab54e16cfd3cbb4a7db091577421ca24d2
1 parent
8478cd9b
Cassandra ts latest migration improvements
Showing
1 changed file
with
18 additions
and
8 deletions
... | ... | @@ -29,7 +29,8 @@ import org.thingsboard.server.dao.model.sqlts.dictionary.TsKvDictionaryComposite |
29 | 29 | import org.thingsboard.server.dao.model.sqlts.latest.TsKvLatestEntity; |
30 | 30 | import org.thingsboard.server.dao.sqlts.dictionary.TsKvDictionaryRepository; |
31 | 31 | import org.thingsboard.server.dao.sqlts.insert.latest.InsertLatestTsRepository; |
32 | -import org.thingsboard.server.dao.util.NoSqlAnyDao; | |
32 | +import org.thingsboard.server.dao.util.NoSqlTsDao; | |
33 | +import org.thingsboard.server.dao.util.SqlTsLatestDao; | |
33 | 34 | import org.thingsboard.server.service.install.EntityDatabaseSchemaService; |
34 | 35 | |
35 | 36 | import java.sql.Connection; |
... | ... | @@ -51,11 +52,13 @@ import static org.thingsboard.server.service.install.migrate.CassandraToSqlColum |
51 | 52 | |
52 | 53 | @Service |
53 | 54 | @Profile("install") |
54 | -@NoSqlAnyDao | |
55 | +@NoSqlTsDao | |
56 | +@SqlTsLatestDao | |
55 | 57 | @Slf4j |
56 | 58 | public class CassandraTsLatestToSqlMigrateService implements TsLatestMigrateService { |
57 | 59 | |
58 | - private static final int LATEST_KEY_LENGTH = 255; | |
60 | + private static final int MAX_KEY_LENGTH = 255; | |
61 | + private static final int MAX_STR_V_LENGTH = 10000000; | |
59 | 62 | |
60 | 63 | @Autowired |
61 | 64 | private EntityDatabaseSchemaService entityDatabaseSchemaService; |
... | ... | @@ -95,11 +98,10 @@ public class CassandraTsLatestToSqlMigrateService implements TsLatestMigrateServ |
95 | 98 | log.error("Unexpected error during ThingsBoard entities data migration!", e); |
96 | 99 | throw e; |
97 | 100 | } |
98 | - entityDatabaseSchemaService.createDatabaseIndexes(); | |
99 | 101 | } |
100 | 102 | |
101 | 103 | private List<CassandraToSqlTable> tables = Arrays.asList( |
102 | - new CassandraToSqlTable("ts_kv_latest_cf", | |
104 | + new CassandraToSqlTable("ts_kv_latest_cf", "ts_kv_latest", | |
103 | 105 | idColumn("entity_id"), |
104 | 106 | stringColumn("key"), |
105 | 107 | bigintColumn("ts"), |
... | ... | @@ -129,6 +131,12 @@ public class CassandraTsLatestToSqlMigrateService implements TsLatestMigrateServ |
129 | 131 | |
130 | 132 | String strV = data[4].getValue(); |
131 | 133 | if (strV != null) { |
134 | + if (strV.length() > MAX_STR_V_LENGTH) { | |
135 | + log.warn("[ts_kv_latest] Value size [{}] exceeds maximum size [{}] of column [str_v] and will be truncated!", | |
136 | + strV.length(), MAX_STR_V_LENGTH); | |
137 | + log.warn("Affected data:\n{}", strV); | |
138 | + strV = strV.substring(0, MAX_STR_V_LENGTH); | |
139 | + } | |
132 | 140 | latestEntity.setStrValue(strV); |
133 | 141 | } else { |
134 | 142 | Long longV = null; |
... | ... | @@ -170,9 +178,11 @@ public class CassandraTsLatestToSqlMigrateService implements TsLatestMigrateServ |
170 | 178 | } |
171 | 179 | |
172 | 180 | protected Integer getOrSaveKeyId(String strKey) { |
173 | - if (strKey.length() > LATEST_KEY_LENGTH) { | |
174 | - log.warn("Key is long. Max key length is 255\n{}", strKey); | |
175 | - strKey = strKey.substring(0, LATEST_KEY_LENGTH); | |
181 | + if (strKey.length() > MAX_KEY_LENGTH) { | |
182 | + log.warn("[ts_kv_latest] Value size [{}] exceeds maximum size [{}] of column [key] and will be truncated!", | |
183 | + strKey.length(), MAX_KEY_LENGTH); | |
184 | + log.warn("Affected data:\n{}", strKey); | |
185 | + strKey = strKey.substring(0, MAX_KEY_LENGTH); | |
176 | 186 | } |
177 | 187 | |
178 | 188 | Integer keyId = tsKvDictionaryMap.get(strKey); | ... | ... |