From 70489fe749cf3194872edc2199ebd286495124ea Mon Sep 17 00:00:00 2001 From: slothever <18522955+wsjz@users.noreply.github.com> Date: Fri, 22 Mar 2024 10:37:26 +0800 Subject: [PATCH] [fix](insert)fix hive table sink write path (#32587) issue: #31442 fix hive table sink write path to hdfs://${hdfs_root}/tmp/.doris_staging/${user} --- .../java/org/apache/doris/common/util/LocationPath.java | 7 +++++++ .../main/java/org/apache/doris/planner/HiveTableSink.java | 3 +-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/util/LocationPath.java b/fe/fe-core/src/main/java/org/apache/doris/common/util/LocationPath.java index e9fb932b6d..005a8f2cb8 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/common/util/LocationPath.java +++ b/fe/fe-core/src/main/java/org/apache/doris/common/util/LocationPath.java @@ -43,6 +43,7 @@ import java.nio.file.InvalidPathException; import java.nio.file.Paths; import java.util.HashMap; import java.util.Map; +import java.util.UUID; public class LocationPath { private static final Logger LOG = LogManager.getLogger(LocationPath.class); @@ -398,6 +399,12 @@ public class LocationPath { return new Path(location); } + public static String getTempWritePath(String loc, String prefix) { + Path tempRoot = new Path(loc, prefix); + Path tempPath = new Path(tempRoot, UUID.randomUUID().toString().replace("-", "")); + return tempPath.toString(); + } + @Override public String toString() { return get(); diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/HiveTableSink.java b/fe/fe-core/src/main/java/org/apache/doris/planner/HiveTableSink.java index 4652c132a9..c2debe3a4a 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/planner/HiveTableSink.java +++ b/fe/fe-core/src/main/java/org/apache/doris/planner/HiveTableSink.java @@ -47,7 +47,6 @@ import java.util.HashSet; import java.util.List; import java.util.Optional; import java.util.Set; -import java.util.UUID; import java.util.stream.Collectors; public class HiveTableSink extends DataSink { @@ -153,7 +152,7 @@ public class HiveTableSink extends DataSink { private String createTempPath(String location) { String user = ConnectContext.get().getUserIdentity().getQualifiedUser(); - return location + "/.doris_staging/" + user + "/" + UUID.randomUUID().toString().replace("-", ""); + return LocationPath.getTempWritePath(location, "/tmp/.doris_staging/" + user); } private void setCompressType(THiveTableSink tSink, TFileFormatType formatType) {