MySQLやPostgreSQLなどのRDBからBigQueryにデータを転送する際、次のようなエラーが発生する場合があります。
エラー
(一部抜粋){:reason=>"invalidQuery", :message=>"Invalid date: '0000-00-00' Field: date_field;原因
転送元のDBに格納されている日付がBigQueryの許容範囲外です。
データ型変換の際に、日付として不正な値(負の年月日、0000年、存在しない日付など)が存在しています。
例えば、MySQLでは '0000-00-00' や負の年月日の値を持つ日付も格納できますが、BigQueryでは有効なDATE型は 0001-01-01 〜 9999-12-31 に限定されます。
対処法
転送前に日付を補正する
MySQL側で
CASE文などを使って、BigQueryで有効な範囲に収める
Step2のテンプレートETLで変換や除外を行う
該当のカラムのデータ型をstring型に変換し、「文字列 正規表現置換」を利用して、0000-00-00などの不正な日時データを空文字に変換する
または、フィルター機能を利用して、不正な日時データが含まれているレコードを転送対象から除外する
コメント
0件のコメント
記事コメントは受け付けていません。