Hadoop からレコードを取得し、sqoop(JDBC) を介して Teradata に挿入するアプリケーションに取り組んでいます。
接続に TERA モードを使用しており、ターゲット テーブルは SET テーブルです。一部のデータセットで重複行の問題が発生しています。
私が知る限り、TERA モードは挿入中に重複レコードを無視するはずです。誰かが動作を確認できますか?
Hadoop からレコードを取得し、sqoop(JDBC) を介して Teradata に挿入するアプリケーションに取り組んでいます。
接続に TERA モードを使用しており、ターゲット テーブルは SET テーブルです。一部のデータセットで重複行の問題が発生しています。
私が知る限り、TERA モードは挿入中に重複レコードを無視するはずです。誰かが動作を確認できますか?
TeradataのTERAモードのSETテーブルには、次の 2 つのシナリオがあります。
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 を設定する場合 (重複行例外をスローしません):
insert into DBName.table_name(id,name) select id,name from DBName.table_name2;
テーブルDBName.table_nameに既に存在するDBName.table_name2にレコードがあり、上記のクエリを実行しようとすると、重複行例外が無視され、テーブルDBName.table_nameには何も挿入されません。
また、ANSIモードでは、上記の両方のシナリオで重複行例外が発生します。