エラー
[ERROR]: Error: org.jruby.exceptions.RaiseException: (Error) failed during waiting a Query job, get_job(xxx, embulk_query_job_xxx), errors:[{:reason=>"invalidQuery", :message=>"UPDATE/MERGE must match at most one source row for each target row", :location=>"query"}]原因
転送モードUPSERT(MERGE)にて、更新対象のレコードが転送元/転送先に複数ある場合に発生します。
たとえば、idをマージキーに設定している場合、id=A003が重複しており、エラーになります。
① 以下のようなデータをBigQueryに転送する、
② または以下のようなデータが入っているBigQueryのテーブルに対して転送する
| id | name | |
|---|---|---|
| A001 | 鈴木 | test@sample.com |
| A002 | 田中 | test-2@sample.com |
| A003 | 伊藤 | test-3@sample.com |
| A003 | 伊藤 | test-3@sample.com |
対処方法
- 転送元のレコードにマージキーに設定しているカラムの値が重複したデータがないか確認してください。
- BigQuery上の転送先に指定しているテーブル内に、マージキーに設定しているカラムの値が重複しているレコードがないか確認してください。
重複分のレコードは削除してから再度ジョブを実行してください。
コメント
0件のコメント
記事コメントは受け付けていません。