すのふら

すのふら

日々の備忘録

Redshift

Amazon Redshiftで「Serializable isolation violation on table」のエラーが発生した

バッチ処理中にRedshiftでエラーが発生した。 「Serializable isolation violation on table - [数値], transactions forming the cycle are: [数値], [数値](pid:[数値])」 というメッセージ。原因は単純で1つのテーブルに対し同時に複数の書き込み処理はで…

RedshiftでのROW_NUMBER()関数のNULL挙動について

仕事していてRedshiftでのROW_NUMBER()関数のNULL挙動ってどうなんだっけと思ったので、メモしておく。 ORDER BYした時のソートでNULLがどうなるかって話。 docs.aws.amazon.com テストデータについて ROW_NUMBER()関数のテストとして、PARTITION BYの値はす…

RedshiftでのCREATE TABLE中に「ERROR: XX000: 1040」が出力

タイトルそのままの現象だが、RedshiftでCREATE TABLEコマンドを実行中に「ERROR: XX000: 1040」が出力されて、CREATE TABLEができない状態に陥った。実行クライアントツールはaginity。クライアントを再起動、再接続してみたが結果変わらず。 メッセージも…

RedshiftのVACUUMが実行されていないテーブルがあった

VACUUMで俺の無知が炸裂したのでメモしておく。Redshiftのデータ更新は追記型のため、Deleteしても見た目上は消えていてもディスク上にデータが残りっぱなしになっているので、その不要な領域を削除・再ソートしてあげる必要がある。そのためにテーブルをVAC…

Redshift COPYで改行を含むデータをロードする

以下のようなRedshift COPYコマンドでロードしようとした際に、取り込もうとしたデータに改行が含まれていた場合「Delimited value missing end quote」エラーになってしまって困った。 COPY [table-name] FROM 's3://[bucket-name]/xxx/yyyy/' CREDENTIALS …

「index "pg_toast_16408_index" is not a btree」というエラーが出力する。

RedshiftにCOPYコマンドでデータを投入するとたまーに発生する「index "pg_toast_16408_index" is not a btree」というエラー。 調査 テーブルにレコードがない状態でCOPYコマンドを実行した際、ANALYZE実行されると発生するAWSのバグらしい。 *1 [COPY from…

Redshiftのデータロード方法についてメモ

Redshiftのデータロード方法について、初めて触れるところがあるのでメモする。 データのロード - Amazon Redshift Insert COPYコマンドが推奨される。 COPY コマンドは Amazon Redshift の超並列処理 (MPP) アーキテクチャを活用し、Amazon S3 のファイル、…