【发布时间】:2013-12-21 13:11:54
【问题描述】:
我有大约 95 个数据集成接口,用于从 SAP ECC 环境中提取和加载数据。每个数据集“登陆” Teradata 中的单个表,随后被处理成更结构化和键控的表以供下游使用。这会处理欺骗和增量更改等。
我的问题是每次新负载进入时都会被截断的初始着陆表。如果着陆数据集无法向前处理,它将被截断,并且新数据集将在下一次负载进入时替换着陆表。我没有设计或开发任何这些,但它引起了很多悲伤以及补救(错误)票。
我想提出一个解决方案,并想知道是否可以不截断初始登陆表,而是在新负载进入时为每个登陆数据集创建一个新分区。以这种方式,我们将避免丢失数据集共。这在 Teradata 中可行吗?
我想补充一点,我们正在使用 Informatica 将 SAP BW 连接到 Teradata,因为这对我们面临的困难程度有一定影响。不是在这种情况下使用 Informatica 的忠实粉丝。
提前感谢大家的帮助, 帕特
【问题讨论】:
-
目前加载的数据如何? FastLoad(或 TPT Load 运算符)需要一个空的目标表。 MultiLoad(或 TPT Update 运算符)可以通过追加或更新记录来加载已包含数据的表。
-
嗨 Rob,这是使用更新运算符。我修改了我的帖子,包括我们在这里使用 Informatica 将 SAP BW 连接到 Teradata,因为它可能与我们的问题有关,这似乎是我们目前最头疼的问题。分区方案将是最好的解决方案,因为它是 SAP 管理数据的方式。
-
当然你可以创建一个有很多空分区的表,例如RANGE_N(part# BETWEEN 1 and 10000 EACH 1)。当您知道最大使用的 Part# 时,您只需将所有新行加载到
Part# + 1分区中。