云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

轻量服务器_怦然心动百度云_优惠券

小七 141 0

各位专家,您好,

我试图了解表比较选项,并开始了逐行选择选项的研究,经过实验,我发现了这些观察结果。

表比较:–

表比较用于在源记录更新/更改时更新目标表。它用于实现缓慢变化的尺寸(类型2和类型3)。它将始终接收正常输入,如何租用服务器,并将生成三个操作码:–

插入(I)–当源表中插入了新记录但目标表中不存在时。

更新(U)–当源记录已更新且源中的这些更新需要反映在目标中时。

删除(D)–当某些记录已从源表中删除时源和那些记录需要从目标中删除,如果需要。

它总是与查询转换连接,因为这是唯一一个生成正常操作码的转换。

根据表比较生成的操作码,目标被更改。

它是如何处理的:–

在表比较选项中,我们有一个表名称部分,在其中我们选择需要比较的表它被称为比较表,它总是目标表。表比较维护目标表的两个图像,图像前和图像后。后像中的最终数据反映在目标上。前图像将其更改发送到后图像。简而言之,图像前和图像后都是保存数据的缓冲区。

选择"逐行选择"时会发生什么?

在逐行选择方法中,根据输入主键列部分定义的列执行SQL语句。如果在"比较列"部分中未指定任何列,则查询为:–

从表名称中选择*其中C1=xxxx和C2=yyyy,依此类推(基于"输入主键列"部分中的列)。

如果在"比较列"部分中指定任何列,则查询为:–

选择C1、C2、C3,…(比较列部分中存在的列的列表)来自表名称,其中C1=xxxx和C2=yyyy,依此类推(基于输入主键列部分中存在的列)。

然后此结果将表比较中的记录带到图像缓冲区之前,并与源进行比较,如果发现任何更改,则发送到图像和结果之后图像发送到目标后。

在比较方法中选择"逐行选择"选项。现在进行比较

假设最初没有记录加载到目标表中,即目标表为空,这意味着图像前和图像后部分也为空。现在,在第一次加载期间,即第一次执行作业时,由于目标表为空,所有记录都用操作码(i)插入到目标表中,前提是在输入主键列

中定义的列中没有重复数据执行前:–

表比较:–

执行后:–

操作码i,因为所有记录都是新的基于EMPID(我们在输入主键列中定义的列名)。

现在我截断目标表。

执行作业后:–

目标表:–

现在在同一个源中插入EMPID 1010和1011的少量副本。

源变为:–

并在执行前在目标表中记录:–

之后执行作业,

在最终目标中记录:–

它是如何处理的?

作业运行时,目标表中的记录放在转换映像之前。

最初在执行之前,对于EMP\u ID 1010,目标表的EMPNAME为RAJ EY…,对于EMP\u ID 1011,EMPNAME为RAJ KPMG…。然后将此EMP_ID与传入源记录进行比较。

转换发现传入源有两个EMP_ID 1010的副本和一个EMP_ID 1011的副本。

然后将这些传入记录与比较表进行比较,并生成"U"、UPDATE和opcode。

现在生成的所有更新中,哪一个将反映在目标中?

总是第一次更新,大数据分析学习,啥叫大数据,因为输入中定义的键列包含主键,将被发送到目标。

对于EMP_ID 1010,第一次更新是ENAME RAJ,因此,它反映在目标中。

表比较为更改的行触发更新语句。

更新表名集合列=xxxxx,其中列名=yyyyy。

现在我更改了源数据:–

已从源中删除EMPID为1010(1010 RAJ…和1010 RAJ EY)的行。

执行前:–

源:–

目标:–

执行后:–

最终目标:–

现在,对于EMP\u ID 1010,执行前埃纳·拉吉在场,多多淘客,对于EMP\u ID 1011,拉吉·麦肯锡在场。在执行转换后,找到EMP_ID 1010和1011的更改,大数据是,并发送更新,这些更改随后反映在目标中。

源中的行不会从目标中删除,因为我们没有选中表比较选项部分中的删除选项,因此TC不会检查删除。

Always where子句将包含列表/组合"输入主键列"部分中出现的列的数目。

希望对您有所帮助!

如有遗漏,请纠正。