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 >= #{sDate, jdbcType=VARCHAR}
- and log_ts < #{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 >= #{sDate, jdbcType=VARCHAR}
+ and log_ts < #{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();