我正在开发一个应用程序,该应用程序从 Hadoop 获取记录并通过 sqoop(JDBC) 将它们插入 Teradata。
我正在使用 TERA 模式进行连接,目标表是 SET 表。我收到一些数据集的重复行问题。
据我所知,TERA 模式应该在插入时忽略重复记录。有人可以确认这种行为吗?
我正在开发一个应用程序,该应用程序从 Hadoop 获取记录并通过 sqoop(JDBC) 将它们插入 Teradata。
我正在使用 TERA 模式进行连接,目标表是 SET 表。我收到一些数据集的重复行问题。
据我所知,TERA 模式应该在插入时忽略重复记录。有人可以确认这种行为吗?
对于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。