我正在开发一个从Hadoop获取记录并通过sqoop(JDBC)将它们插入Teradata的应用程序。
我使用TERA模式进行连接,目标表是SET表。我收到一些数据集的重复行问题。
据我所知,TERA模式应该在插入时忽略重复记录。有人可以确认一下这个行为吗?
答案 0 :(得分:2)
对于Teradata中 TERA 模式下的 SET 表,有两种情况:
1。)对于设置表 table_name (抛出重复行异常):
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模式下,它不区分大小写,因此它将记录视为相同。并抛出重复行异常。
2。)对于set table table_name(不抛出重复行异常):
insert into DBName.table_name(id,name) select id,name from DBName.table_name2;
如果 DBName.table_name2 中的记录已经在表 DBName.table_name 中,并且如果我们尝试执行上述查询,则会忽略重复行异常,也不会在表 DBName.table_name 中插入任何内容。
同样在 ANSI 模式下,上述两种情况都会出现重复行异常。