1、ETL去重操作中保留某一列最大或最小的数据行 内容: 假设数据集中某列存在重复数据的情况,ETL的去重操作无法保证留下的数据行是哪一行。如果需要根据另一列数据来确定去重操作后保留的数据行,比如保留最大或最小的,可以通过“计算数据列”和“筛选”两个ETL操作的组合实现。 2、ETL中对日期进行展开(一行变多行) 场景:对于员工做考核的明细时,往往是每个月有一版员工名单,做业绩通报时需要每个员工每天都需要有汇总,通常需要关联多个业绩报表(即使没有业绩也要显示0),这时候对每个月员工列表按照当月的每天日期进行展开作为主表。 使用以下脚本: SELECT input1.`员工` , date_add(input1.`开始日期`, pe.i) as `数据日期`, from input1 lateral view posexplode(split(space(datediff(input1.`开始日期`, input1.`结束日期`)), ' ')) pe as i,x where date_add(input1.`开始日期`, pe.i) <= DATE_SUB(CURRENT_DATE(), 1) -- 限定小于当前日期 得到结果: 通常会按照月去使用,使用脚本自动计算月末日期,就能把整月每天的数据都生成出来。 场景:由于表格字段比较多,或者字段名比较长,导致显示不完全,可以通过换行来缩短字段名长度。 方法:在字段别名中加入换行符<br> |