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

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

一、动态读取表

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

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

设计一个这样的流程:

自增量组件配置:

变量组件配置:

动态库表输入组件配置:

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

库表输出:

运行流程:

流程正常运行。

检查目标表:

数据正常整合过来。

二、动态输出表

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

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

自增量组件配置:

接下来先配置库表输入:

变量组件配置:

运行流程:

自动建表成功:

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

三、最后

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

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

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

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

相关推荐
网安情报局1 天前
告别排队与高延迟:直连GPT全系列,解锁低门槛、高稳定的AI生产力
人工智能·gpt·api·ai大模型
天空属于哈夫克32 天前
企微 RPA 接口开放:无需官方权限,外部群自由操作
自动化·企业微信·api
ZorChi2 天前
AI API 调用优化实战:统一入口与超时处理指南
人工智能·aigc·接口·api·agent·token·中转站
Resistance丶未来2 天前
管控用量,降本增效,MAI Gateway:助力企业搭建 Tokens 统一管理体系
人工智能·大模型·api·claude·ai安全·魔芋ai·maigateway
星浩AI3 天前
Agnes AI 免费 API 接入指南:文本、生图、生视频,一套接口全免费
llm·api·claude
触底反弹4 天前
大模型时代:5 个 Prompt 替代 BERT 训练,搞定 NLP 五大任务
人工智能·node.js·api
极连AI4 天前
国产大模型譬如DeepSeek接入codex教程分享
人工智能·gpt·chatgpt·api·token·极连ai·zovelox.com
MageGojo4 天前
OCR 火车票识别 API 服务介绍与使用考量
ocr·接口·api·数据提取·火车票识别
147API5 天前
Project Glasswing 扩展后,AI 安全扫描不能只看发现漏洞
人工智能·安全·api·claude
小二·5 天前
OpenAI API 实战指南
ai·openai·api