From 0d0dd3b75c6f3bf612c0b94c83a4dfb35c999c24 Mon Sep 17 00:00:00 2001 From: fariel Date: Fri, 21 May 2021 13:23:11 +0800 Subject: [PATCH] optimize joinrows function --- .../manager/DorisStreamLoadVisitor.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/doriswriter/src/main/java/com/dorisdb/connector/datax/plugin/writer/doriswriter/manager/DorisStreamLoadVisitor.java b/doriswriter/src/main/java/com/dorisdb/connector/datax/plugin/writer/doriswriter/manager/DorisStreamLoadVisitor.java index 1598d8f4..8568c7b6 100644 --- a/doriswriter/src/main/java/com/dorisdb/connector/datax/plugin/writer/doriswriter/manager/DorisStreamLoadVisitor.java +++ b/doriswriter/src/main/java/com/dorisdb/connector/datax/plugin/writer/doriswriter/manager/DorisStreamLoadVisitor.java @@ -100,10 +100,25 @@ public class DorisStreamLoadVisitor { if (null != props && props.containsKey("row_delimiter")) { lineDelimiter = DorisDelimiterParser.parse(String.valueOf(props.get("row_delimiter")), "\n"); } - return (String.join(lineDelimiter, rows) + lineDelimiter).getBytes(StandardCharsets.UTF_8); + StringBuilder sb = new StringBuilder(); + for (String row : rows) { + sb.append(row).append(lineDelimiter); + } + return sb.toString().getBytes(StandardCharsets.UTF_8); } if (DorisWriterOptions.StreamLoadFormat.JSON.equals(writerOptions.getStreamLoadFormat())) { - return new StringBuilder("[").append(String.join(",", rows)).append("]").toString().getBytes(StandardCharsets.UTF_8); + StringBuilder sb = new StringBuilder(); + sb.append("["); + boolean isFirstElement = true; + for (String row : rows) { + if (!isFirstElement) { + sb.append(","); + } + sb.append(row); + isFirstElement = false; + } + sb.append("]"); + return sb.toString().getBytes(StandardCharsets.UTF_8); } throw new RuntimeException("Failed to join rows data, unsupported `format` from stream load properties:"); }