【问题标题】:Can I create a new Partition in a Teradata table each time a new data load came in每次有新数据加载时,我可以在 Teradata 表中创建一个新分区吗
【发布时间】: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 分区中。

标签: sql database teradata


【解决方案1】:

这个问题不是通过分区登陆表来解决的。请注意,创建分区是为了通过将“相似”行组织到 Amps 中来提高查询性能。

分区主索引 (PPI) 允许将行分配给 AMP 上用户定义的数据分区,从而提高基于主索引值的范围查询的性能。有关详细信息,请参阅数据库设计和 SQL 请求和事务处理。 https://docs.teradata.com/reader/Fs1l1bqzqbnO0oVqjSVP5g/MMVfdnwiK91oXhkK53mN0Q

Teradata 可以使用 TTP 更新运算符或 Multiload 在填充的表上批量追加数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    • 2021-04-14
    • 1970-01-01
    • 2020-06-17
    相关资源
    最近更新 更多