在项目中做抽取时,什么时候用全量,什么时候用增量
1条回答 默认 最新
- 小P聊技术 2021-05-27 09:56关注
在根据用户需求选择需要抽取的字段之外,我们通常需要选择采用全量或者增量的方法进行数据抽取。全量抽取指的是从源系统中将表内数据不加行的筛选,全部抽取;增量抽取指的是只抽取前次抽取之后发生变化或者新增的数据(增量抽取的数据难度较大,要保证数据不能多抽取,漏抽取)。
在源表数据量较大,大部分数据一经入库改动可能较小时一般采用增量抽取的方式;对于表数量较小或者维表这类情况会进行增量抽取。
对表进行增量抽取时,需要较好的判别出新增或者发生变化的数据,在系统设计时,常见的有下面两种方法:
1. 触发器方法: 当需要抽取的表中发生新增、修改、删除时,触发触发器,触发器将数据插入临时表,之后抽取只抽取临时表,抽取时对临时表数据打标记或者删除。
2. 时间戳方法:
在源系统表中增加一个时间戳字段,在用户对这条记录进行增删改查时,更新时间戳,进行数据抽取时使用时间戳来判断这条记录是否要抽取。加时间戳优点为抽取相对简单,但是对源系统依赖较强。
全量抽取出来的表对数据仓库进行更新时,可采用全表删除的方法,优点在于简单快捷,但是如果需要保留修改记录时,需要采用数据快照设计;增量抽取出来的表对数据库进行更新,可以使用merge的方式进行更新操作,这种方法逻辑较复杂,速度较慢,且要求源表主键能够匹配识别。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 5无用 1
悬赏问题
- ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
- ¥15 对于squad数据集的基于bert模型的微调
- ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
- ¥20 steam下载游戏占用内存
- ¥15 CST保存项目时失败
- ¥15 树莓派5怎么用camera module 3啊
- ¥20 java在应用程序里获取不到扬声器设备
- ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
- ¥15 Attention is all you need 的代码运行
- ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗