FineDataLink实战案例分享【0807周】

楼主
我是社区第567266位番薯,欢迎点我头像关注我哦~

本周上新两个新方案,快来查看吧!!!

1、数据比对后更新目标表时间列

1.1 应用场景

用户希望来源表的增删改同步到目标表的同时,目标表的 update 字段能记录数据变化时间。

例如来源表中删除了「甘蔗」和「冻梨」的数据,增加了「葡萄」的数据,更新了「菠萝」的数据。希望将最新数据同步到目标表表中,且数据变化的时间更新到目标表的 update 字段。

1.2 实现思路

1)将来源表的增删改同步到目标表。

使用「数据比对」算子。

2)目标表的 update 字段能记录数据变化时间。

「数据比对」算子中会自动生成 fdl_comparison_type 标记列,记录标识值。标记值被记录在 fdl_comparison_type 字段中,无法更新目标表中的 update 字段。

因此使用「新增计算列」算子,新增 update 字段,值为当次任务运行时间;使用数据分发算子,把标记 Added、Changed 的数据在「DB 表输出」算子中做插入更新;把标记 Removed 的数据在「DB 表输出」算子中做更新操作。如下图所示:

最后效果如下图所示:

注:本文方案,目标表中的删除数据,除逻辑主键、update、fdl_comparison_type 字段外,其他字段值为空(下图 ID 为1005、1006 的数据)。用户根据实际需求选择是否使用本文方案。

1.3 实现过程

请参见文档:数据比对后更新目标表时间列

2、提取简道云表单多值字段并显示为一行

2.1 应用场景

公司人员信息保存在简道云表单中,在公司内部,有些人可能会同时担任多个职位,如王小明既是总经理又在财务部工作。在王小明出差时,为了方便报销,需要将他所在的多个部门展示出来,方便后续各部门的报销费用分摊。

2.2 实现思路

若一个人担任多个职位,使用「简道云输入」算子读取表单数据后,字段值示例如下:

28.png

若使用「JSON 解析」算子直接解析该字段,一个人有多个部门时,数据将会被拆成多行,例如:

1690790677285072.png

因此本文使用 regexp_replace 函数提取 department 字段中的中文即可,将部门名称提取出来。

注:若部门名称包含英文,本文方案不适用。

2.3 实现过程

请参见文档:提取简道云表单多值字段并显示为一行

3、专题文档更新

3.1 数据更新模块

根据用户的数据结构和更新需求,整理了不同场景下 FineDataLink 推荐的更新方案,方便用户更好地进行数据处理和维护。

参见文档:数据更新专题概述

3.2 数据清洗模块

说明 文档
在搭建数据仓库时,可能需要对重复的脏数据进行去重 数据去重
在进行数据处理时,经常需要对数据进行排序,介绍如何使用 Spark SQL 进行排序 数据排序
进行数据处理时,经常需要将数据表进行连接,本文介绍在 FineDataLink 中的多种连接方式 表连接与联合

数仓需要接收来自不同源的大量数据,数据之间可能存在格式、口径、数值上的差异。

因此不可避免会出现缺失数据,本文介绍如何对缺失值进行处

缺失值处理

用户有时需清洗掉数据中的一些不需要的字符。

例如,括号型(负数),特殊货币符号(¥),千分位(数值型自带千分位)等

字符串清洗

用户需要需要根据某些条件对数据进行分类赋值处理,形成新增列

新增列_条件赋值

新增列_条件赋值 支持根据指定条件进行赋值,形成新的数据列。

如果用户只想对已有数据进行分组赋值,不需要设置判断条件,可以直接使用内置公式 SWITCH-分组赋值

新增列_分组赋值

在进行数据处理时,数据的截取、合并必不可少。

数据中有字段结构为用某些分隔符连接起来的字符串,使用时需要拆分开只提取固定位置的字符串,或者整体拆分为多列。FineDataLink 支持使用「新增计算列」对数据进行截取拆分和拼接

 

字符串拼接和截取

 

 

 

 

分享扩散:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0回帖数 1关注人数 4386浏览人数
最后回复于:2024-6-7 14:50

返回顶部 返回列表