业务增量数据入仓以及增全量合并工作

简介: 增量数据入库与增量全合并工作

当某张表中存在上亿条或者数据量很大的情况下,每天全量同步数据会消耗大量的资源,为此可以考虑仅仅将当天的增量数据同步到数仓中
首先需要先将历史数据全量同步到数仓b_order_df表中,之后进行增量数据同步到b_order_di表中,剩下的就是每天将同步过来的增量数据与历史全量数据进行合并的工作。

-- 通过创建时间或者更新时间筛选出业务日期中新增或者变化的输入。同步到数仓中的增量表b_order_di中
select 
        order_code
        ,external_order_code
        ,total_order_code
        ,order_type
        ,business_type
        ,order_tag
        ,channel_code
        ,terminal
        ,shop_code
        ,shop_name
        ,customer_id
from b_order 
where (create_time >= ${bizdate} and create_time < DATE_ADD(${bizdate}, 1))
or (update_time >= ${bizdate} and update_time < DATE_ADD(${bizdate}, 1))

同步入仓完成后需要进行增量数据与全量数据合并工作

-- 将业务日期的增量数据与业务日期前一天的全量数据进行合并成为业务日期下的全量数据,并写入到业务日期的全量表中
insert overwrite table b_order_df paritition(ds = ${bizdate})
select
     coalesce(di.order_code,df.order_code) as order_code
    ,coalesce(di.external_order_code,df.external_order_code) as external_order_code
    ,coalesce(di.total_order_code,df.total_order_code) as total_order_code
    ,coalesce(di.order_type,df.order_type) as order_type
    ,coalesce(di.business_type,df.business_type) as business_type
    ,coalesce(di.order_tag,df.order_tag) as order_tag
    ,coalesce(di.channel_code,df.channel_code) as channel_code
    ,coalesce(di.terminal,df.terminal) as terminal
    ,coalesce(di.shop_code,df.shop_code) as shop_code
    ,coalesce(di.shop_name,df.shop_name) as shop_name
    ,coalesce(di.customer_id,df.customer_id) as customer_id
from(
    select 
            order_code
            ,external_order_code
            ,total_order_code
            ,order_type
            ,business_type
            ,order_tag
            ,channel_code
            ,terminal
            ,shop_code
            ,shop_name
            ,customer_id
    from b_order_di
    where ds = ${bizdate} -- 业务日期
)di
full join
(
    select 
            order_code
            ,external_order_code
            ,total_order_code
            ,order_type
            ,business_type
            ,order_tag
            ,channel_code
            ,terminal
            ,shop_code
            ,shop_name
            ,customer_id
    from b_order_df
    where DATE_SUB(${bizdate}, 1) -- 业务日期的前一天
)df on di.order_code = df.order_code
目录
相关文章
|
3月前
|
消息中间件 存储 关系型数据库
实时计算 Flink版产品使用问题之同步时,上游批量删除大量数据(如20万条),如何提高删除效率
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
3月前
|
缓存 数据库 索引
实时数仓 Hologres产品使用合集之需要定期更新一张线上频繁查询的表,该如何操作
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
4月前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用问题之全量和增量同步数据的一致性、不丢失和不重复读取可以通过什么方式保证
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
5月前
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版产品使用问题之任务在同步过程中新增同步表后选择全量初始化历史数据,是否会阻塞原先其余表的增量同步
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
实时计算 Flink版产品使用问题之任务在同步过程中新增同步表后选择全量初始化历史数据,是否会阻塞原先其余表的增量同步
|
6月前
|
SQL 算法 关系型数据库
实时计算 Flink版产品使用合集之全量历史数据比较多,全量同步阶段时间长,是否会同时读取binlog进行合并输出
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
5月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用问题之在进行Oracle数据库的全量同步时,只同步了一条数据而源表实际上包含多条数据,是什么原因
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
6月前
|
消息中间件 SQL Oracle
实时计算 Flink版产品使用合集之增量同步速度较慢,导致延迟增加,该如何优化
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
6月前
|
SQL 关系型数据库 数据处理
实时计算 Flink版产品使用合集之作业原本只配置了采集一张表,现在想增加一张表,这张新增的表将会增量采集还是重新全量采集
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
101 0
|
6月前
|
SQL 分布式计算 DataWorks
实时数仓 Hologres产品使用合集之在主键重复写入时无法保证保留最后一条记录如何解决
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
|
6月前
|
存储 大数据 数据管理
数据仓库(09)数仓缓慢变化维度数据的处理
数据仓库的重要特点之一是反映历史变化,所以如何处理维度的变化是维度设计的重要工作之一。缓慢变化维的提出是因为在现实世界中,维度的属性并不是静态的,它会随着时间的流逝发生缓慢的变化,与数据增长较为快速的事实表相比,维度变化相对缓慢。阴齿这个就叫做缓慢变化维。
331 2
数据仓库(09)数仓缓慢变化维度数据的处理