|
@@ -7,9 +7,7 @@ import com.aliyun.odps.account.AliyunAccount;
|
|
|
import com.aliyun.odps.data.Record;
|
|
|
import com.aliyun.odps.task.SQLTask;
|
|
|
import flink.zanxiangnet.ad.monitoring.maxcompute.MaxComputeLog;
|
|
|
-import flink.zanxiangnet.ad.monitoring.pojo.entity.AdDataOfMinuteODS;
|
|
|
-import flink.zanxiangnet.ad.monitoring.pojo.entity.AdStatOfDayDWD;
|
|
|
-import flink.zanxiangnet.ad.monitoring.pojo.entity.AdStatOfMinuteDWD;
|
|
|
+import flink.zanxiangnet.ad.monitoring.pojo.entity.*;
|
|
|
import flink.zanxiangnet.ad.monitoring.pojo.properties.ApplicationProperties;
|
|
|
import flink.zanxiangnet.ad.monitoring.util.DateUtil;
|
|
|
import flink.zanxiangnet.ad.monitoring.util.JsonUtil;
|
|
@@ -21,6 +19,7 @@ import org.apache.flink.configuration.Configuration;
|
|
|
import org.apache.flink.streaming.api.functions.windowing.ProcessWindowFunction;
|
|
|
import org.apache.flink.streaming.api.windowing.windows.TimeWindow;
|
|
|
import org.apache.flink.util.Collector;
|
|
|
+import org.apache.flink.util.OutputTag;
|
|
|
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
@@ -33,8 +32,10 @@ import java.util.stream.Collectors;
|
|
|
|
|
|
public class AdMinuteDWDProcess extends ProcessWindowFunction<AdDataOfMinuteODS, AdStatOfMinuteDWD, Long, TimeWindow> {
|
|
|
private static final DateTimeFormatter formatForLastReduceKey = DateTimeFormatter.ofPattern("yyyy-MM-dd_HH:mm");
|
|
|
- private Odps odps;
|
|
|
|
|
|
+ private final OutputTag<AdStatOfHourDWD> adHourFromMinuteStreamTag;
|
|
|
+
|
|
|
+ private Odps odps;
|
|
|
// 历史的天数据
|
|
|
private ValueState<AdStatOfDayDWD> historyDayState;
|
|
|
// 上次查询的天数据
|
|
@@ -44,6 +45,10 @@ public class AdMinuteDWDProcess extends ProcessWindowFunction<AdDataOfMinuteODS,
|
|
|
// 前 5分钟聚合的数据
|
|
|
private MapState<String, AdStatOfMinuteDWD> lastReduceState;
|
|
|
|
|
|
+ public AdMinuteDWDProcess(OutputTag<AdStatOfHourDWD> adHourFromMinuteStreamTag) {
|
|
|
+ this.adHourFromMinuteStreamTag = adHourFromMinuteStreamTag;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void open(Configuration conf) {
|
|
|
Map<String, String> params = getRuntimeContext()
|
|
@@ -117,6 +122,9 @@ public class AdMinuteDWDProcess extends ProcessWindowFunction<AdDataOfMinuteODS,
|
|
|
// 聚合当天的全部数据
|
|
|
AdStatOfMinuteDWD newAdStat = AdStatOfMinuteDWD.reduce(beforeYesterdayDayDWD, yesterdayMinuteDWD, adDataOfMinuteODSList, statODS, lastReduceData, now);
|
|
|
collector.collect(newAdStat);
|
|
|
+ if (beginDateTime.getMinute() == 55) {
|
|
|
+ context.output(adHourFromMinuteStreamTag, AdStatOfHourDWD.byMinuteDWD(newAdStat));
|
|
|
+ }
|
|
|
lastReduceState.put(beginDateTime.format(formatForLastReduceKey), newAdStat);
|
|
|
yesterdayMinuteState.put(statDay, newAdStat);
|
|
|
|