【发布时间】:2018-07-10 20:05:47
【问题描述】:
我在包含这些列的数据库中有这张表
学生
student_id INT
student_name VARCHAR
class_name VARCHAR
我想把表变成两张表
student_transformed
student_key
student_id
student_name
类转换
class_key
class_name
我的问题是类表的转换:
插入新记录:
select *
from student s
left
join class_transformed c
on s.class_name = c.class_name
但是如果学生表中的 class_name 得到更新,它将是一个新的行记录。换句话说,无法区分插入和更新。
我的问题是,如何进行转换并使插入和更新工作?请注意,我们没有 class_id。
【问题讨论】:
-
您对渐变维度的熟悉程度如何?
-
@Error_2646,我对scd很熟悉,这里的问题是我没有类的ID,并且名称可以更改,因此会导致更新和插入出现问题。
-
我明白你在说什么。抱歉 - 仅凭您提供的数据无法做您想做的事。根本没有足够的信息。如果这是一个现实世界的问题,您需要在数据流中进入上游并获取一些持久的类标识符。也许如果班级名称可以更改,但您希望与班级相关的所有学生保持不变,您可以进行一些丑陋的覆盖,但这是牵强的。
标签: sql database amazon-redshift data-warehouse