|
|
@@ -127,21 +127,18 @@ public class ChannelDemandMatchJob {
|
|
|
ChannelDemandMatchResult result = new ChannelDemandMatchResult();
|
|
|
result.setConfigId(config.getId());
|
|
|
result.setDt(dt);
|
|
|
- result.setChannelName(channelName);
|
|
|
+ result.setChannelName(record.getString("人群_渠道"));
|
|
|
result.setCrowdSegment(record.getString("人群细分"));
|
|
|
- result.setDimension(record.getString("维度"));
|
|
|
- result.setPointType(record.getString("点类型"));
|
|
|
- result.setStandardElement(record.getString("标准化元素"));
|
|
|
- result.setCategoryName(record.getString("分类名称"));
|
|
|
+ result.setDimension(record.getString("驱动维度_空间"));
|
|
|
+ result.setPointType(record.getString("需求特征点类型"));
|
|
|
+ result.setStandardElement(record.getString("需求特征点"));
|
|
|
+ result.setCategoryName(record.getString("需求特征类"));
|
|
|
|
|
|
// 统计指标
|
|
|
- result.setCrowdCount(safeGetInt(record, "人群人数"));
|
|
|
- result.setVideoCount(safeGetInt(record, "视频量"));
|
|
|
- result.setVisitUv(safeGetLong(record, "访问uv"));
|
|
|
- result.setVisitPv(safeGetLong(record, "访问pv"));
|
|
|
- result.setSharePv(safeGetLong(record, "单层分享pv"));
|
|
|
- result.setBackflowUv(safeGetLong(record, "拉回uv"));
|
|
|
- result.setTotalRov(safeGetDouble(record, "总rov"));
|
|
|
+ result.setCrowdCount(safeGetInt(record, "人群总数量"));
|
|
|
+ result.setVideoCount(safeGetInt(record, "内容数量"));
|
|
|
+ result.setVisitUv(safeGetLong(record, "群体访问uv"));
|
|
|
+ result.setTotalRov(safeGetDouble(record, "群体rov"));
|
|
|
|
|
|
result.setMatchStatus((short) 0); // 待匹配
|
|
|
|
|
|
@@ -244,9 +241,6 @@ public class ChannelDemandMatchJob {
|
|
|
row.setCrowdCount(demand.getCrowdCount());
|
|
|
row.setVideoCount(demand.getVideoCount());
|
|
|
row.setVisitUv(demand.getVisitUv());
|
|
|
- row.setVisitPv(demand.getVisitPv());
|
|
|
- row.setSharePv(demand.getSharePv());
|
|
|
- row.setBackflowUv(demand.getBackflowUv());
|
|
|
row.setTotalRov(demand.getTotalRov());
|
|
|
// 填充匹配结果
|
|
|
row.setMatchVideoId(item.getVideoId());
|
|
|
@@ -271,34 +265,26 @@ public class ChannelDemandMatchJob {
|
|
|
*/
|
|
|
private String buildDemandSql(String channelName, String dt, int minUv, double minRov) {
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
- sb.append("SELECT 人群细分");
|
|
|
- sb.append(",CONCAT(CASE WHEN 来源 = '传播' THEN '传播' WHEN 来源 = '增长首层' THEN '增长' END,");
|
|
|
- sb.append("'的',CASE WHEN 场景 = 'dist' THEN '分发' WHEN 场景 = 'head' THEN '头部' END) AS 维度");
|
|
|
- sb.append(",点类型");
|
|
|
- sb.append(",标准化元素");
|
|
|
- sb.append(",分类名称");
|
|
|
- sb.append(",CAST(AVG(人群人数) AS BIGINT) AS 人群人数");
|
|
|
- sb.append(",COUNT(DISTINCT videoid) AS 视频量");
|
|
|
- sb.append(",SUM(曝光uv) AS 访问uv");
|
|
|
- sb.append(",SUM(曝光pv) AS 访问pv");
|
|
|
- sb.append(",SUM(分享pv) AS 单层分享pv");
|
|
|
- sb.append(",SUM(单层回流uv) AS 拉回uv");
|
|
|
- sb.append(",(SUM(单层回流uv) + SUM(头部进分发单层回流人数)) / SUM(曝光uv) AS 总rov");
|
|
|
- sb.append(" FROM loghubods.dwd_channel_element_video_stat_mid");
|
|
|
+ sb.append("SELECT 人群_渠道");
|
|
|
+ sb.append(",人群细分");
|
|
|
+ sb.append(",驱动维度_空间");
|
|
|
+ sb.append(",需求特征点类型");
|
|
|
+ sb.append(",需求特征点");
|
|
|
+ sb.append(",需求特征类");
|
|
|
+ sb.append(",人群总数量");
|
|
|
+ sb.append(",内容数量");
|
|
|
+ sb.append(",群体访问uv");
|
|
|
+ sb.append(",群体rov");
|
|
|
+ sb.append(" FROM loghubods.dwd_channel_element_demand_feature_stat");
|
|
|
sb.append(" WHERE dt = '").append(dt).append("'");
|
|
|
- sb.append(" AND 渠道类 = '").append(channelName.replace("'", "''")).append("'");
|
|
|
- sb.append(" AND 渠道类 IS NOT NULL");
|
|
|
+ sb.append(" AND 人群_渠道 = '").append(channelName.replace("'", "''")).append("'");
|
|
|
+ sb.append(" AND 人群_渠道 IS NOT NULL");
|
|
|
sb.append(" AND 人群细分 IS NOT NULL");
|
|
|
- sb.append(" AND 分类名称 IS NOT NULL");
|
|
|
- sb.append(" GROUP BY 人群细分");
|
|
|
- sb.append(",CONCAT(CASE WHEN 来源 = '传播' THEN '传播' WHEN 来源 = '增长首层' THEN '增长' END,");
|
|
|
- sb.append("'的',CASE WHEN 场景 = 'dist' THEN '分发' WHEN 场景 = 'head' THEN '头部' END)");
|
|
|
- sb.append(",点类型");
|
|
|
- sb.append(",标准化元素");
|
|
|
- sb.append(",分类名称");
|
|
|
- sb.append(" HAVING 访问uv >= ").append(minUv);
|
|
|
+ sb.append(" AND 需求特征点类型 IS NOT NULL");
|
|
|
+ sb.append(" AND 需求特征点 IS NOT NULL");
|
|
|
+ sb.append(" AND 群体访问uv > ").append(minUv);
|
|
|
if (minRov > 0) {
|
|
|
- sb.append(" rov >= ").append(minRov);
|
|
|
+ sb.append(" AND 群体rov >= ").append(minRov);
|
|
|
}
|
|
|
sb.append(";");
|
|
|
return sb.toString();
|