0

Hadoop からレコードを取得し、sqoop(JDBC) を介して Teradata に挿入するアプリケーションに取り組んでいます。

接続に TERA モードを使用しており、ターゲット テーブルは SET テーブルです。一部のデータセットで重複行の問題が発生しています。

私が知る限り、TERA モードは挿入中に重複レコードを無視するはずです。誰かが動作を確認できますか?

4

1 に答える 1

2

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モードでは、上記の両方のシナリオで重複行例外が発生します。

于 2013-07-24T22:47:46.733 に答える