This is an automated email from the ASF dual-hosted git repository.

dockerzhang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/inlong.git


The following commit(s) were added to refs/heads/master by this push:
     new 60194e73e0 [INLONG-8490][Manager] Duplicate queried audit data 
according to all fields (#8492)
60194e73e0 is described below

commit 60194e73e060fd42af67772215f48e979b7b3559
Author: megru <[email protected]>
AuthorDate: Wed Jul 12 11:22:22 2023 +0800

    [INLONG-8490][Manager] Duplicate queried audit data according to all fields 
(#8492)
---
 .../src/main/resources/mappers/AuditEntityMapper.xml     | 16 ++++++++++------
 .../manager/service/core/impl/AuditServiceImpl.java      | 13 ++++++++++---
 2 files changed, 20 insertions(+), 9 deletions(-)

diff --git 
a/inlong-manager/manager-dao/src/main/resources/mappers/AuditEntityMapper.xml 
b/inlong-manager/manager-dao/src/main/resources/mappers/AuditEntityMapper.xml
index ba8ffbf21b..5722857ffa 100644
--- 
a/inlong-manager/manager-dao/src/main/resources/mappers/AuditEntityMapper.xml
+++ 
b/inlong-manager/manager-dao/src/main/resources/mappers/AuditEntityMapper.xml
@@ -38,16 +38,20 @@
     <resultMap id="SumByLogTsResultMap" type="java.util.Map">
         <result column="log_ts" property="logTs" jdbcType="VARCHAR"/>
         <result column="total" property="total" jdbcType="BIGINT"/>
+        <result column="total_delay" property="totalDelay" jdbcType="BIGINT"/>
     </resultMap>
 
     <select id="sumByLogTs" resultMap="SumByLogTsResultMap">
         select date_format(log_ts, #{format, jdbcType=VARCHAR}) as log_ts, 
sum(`count`) as total, sum(`delay`) as total_delay
-        from apache_inlong_audit.audit_data
-        where inlong_group_id = #{groupId,jdbcType=VARCHAR}
-          and inlong_stream_id = #{streamId,jdbcType=VARCHAR}
-          and audit_id = #{auditId,jdbcType=VARCHAR}
-          and log_ts &gt;= #{sDate, jdbcType=VARCHAR}
-          and log_ts &lt; #{eDate, jdbcType=VARCHAR}
+        from (
+            select distinct ip, docker_id, thread_id, sdk_ts, packet_id, 
log_ts, inlong_group_id, inlong_stream_id, audit_id, `count`, `size`, `delay`
+            from apache_inlong_audit.audit_data
+            where inlong_group_id = #{groupId,jdbcType=VARCHAR}
+              and inlong_stream_id = #{streamId,jdbcType=VARCHAR}
+              and audit_id = #{auditId,jdbcType=VARCHAR}
+              and log_ts &gt;= #{sDate, jdbcType=VARCHAR}
+              and log_ts &lt; #{eDate, jdbcType=VARCHAR}
+            ) as sub
         group by log_ts
         order by log_ts
     </select>
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/impl/AuditServiceImpl.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/impl/AuditServiceImpl.java
index d8c85413ce..8a526caa4a 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/impl/AuditServiceImpl.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/impl/AuditServiceImpl.java
@@ -265,7 +265,7 @@ public class AuditServiceImpl implements AuditService {
                     AuditInfo vo = new AuditInfo();
                     vo.setLogTs((String) s.get("logTs"));
                     vo.setCount(((BigDecimal) s.get("total")).longValue());
-                    vo.setDelay(((BigDecimal) 
s.get("total_delay")).longValue());
+                    vo.setCount(((BigDecimal) 
s.get("totalDelay")).longValue());
                     return vo;
                 }).collect(Collectors.toList());
                 result.add(new AuditVO(auditId, auditSet,
@@ -380,14 +380,21 @@ public class AuditServiceImpl implements AuditService {
         String start = 
DAY_DATE_FORMATTER.parseDateTime(startDate).toString(SECOND_FORMAT);
         String end = 
DAY_DATE_FORMATTER.parseDateTime(endDate).plusDays(1).toString(SECOND_FORMAT);
 
-        String sql = new SQL()
-                .SELECT("log_ts", "sum(count) as total", "sum(delay) as 
total_delay")
+        // Query results are duplicated according to all fields.
+        String subQuery = new SQL()
+                .SELECT_DISTINCT("ip", "docker_id", "thread_id", "sdk_ts", 
"packet_id", "log_ts", "inlong_group_id",
+                        "inlong_stream_id", "audit_id", "count", "size", 
"delay")
                 .FROM("audit_data")
                 .WHERE("inlong_group_id = ?")
                 .WHERE("inlong_stream_id = ?")
                 .WHERE("audit_id = ?")
                 .WHERE("log_ts >= ?")
                 .WHERE("log_ts < ?")
+                .toString();
+
+        String sql = new SQL()
+                .SELECT("log_ts", "sum(count) as total", "sum(delay) as 
total_delay")
+                .FROM("(" + subQuery + ") as sub")
                 .GROUP_BY("log_ts")
                 .ORDER_BY("log_ts")
                 .toString();

Reply via email to