diff --git a/starrockswriter/src/main/java/com/starrocks/connector/datax/plugin/writer/starrockswriter/StarRocksWriterOptions.java b/starrockswriter/src/main/java/com/starrocks/connector/datax/plugin/writer/starrockswriter/StarRocksWriterOptions.java index 689c09e1..14ce0332 100644 --- a/starrockswriter/src/main/java/com/starrocks/connector/datax/plugin/writer/starrockswriter/StarRocksWriterOptions.java +++ b/starrockswriter/src/main/java/com/starrocks/connector/datax/plugin/writer/starrockswriter/StarRocksWriterOptions.java @@ -33,6 +33,7 @@ public class StarRocksWriterOptions implements Serializable { private static final String KEY_PRE_SQL = "preSql"; private static final String KEY_POST_SQL = "postSql"; private static final String KEY_JDBC_URL = "jdbcUrl"; + private static final String KEY_LABEL_PREFIX = "labelPrefix"; private static final String KEY_MAX_BATCH_ROWS = "maxBatchRows"; private static final String KEY_MAX_BATCH_SIZE = "maxBatchSize"; private static final String KEY_FLUSH_INTERVAL = "flushInterval"; @@ -78,6 +79,10 @@ public class StarRocksWriterOptions implements Serializable { return options.getString(KEY_PASSWORD); } + public String getLabelPrefix() { + return options.getString(KEY_LABEL_PREFIX); + } + public List getLoadUrlList() { return options.getList(KEY_LOAD_URL, String.class); } diff --git a/starrockswriter/src/main/java/com/starrocks/connector/datax/plugin/writer/starrockswriter/manager/StarRocksWriterManager.java b/starrockswriter/src/main/java/com/starrocks/connector/datax/plugin/writer/starrockswriter/manager/StarRocksWriterManager.java index d7c290df..c28c8647 100644 --- a/starrockswriter/src/main/java/com/starrocks/connector/datax/plugin/writer/starrockswriter/manager/StarRocksWriterManager.java +++ b/starrockswriter/src/main/java/com/starrocks/connector/datax/plugin/writer/starrockswriter/manager/StarRocksWriterManager.java @@ -24,6 +24,7 @@ public class StarRocksWriterManager { private final StarRocksStreamLoadVisitor starrocksStreamLoadVisitor; private final StarRocksWriterOptions writerOptions; + private static final String UNDERSCORE = "_"; private final List buffer = new ArrayList<>(); private int batchCount = 0; @@ -120,7 +121,16 @@ public class StarRocksWriterManager { } public String createBatchLabel() { - return UUID.randomUUID().toString(); + StringBuilder sb = new StringBuilder(); + if (!Strings.isNullOrEmpty(writerOptions.getLabelPrefix())) { + sb.append(writerOptions.getLabelPrefix()).append(UNDERSCORE); + } + return sb.append(writerOptions.getDatabase()) + .append(UNDERSCORE) + .append(writerOptions.getTable()) + .append(UNDERSCORE) + .append(UUID.randomUUID().toString()) + .toString(); } private void startAsyncFlushing() {