文章预览
2024年11月第四周 20241125~20241201 (一)技术债:UDF Ace这次数仓重构,一个重点是用SQL替换掉UDF。原数仓非常依赖Java UDF(User Defined Function, 用户自定义函数,用Python、Java等语言来实现复杂的业务逻辑,以弥补SQL表达能力的不足)。这些UDF存在的问题包括: 存在日久,代码几易其手,耦合的逻辑非常复杂。比如在功能使用的session划分里,耦合了低速、Unused和Drive Session等多重逻辑。 Java UDF和MaxCompute的SQL编码和运行环境分离,使得测试、联调非常不方便,以致于UDF代码的修改很难经过充分的测试。 更重要的一点:这些UDF功能是可以通过SQL来实现的,因此失去了存在的必要性。可能是第一任开发者在SQL上缺乏经验,于是采用了我认为比较费力的方式。只是因为历史路径依赖,得以存续至今。 经过重构,Ace使用几十行SQL代码就实现了之前几百行Java代码实
………………………………