缓慢变化维度SCD

1,mappings/wizards/SCD

2,给mapping 一个名称,并选择对应的SCD类型,

3,输入对应的源表和需要创建的目标表名。

4,选择主键,以及要监控那个列是否改变的版本。

5,创建如下的目标表名,并设置主键。

6,在LKP组件更新如下信息。一个是表名,一个是连接信息。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个简单的示例程序,用于演示如何使用缓慢变化维度(Slowly Changing Dimensions,SCD)来处理维度数据的变化: ``` -- 创建员工表 CREATE TABLE employee ( employee_id INT PRIMARY KEY, name VARCHAR(50), department_id INT, start_date DATE, end_date DATE, is_current_employee BIT ); -- 创建部门表 CREATE TABLE department ( department_id INT PRIMARY KEY, name VARCHAR(50) ); -- 创建 SCD2 类型的维度表 CREATE TABLE employee_dimension ( employee_id INT PRIMARY KEY, name VARCHAR(50), department_id INT, start_date DATE, end_date DATE, is_current_employee BIT, effective_start_date DATE, effective_end_date DATE, version_number INT ); -- 插入初始的员工维度记录 INSERT INTO employee_dimension SELECT employee_id, name, department_id, start_date, end_date, is_current_employee, GETDATE(), '9999-12-31', 1 FROM employee; -- 创建存储过程来处理员工维度表的变化 CREATE PROCEDURE process_employee_changes @employee_id INT, @name VARCHAR(50), @department_id INT, @start_date DATE, @end_date DATE, @is_current_employee BIT AS BEGIN -- 禁用旧版本的记录 UPDATE employee_dimension SET effective_end_date = @start_date - 1, is_current_employee = 0 WHERE employee_id = @employee_id AND is_current_employee = 1; -- 插入新版本的记录 INSERT INTO employee_dimension SELECT @employee_id, @name, @department_id, @start_date, @end_date, @is_current_employee, GETDATE(), '9999-12-31', (SELECT MAX(version_number) + 1 FROM employee_dimension WHERE employee_id = @employee_id) END; -- 调用存储过程来更新员工维度表 EXEC process_employee_changes 1, 'John Smith', 2, '2022-01-01', '9999-12-31', 1; ``` 以上代码演示了一个简单的 SCD2 类型的维度表设计和存储过程实现。在该示例中,employee_dimension 表包含了员工维度数据的历史记录。当员工的信息发生变化时,存储过程会禁用旧版本的记录,并插入一个新版本的记录,保留员工信息的历史记录。这种方法可以让数据分析人员在进行分析时,能够追溯到过去的数据变化,更加准确地分析数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小蜜蜂love

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值