“增量负载”是什么意思?

问题描述 投票:0回答:3

我在阅读文章时经常看到“增量加载”这样的表述

真正(技术上)意味着什么?这意味着什么?

欢迎使用用例进行解释。

database terminology data-warehouse
3个回答
14
投票

通常意味着仅将自上次加载以来发生更改的记录(插入、更新和删除,如果适用)加载到仓库中;而不是将所有数据(所有记录,包括自上次加载以来未更改的记录)完全加载到仓库中。

优点是它减少了系统间传输的数据量,因为根据数据量,完全加载可能需要数小时/数天才能完成。

主要缺点是可维护性。 在完全加载的情况下,如果出现错误,您可以重新运行整个加载,而无需在清理/准备方面进行太多其他操作。 对于增量加载,文件通常需要按顺序加载。 因此,如果您的某一批次出现问题,其他批次就会在该批次后面排队,直到您纠正为止。 或者,您可能会发现几天前的某个批次有错误,需要在更正后重新加载该批次,然后再加载后续的每个批次,以确保仓库中的数据一致。


2
投票

增量加载用于将数据从一个存储库(数据库)移动到另一个存储库时。

非增量加载是指目标端已将源端的全部数据推送到目标端。

增量只会传递新的和修改的数据。

具体例子:

一个公司可能有两个平台,一个 处理订单,以及一个单独的 会计系统。 账目 部门输入新客户详细信息 但必须进入会计系统 确保这些客户出现在 订单处理系统。

为此,它会每晚运行批处理作业 从会计发送数据 系统到订单系统。

如果他们删除所有客户 订单系统中的详细信息以及 为所有顾客补充 会计系统然后他们会 正在执行非增量负载。

如果他们只发送新的 客户和有过的客户 改变了他们将要表演的 增量负载。


0
投票
if (len(tgt.collect())==0):
    tgt_1=source_df
    max_date=source_df.agg(max(col("last_updated"))).collect()[0][0]
    dff=[
        ('table_1',max_date)
        ]
    dff=spark.createDataFrame(dff,control_table_schema)
    dff.write.mode("append").saveAsTable("hive_metastore.in1648.control_tb")
    

else:
    ctrl=spark.read.table("hive_metastore.in1648.control_tb")
    max_date=ctrl.agg(max(col("last_mod_date"))).collect()[0][0]
    filtered=source_df.filter(source_df.last_updated>max_date)
    tgt_1=filtered

tgt_1.write.mode("append").saveAsTable("hive_metastore.in1648.target_table_inc_new_2")
© www.soinside.com 2019 - 2024. All rights reserved.