当前位置: 首页 > news >正文

ETL参数化技巧:如何避免写一堆重复任务?

在配置ETL流程时,当我们遇到一些有增长规律的重复性任务,我们需要为每一张表配置一个组件,重复拉取配置相同的组件步骤使得任务变得繁杂,我们可以使用自增量组件+动态库表输入/输出组件结合的方式实现一个动态输入/输出组件就可以输入或输出多张表。

一、动态读取表

这里有一个场景,有多张相同表结构的表,他们的表名呈规律变化,比如是字符串+数字的形式,table1到table100,要把他们全部合并同步到一张大表里面,大表的表结构在源表的基础上增加一个字段,字段值记录该行数据的来源也就是从哪张源表同步到这张大表。

正常的情况是源表有多少张表就拉取多少个库表输入组件,指定源表是哪一张,并把它同步到目标表去。但这种方式就需要拉取100个库表输入,而这100个库表输入的配置也仅仅是表名不一样而已。这种情况我们就可以使用动态库表输入组件去简化配置:

图片 1

设计一个这样的流程:

图片 4

自增量组件配置:

图片 5

图片 6

变量组件配置:

图片 7

图片 8

动态库表输入组件配置:

图片 9

数据源这里填写平台配置的数据源链接的数据源Id.

图片 2

库表输出:

图片 10

图片 11

图片 12

图片 13

图片 14

运行流程:

流程正常运行。

图片 15

检查目标表:

图片 16

数据正常整合过来。

二、动态输出表

数据库服务器压力大的情况下经常有分库分表的场景,有一张大表,需要根据某个维度比如年份去进行表拆分,通常的方式也是根据年份去拉取数据,然后拉取库表输出去输出一个子表,而这种情况下维度越大子表就越多,比如1990到2020要拆31个表,这种情况我们就可以使用动态库表输出去简化流程。

要将一张表按年份去拆分成多个表我们可以设置这样一个流程:

图片 20

自增量组件配置:

图片 21

图片 22

接下来先配置库表输入:

图片 23

图片 24

图片 25

图片 26

变量组件配置:

图片 27

图片 28

图片 29

图片 30

运行流程:

图片 17

自动建表成功:

图片 18

检查每张目标表的数据没有问题

图片 19

三、最后

本文介绍了两种ETL参数化技巧,核心在于利用自增量组件生成序列,通过变量组件动态拼接表名,最终由动态库表输入/输出组件执行批量操作:

动态读表:将多张规律命名的源表合并到一张目标表,避免为每张源表重复配置输入组件。

动态写表:将一张大表按维度拆分成多张子表,避免为每张目标表重复配置输出组件。

这种方法显著减少了ETL任务的组件数量,提升了配置效率与可维护性,特别适用于处理规律性强的批量化表操作。

http://www.dtcms.com/a/427396.html

相关文章:

  • git下载分支
  • Linux应用开发·Makefile菜鸟教程
  • ai智能化算法
  • 【专业词典】冰山模型
  • 第三方应用测试:【移动应用后端API自动化测试:Postman与Newman的集成】
  • 企业网站备案 淘宝客前端工程师主要做什么
  • 桌面预测类开发,桌面%雷达,信号预测%系统开发,基于python,tk,scikit-learn机器学习算法实现,桌面预支持向量机分类算法,CSV无数据库
  • 网站备案黑名单重庆新闻头条24小时
  • 使用vscode的ssh功能连接远程服务器卡在Setting up SSH Host IP: Downloading VS Code Server的解决方案
  • vscode连接算力平台
  • VSCode中Java开发环境配置的三个层级(Windows版)1-3
  • 西安建设网站的公司网页装修设计
  • 太空算力革命:卫星如何成为地面交通的“天脑“
  • 大数据 Python小说数据分析平台 小说网数据爬取分析系统 Django框架 requests爬虫 Echarts图表 17k小说网 (源码)✅
  • 第 1 天:零基础入门 C 语言 —— 认识 C 语言的起源、特点与应用场景
  • 网站建设制作公司地址网站建设费用明细
  • image process unit 模块实现防抖的原理
  • 【LeetCode 每日一题】2221. 数组的三角和
  • 爬虫之淘宝接口获取:Python 返回淘宝商品详情数据 API 接口
  • 合肥专业网站优化seo在线培训机构排名
  • 便利的聊城网站建设整站网站优化
  • C# 对Bitmap 的一些处理方法,裁剪,压缩,旋转等
  • Labview多个子VI加密码和去密码
  • LabVIEW声音压力与响度实时监测
  • 网站毕业设计选题本溪网站建设兼职
  • Python利用ffmpeg实现rtmp视频拉流和推流
  • 佛山电商网站建设软件开发流程流程图
  • 嵌入式软件开发工程师待遇seo管理员
  • cuda编程笔记(25)-- 如何像函数对象一样使用核函数
  • K230基础-摄像头基本原理