ablog

不器用で落着きのない技術者のメモ

Redshift の Timestamp 型のカラムに COPY コマンドでデータをロードしてみる

ただのメモ。


データを用意して

% cat ts_test.csv
202 2012-12-31 12:34:56
652 2012-12-31 12:34:56
761 2012-12-31 12:34:56
811 2012-12-31 12:34:56
922 2012-12-31 12:34:56
1160 2012-12-31 12:34:56
1309 2012-12-31 12:34:56
1413 2012-12-31 12:34:56
1858 2012-12-31 12:34:56
1901 2012-12-31 12:34:56

S3 にアップロードして

% aws s3 cp ts_test.tsv s3://<バケット名>/

テーブルを作成して

create table if not exists public.ts_test (
  id numeric(38,0) not null,
  ts_wo_tz timestamp without time zone
);

S3のデータをロードして

copy public.ts_test
from 's3://<バケット名>/ts_test.tsv'
IAM_ROLE 'arn:aws:iam::*********:role/SpectrumRole'
delimiter '\t'
region 'ap-northeast-1';

テーブルにロードされたデータを確認する

select * from ts_test;
  id  |      ts_wo_tz
------+---------------------
 1160 | 2012-12-31 12:34:56
  202 | 2012-12-31 12:34:56
  922 | 2012-12-31 12:34:56
  761 | 2012-12-31 12:34:56
  652 | 2012-12-31 12:34:56
 1309 | 2012-12-31 12:34:56
  811 | 2012-12-31 12:34:56
 1858 | 2012-12-31 12:34:56
 1901 | 2012-12-31 12:34:56
 1413 | 2012-12-31 12:34:56
(10 rows)