• 数据的全量与增量


    数据有很多种下发方式:

    简单的来说分为增量和全量。

    全量获取

    当表是一个全量分区表

    一般数据下发的来源表是一个分区表,全量就是一次下发一个分区。

    当表是一个增量分区表

    一次性下发全表

    当表是一个拉链表

    获取每个客户的最新状态全量下发。(伪代码如下)
    select 字段
    (  
    select 字段 ,over (partition by id order by batch_date1 desc) as cnn from table_Z where batch_date ='xxxxxxxx'
    ) a where cnn =1;

    增量获取:

    但是往往非大数据系统无法一口气吃掉千万级别的数据量。

    一般会采取增量下发的方式。

    当表是一个增量分区表

    只需要下发一个分区

    当表是一个全量分区表

    需要对今天的分区数据和昨天分区数据的数据进行比对,然后寻找新增,差异,和删除三部分。然后下发

    伪代码:

    新增和差异: 需要约定好增改标识

    select 字段,增改标识
    (select 字段 from table_F where batch_date=今天) t0
    left join
    (select 字段 from table_F where batch_date=昨天) t1
    on t0.id=t1.id
    where (t0.字段1<>nvl(t1.字段1,'not exist'or 
    t0.字段2<>nvl(t1.字段2,'not exist').....);

     删除:需要约定好 删除标识

    select 字段 ,删除标识
    fromselect 字段 from table_F where bacth_date ='昨天') t0
     left join
     (select 字段 from table_F where bacth_date ='今天') t1
    on t0.id =t1.id
    where t1 is null;

    不过也可以用outer 的方式实现:

    当表是一个全量拉链表

    select 字段 from table_Z where batch_date='今天' and stat_date='今天' 
  • 相关阅读:
    js中return、return true、return false的区别
    flask,中间键
    flask,自定义中间件
    flask,闪现
    flask获取前端发送过来的数据
    flask中的如何将后端写前端的代码设置session
    flask中的正则匹配
    flask中的四剑客 及其他参数
    支付宝接口
    flasks框架简介
  • 原文地址:https://www.cnblogs.com/wqbin/p/11270190.html
Copyright © 2020-2023  润新知