0

我正在开发一个应用程序,该应用程序从 Hadoop 获取记录并通过 sqoop(JDBC) 将它们插入 Teradata。

我正在使用 TERA 模式进行连接,目标表是 SET 表。我收到一些数据集的重复行问题。

据我所知,TERA 模式应该在插入时忽略重复记录。有人可以确认这种行为吗?

4

1 回答 1

2

对于Teradata 中TERA模式的SET表,有两种情况:

1.) 对于设置表table_name(抛出Duplicate Row Exception):

insert into DBName.table_name(id,name) values(1,'Mukesh'); //Success

insert into DBName.table_name(id,name) values(1,'Mukesh'); //Failure

insert into DBName.table_name(id,name) values(1,'mukesh'); //Failure

在 TERA 模式下,它不区分大小写,因此将记录视为相同。并且还抛出Duplicate Row Exception

2.) 对于设置表 table_name(不抛出Duplicate Row Exception):

insert into DBName.table_name(id,name) select id,name from DBName.table_name2;

如果DBName.table_name2中的记录已经在表DBName.table_name中,并且如果我们尝试执行上述查询,它将简单地忽略Duplicate Row 异常,并且它不会在表DBName.table_name中插入任何内容。

同样在ANSI模式下,上述两种情况都会出现Duplicate Row Exception

于 2013-07-24T22:47:46.733 回答