文章 查看内容
实用技巧

ETL的小技巧

ETL的小技巧

241 1 智能ETL 2025-1-17 16:48 发布者: 候莞凌

ETL去重操作中保留某一列最大或最小的数据行、ETL中对日期进行展开(一行变多行)、表格字段名换行
1、ETL去重操作中保留某一列最大或最小的数据行
内容:
假设数据集中某列存在重复数据的情况,ETL的去重操作无法保证留下的数据行是哪一行。如果需要根据另一列数据来确定去重操作后保留的数据行,比如保留最大或最小的,可以通过“计算数据列”和“筛选”两个ETL操作的组合实现。
示例:
1)原始数据集包含如下三个列,需要获得每个用户的最后操作日期和操作对象,即第2、3行。

2)首先,添加一个“添加计算列”节点,根据“用户”列进行分组,“操作日期”列从大到小进行排序,计算出每个分组的去重排序序号

3)然后,使用“筛选”节点选出去重排序序号为1的节点,即可实现需求

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) -- 限定小于当前日期

得到结果:

通常会按照月去使用,使用脚本自动计算月末日期,就能把整月每天的数据都生成出来。

3、表格字段名换行
场景:由于表格字段比较多,或者字段名比较长,导致显示不完全,可以通过换行来缩短字段名长度。
方法:在字段别名中加入换行符<br>



路过

雷人

握手

鲜花

鸡蛋
月亮2024-9-25 11:15
#3对我来说是个新的知识点。感谢分享
回复
您需要登录后才可以发表言论 登录立即注册
微信服务号
联系我们
电话:400-880-0750
邮箱:hello@guandata.com
Copyright © 2001-2025 观远社区 版权所有 All Rights Reserved. 浙 ICP 备15006424号-3
去评论 去发文 返回顶部
返回顶部