当前位置:主页 > 游戏服务器 > 主机安全 >

MySQL数据库_免费网站建设seo_速度快

模式"复制"

在最简单的情况下,目标是1:1复制。源表和目标表在结构和内容上是相同的。

最简单的方法是创建RepTask对象.inHana的WebIDE并保持加载行为设置为"复制"。

如果取消选择"仅初始加载"标志,同时为每个复制的表创建一个实时订阅。

在执行过程中,激活订阅并复制所有当前数据,以便源表和目标表包含完全相同的数据。

源表

目标表

无论源表中有何更改,都会在目标表中重新进行,例如对源表执行命令

插入"D050767::客户.VT_"dbo""address\u input""

值('2','North 1st Street','San Jose','???)????','US');

插入"D050767::客户.VT_"dbo"。"address_input"""

值('3','Hill Rd Drive 532','LA','90003','US');

更新"D050767::客户.VT_"dbo"。"address\u input""

设置"postalcode"="95121",大数据的趋势,其中"customer\u id"="2";

从"D050767:"中删除:客户.VT_"dbo"。"address_input"""

其中"customer_id"='1';

将导致源包含此数据

,目标也会这样做。

模式"Replicate with logical delete"

由于适配器确实发送了更改数据,Hana知道源系统上进行了何种更改。当加载这些更改时,它可以应用这些信息加上收到更改的时间。这是一个非常好的特性,因为现在用户可以看到最近更改了哪些记录。除了删除之外,很难看到不再存在的记录的更改信息。因此,添加了"用逻辑删除复制"功能,其中记录不是物理删除的,而是标记为已删除的。

如果用户想查看当前数据,他所要做的就是过滤那些更改类型为"D"的记录。如果用户想知道自给定时间以来的所有更改,他会根据

更改时间查询数据。

使用上面的示例,最初表中加载了源中的所有当前行,对于insert,更改类型为'I',更改时间是执行初始加载的时间。

运行后上面插入、更新和删除的更改顺序目标表与上面一样,但是记录customer_id=1被标记为"D"以进行删除,而不是物理删除。

在批量加载更改数据时,此功能非常重要。源通常没有任何更改指示器。这就是ETL过程如此复杂的原因。但是有了这个特性,适配器将实时地将更改发送到Hana的副本表中,并添加更改类型和时间戳列。现在,批处理过程可以从该表中读取数据,就好像源中的每一行都有删除标记和更改时间戳一样。

为了完整起见,为什么插入行有一个"a"类型的"change"表示自动更正加载或upsert?因为行可能已被删除,然后再次插入。delete不会删除它,而是将它标记为delete行。如果在后面插入一行,则会触发主键冲突,因此不会执行insert for insert rows语句,而是执行upsert语句。

还有一个专家问题:为什么update行是"a"行?出于性能原因,更新的执行方式是先删除,然后插入。插入显示为"A"行,如上所述。

模式"保留所有"

在最极端的版本中,用户希望看到对一行所做的所有更改,而不仅仅是上述最新版本。这是"保留所有"模式。

这添加了"更改类型"和"更改时间"列,但同时还添加了"更改顺序"列。后者是必需的,因为在一个事务中,同一行可以多次修改,如果这种更改顺序是插入,然后是更新1和更新2,则需要顺序来重放这些更改。

运行初始加载时,复制所有行,并且更改类型为"I",更改时间为当前时间开始时间和更改顺序不相关-每个源主键一行。

将更改应用到源表后,目标表看起来确实是这样的

客户id=1的记录被删除,大数据的概念,客户id=2的记录被插入并更新-注意适配器确实发送了前后图像具有相同的更改时间戳。插入customer_id=3的行。

注意:使用该表时要小心。这实际上是将Hana从适配器获得的信息转储到表中。适配器不需要发送before image行,只要源提供该信息。

但更重要的是,云市场,有比Insert/Update/Delete/Beforeimage/AutocorrectLoad更多的更改类型。有关详细信息,请参阅Hana智能数据集成-适配器操作码背后的魔力。

流程图中的上述模式

使用流程图对数据转换进行建模时,可以使用相同的选项。它们只是以不同的方式呈现。

在目标表的数据接收器对象中,有一个负载类型设置。默认情况下,它是空的,意味着它是一个常规加载程序,可以插入插入记录、更新更新记录等。

设置Upsert是"用逻辑删除复制"模式所做的。

设置为insert意味着以更改日志的形式写入所有更改,即"保留所有"模式。

更改类型的列第二个选项卡中提供了更改时间。尽管这些是可选的,爱返利,但从逻辑的角度来看,它们确实是必需的。一个逻辑删除没有信息,这一行被删除,所以没有一个更改类型,是没有意义的?(上面屏幕中的序列列是另一个,这是一个可选的代理键)

流程图不能处理一个事务中的多个更改,如插入一行的更新。流程图总是获取一组聚合的数据,因此在本例中,插入一行,数据和大数据的区别,其中包含最终更新的值。

猜你喜欢

微信公众号