需求:如何使用拉链表将每天的数据从mysql拉取出来
整体步骤:
第一步:确认数据源"user原始表" ,包含字段:注册时间和更新时间
第二步:每次抽取数据前,进行数据判断,生成“userbinlo用户流水表”
1 如果uer_link拉链表的编号不存在"user原始表",则在该编号的操作类型标注:“delete”,分区字段:2021-09-02(拉取数据当天日期)
2 如果编号的更新时间=拉取数据当天日期,注册时间!=拉取数据当天日期,则在该编号的操作类型标注:"update",分区字段:2021-09-02(拉取数据当天日期)
3 如果"user原始表"的编号不存在uer_link拉链表中,则在该编号的操作类型标注:"create",分区字段:2021-09-02(拉取数据当天日期)
第三步:
生成user_link_temp临时拉链表
1 “userbinlo用户流水表”操作类型是“delete”的编号,
“user_link_temp临时拉链表”的生效时间设置:2021-09-01(拉取数据当天日期-1),
失效时间设置:2021-09-02(拉取数据当天日期)2
2 将“userbinlo用户流水表”操作类型是“create”的编号,数据插入“user_link_temp临时拉链表”,
生效时间设置:2021-09-02(拉取数据当天日期),
失效时间设置:9999-12-31
3
情况一:将“userbinlo用户流水表”操作类型是“update”的编号,且存在“user_link_temp临时拉链表”的编号,生效时间设置:2021-09-01(拉取数据当天日期-1),
失效时间设置:2021-09-02(拉取数据当天日期)
情况二:将“userbinlo用户流水表”操作类型是“update”的编号导入,“user_link_temp临时拉链表”
“user_link_temp临时拉链表”的生效时间设置:2021-09-02(拉取数据当天日期),
失效时间设置:9999-12-31
第四步:将“user_link_temp临时拉链表”的信息更新到拉链表上
-----------------------------------------------------------------------------------------------------------------------------
第一步:确认数据源"user原始表" ,包含字段:注册时间和更新时间
第二步:每次抽取数据前,进行数据判断,生成“userbinlo用户流水表”
1 如果uer_link拉链表的编号不存在"user原始表",则在该编号的操作类型标注:“delete”,分区字段:2021-09-02(拉取数据当天日期)
2 如果编号的更新时间=拉取数据当天日期,注册时间!=拉取数据当天日期,则在该编号的操作类型标注:"update",分区字段:2021-09-02(拉取数据当天日期)
3 如果"user原始表"的编号不存在uer_link拉链表中,则在该编号的操作类型标注:"create",分区字段:2021-09-02(拉取数据当天日期)
第三步:生成user_link_temp临时拉链表
1 “userbinlo用户流水表”操作类型是“delete”的编号,
“user_link_temp临时拉链表”的生效时间设置:2021-09-01(拉取数据当天日期-1),
失效时间设置:2021-09-02(拉取数据当天日期)2
2 将“userbinlo用户流水表”操作类型是“create”的编号,数据插入“user_link_temp临时拉链表”,
生效时间设置:2021-09-02(拉取数据当天日期),
失效时间设置:9999-12-31
3
情况一:将“userbinlo用户流水表”操作类型是“update”的编号,且存在“user_link_temp临时拉链表”的编号,生效时间设置:2021-09-01(拉取数据当天日期-1),
失效时间设置:2021-09-02(拉取数据当天日期)
情况二:将“userbinlo用户流水表”操作类型是“update”的编号导入,“user_link_temp临时拉链表”
“user_link_temp临时拉链表”的生效时间设置:2021-09-02(拉取数据当天日期),
失效时间设置:9999-12-31