You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@linkis.apache.org by al...@apache.org on 2022/03/14 15:01:12 UTC
[incubator-linkis] branch dev-1.1.1 updated: Optimize the performance of API /api/rest_j/v1/udf/all #1726 (#1728)
This is an automated email from the ASF dual-hosted git repository.
alexkun pushed a commit to branch dev-1.1.1
in repository https://gitbox.apache.org/repos/asf/incubator-linkis.git
The following commit(s) were added to refs/heads/dev-1.1.1 by this push:
new 0654e3a Optimize the performance of API /api/rest_j/v1/udf/all #1726 (#1728)
0654e3a is described below
commit 0654e3ad458113a62522fb45588076b9600e8b27
Author: peacewong <wp...@gmail.com>
AuthorDate: Mon Mar 14 22:58:19 2022 +0800
Optimize the performance of API /api/rest_j/v1/udf/all #1726 (#1728)
---
.../main/java/org/apache/linkis/udf/api/UDFApi.java | 8 ++------
.../main/java/org/apache/linkis/udf/dao/UDFDao.java | 4 ++++
.../java/org/apache/linkis/udf/dao/impl/UDFDao.xml | 18 ++++++++++++++++++
.../org/apache/linkis/udf/service/UDFService.java | 2 ++
.../linkis/udf/service/impl/UDFServiceImpl.java | 20 ++++++++++++++++++++
5 files changed, 46 insertions(+), 6 deletions(-)
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/api/UDFApi.java b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/api/UDFApi.java
index 155bf7e..82fc548 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/api/UDFApi.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/api/UDFApi.java
@@ -89,13 +89,9 @@ public class UDFApi {
message = Message.ok();
message.data("udfTree", udfTree);
} else {
- List<UDFInfoVo> allInfo = Lists.newArrayList();
-
- UDFTree udfTree = udfTreeService.getTreeById(-1L, userName, "self", "udf");
- fetchUdfInfoRecursively(allInfo, udfTree, userName);
+ List<UDFInfoVo> allInfo = udfService.getAllUDFSByUserName(userName);
- udfTree = udfTreeService.getTreeById(-1L, userName, "self", "function");
- fetchUdfInfoRecursively(allInfo, udfTree, userName);
+ UDFTree udfTree = new UDFTree();
udfTree.setUdfInfos(allInfo);
udfTree.setChildrens(Lists.newArrayList());
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/UDFDao.java b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/UDFDao.java
index 7ef928e..258095a 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/UDFDao.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/UDFDao.java
@@ -46,6 +46,10 @@ public interface UDFDao {
List<UDFInfoVo> getUDFSByTreeIdAndUser(
Long treeId, String userName, Collection<Integer> categoryCodes);
+ List<UDFInfoVo> getUDFSByUsers(Collection<String> users);
+
+ List<UDFInfoVo> getSharedUDFByUser(String user);
+
List<Long> getSharedUDFIdsByUser(@Param("userName") String userName);
/*
List<UDFInfo> getSharedUDFByTreeId(Long treeId, String userName);
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/impl/UDFDao.xml b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/impl/UDFDao.xml
index cfec5b4..61a064e 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/impl/UDFDao.xml
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/dao/impl/UDFDao.xml
@@ -112,6 +112,24 @@
where create_user = #{arg0}
</select>
+ <select id="getUDFSByUsers" resultMap="UDFResultMap">
+ select
+ <include refid="udf_Column_List"/>
+ from linkis_ps_udf_baseinfo
+ where create_user in
+ <foreach collection="arg0" open="(" separator="," close=")" item="item">
+ #{item}
+ </foreach>
+ </select>
+
+ <select id="getSharedUDFByUser" resultMap="UDFResultMap">
+ select
+ <include refid="udf_Column_List"/>
+ from linkis_ps_udf_baseinfo
+ where id in
+ (select udf_id from linkis_ps_udf_shared_info where user_name=#{userName})
+ </select>
+
<select id="getUDFSByTreeIdAndUser" resultType="org.apache.linkis.udf.vo.UDFInfoVo">
select t1.*,puv.path,puv.register_format,puv.use_format,puv.bml_resource_id,puv.bml_resource_version,puv.description
from
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/UDFService.java b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/UDFService.java
index c1fe225..56c1a5f 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/UDFService.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/UDFService.java
@@ -115,4 +115,6 @@ public interface UDFService {
List<String> allUdfUsers();
List<String> getUserDirectory(String user, String category);
+
+ List<UDFInfoVo> getAllUDFSByUserName(String userName) throws UDFException;
}
diff --git a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/impl/UDFServiceImpl.java b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/impl/UDFServiceImpl.java
index a72a026..cf44ef9 100644
--- a/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/impl/UDFServiceImpl.java
+++ b/linkis-public-enhancements/linkis-publicservice/linkis-udf/linkis-udf-service/src/main/java/org/apache/linkis/udf/service/impl/UDFServiceImpl.java
@@ -680,6 +680,26 @@ public class UDFServiceImpl implements UDFService {
return udfTreeDao.getUserDirectory(user, category);
}
+ @Override
+ public List<UDFInfoVo> getAllUDFSByUserName(String userName) throws UDFException {
+ logger.info("Start to get all udf {}", userName);
+ List<String> users = new ArrayList<String>();
+ users.add(SYS_USER);
+ users.add(BDP_USER);
+ users.add(userName);
+ List<UDFInfoVo> udfsByUsers = udfDao.getUDFSByUsers(users);
+ List<UDFInfoVo> sharedUDFByUser = udfDao.getSharedUDFByUser(userName);
+ List<UDFInfoVo> udfInfoVos = new ArrayList<>();
+ if (null != udfsByUsers) {
+ udfInfoVos.addAll(udfsByUsers);
+ }
+ if (null != sharedUDFByUser) {
+ udfInfoVos.addAll(sharedUDFByUser);
+ }
+ logger.info("Finished to get all udf {}, size {}", userName, udfInfoVos.size());
+ return udfInfoVos;
+ }
+
// @Override
// public FsPath copySharedUdfFile(String userName, UDFInfo udfInfo) throws IOException {
// String fileName = FilenameUtils.getBaseName(udfInfo.getPath()) +
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@linkis.apache.org
For additional commands, e-mail: commits-help@linkis.apache.org