我是Teradata的新手,几周后开始探索。我知道Fastload或Multiload实用程序仅在表上没有参照完整性(如外键关系)时才起作用。我想知道,如果我的表实际上有一个外键引用,又想从任何文本或定界文件中将数据导入到该表中,该怎么办?在使用fastload / mload或任何其他导入方法方面有什么调整吗?
Gowtham Vakani,
我相信您需要TPUPM,但是在Teradata的三个加载实用程序中,这一个效果最低。我建议使用FastLoad,方法是将源数据转储到适合FastLoad的登录表中,然后在Teradata中进行必要的转换。我在下面提供了一些信息以及这三种类型之间的差异,因此您可以根据需要和性能计划进行选择。如果需要,我可以向您发送一些示例脚本。
FastLoad实用程序用于将数据加载到空表中。由于它不使用瞬态日志,因此可以快速加载数据。即使目标表是MULTISET表,它也不会加载重复的行。
Limitation-目标表不应具有辅助索引,联接索引和外键引用。
FastLoad的工作方式-FastLoad分两个阶段执行。 FastLoad将其工作分为两个阶段,两个阶段都是为了提高速度而设计的。
第一阶段或采集阶段
[Phase 2
MultiLoad但是没有相同的限制。MultiLoad可以一次加载多个表,它还可以执行不同类型的任务,例如INSERT,DELETE,UPDATE和UPSERT。它可以一次从LAN或Channel环境中加载多达5个空表或populated目标表,并在脚本中执行多达20个DML操作。 MultiLoad不需要目标表。MultiLoad支持两种模式:
MultiLoad除了目标表之外还需要一个工作表,一个日志表和两个错误表。
Limitation-MultiLoad有一些限制。
MultiLoad的工作方式-MultiLoad导入具有五个IMPORT阶段:
TPUMP是Teradata并行数据泵的缩写。据了解,FastLoad和MultiLoad是海量数据的负载。但是TPump使用行哈希锁一次加载一行数据。因为它锁定在此级别,而不是像MultiLoad那样锁定在表级别,所以TPUMP可以在一个表上进行许多同时或并发的更新。TPump从平面文件向ROW LEVEL的填充Teradata表执行插入,更新,删除和更新。
TPump支持:
限制
TPump支持一个错误表。错误表执行以下操作:
与其他实用程序一样,只要不删除日志表和错误表,TPump脚本就可以完全重新启动。