エラー
ABORT: num_input_rows (30) and num_output_rows (10) does not match原因
このエラーは、BigQueryへデータは送られているものの、BigQueryの「パーティション有効期限」によって、ロード直後にデータが削除されたことが原因です。
1. TROCCO設定上の「パーティション存続期間」の誤設定
転送設定のSTEP3において、「パーティションの存続期間」が極端に短い値に設定されている場合、書き込まれた瞬間にデータが期限切れと判定され、削除されます。
※ この項目は、ミリ秒(ms)単位で指定する設定となっているのでご注意ください。
2. BigQueryサンドボックス環境の制約
BigQueryを無料のサンドボックス環境で利用している場合、テーブルやパーティションにデフォルトで「60日間」の有効期限が設定されます。
そのため、これより古い日付(created_at など)を持つデータをロードしようとすると、期限切れとして除外されます。
対処法
状況に合わせて、以下のいずれかの対策を行ってください。
① TROCCOの設定を修正する
転送設定のSTEP3「パーティションの存続期間」の項目を確認し、不要であれば空欄にしてください。
特定の期間で削除したい場合は、正しい期間(ミリ秒換算)を再計算して入力してください。
② BigQuery側の有効期限設定を変更する
-
BigQueryの対象データセットの設定変更
BigQueryコンソールから、対象データセットの「デフォルトのテーブルの有効期限」を Never に変更する
-
サンドボックスを解除する
クレジットカード情報を登録し、有料プラン(アップグレード)へ移行することで、60日間の強制制限を解除する
③ 転送対象データの見直し
転送元のクエリやTROCCOのフィルタ機能で、有効期限を過ぎるような古いデータ(過去数年以上前のデータなど)を転送対象から除外してください。
コメント
0件のコメント
記事コメントは受け付けていません。