This is an automated email from the ASF dual-hosted git repository. vernedeng pushed a commit to branch branch-1.8 in repository https://gitbox.apache.org/repos/asf/inlong.git
commit 2f4f12c8a995599b0b71798a70ca0c9892cadf93 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();
