エラー
Error: java.lang.RuntimeException: java.lang.RuntimeException: net.snowflake.client.jdbc.SnowflakeSQLException: Timestamp 'abcdef' is not recognized
File '...', line 1, character xxx
Row 1, column "COLUMN_NAME"[COLUMN_INDEX]
カラムの値がずれてしまい、文字列が日付型カラムに、または数値が文字列型カラムにというように、型が一致しない値が格納されるエラー。
原因
Snowflakeへの転送は、カラム名ベースではなく位置ベースで動作します。そのため、TROCCOから送信されるカラムの順番と、転送先Snowflakeテーブルのカラムの物理順序が一致していない場合、データがずれてしまいエラーが発生します。
このずれは以下のような場合に発生します:
- 転送設定のカラム定義とSnowflakeの物理カラム順が異なっている
- 転送元スキーマに新規カラムが追加されたが、スキーマ追従を実行していない
- Snowflake側でカラムの追加や削除を行った
対処法
- Snowflake側で、データが転送されているテーブルのカラム順序を確認する
- TROCCO側の転送設定STEP2「カラム定義」を、Snowflakeテーブルの物理カラム順序に合わせて並び替える
- 設定を保存してプレビューを再読み込みし、データが正しく表示されることを確認する
設定変更後の新たなジョブ実行でエラーが解決します。
補足:転送日時カラムを追加している場合
STEP2で「転送日時カラム追加」機能を使用している場合、以下の点に注意してください。
「転送日時カラム追加」で追加したカラムは、転送データの末尾に配置されます。この場合、より柔軟にカラム順序を制御するため、カスタム変数を使って手動でカラムを追加する方法が有効です。
- STEP1の転送先設定にカスタム変数を追加(例:
$today$、データ型:時刻・日付) - STEP2のカラム定義で新規カラムを追加し、デフォルト値にカスタム変数を指定
- 「転送日時カラム追加」のチェックを外す
- カラム順序をSnowflakeテーブルに合わせて修正
- 設定を保存してプレビューを再読み込みし、データが正しく表示されることを確認する
この方法により、今後カラム構成が変更されても、転送設定で柔軟に対応できます。
(参考)スキーマ追従
コメント
0件のコメント
記事コメントは受け付けていません。