go build -o fluentlog2json
CREATE TABLE mytable (
id INT,
msg TEXT,
time TIMESTAMP
)
distkey(id)
sortkey(time);
$ cat fluentd.log
2016-01-29T00:00:00+09:00 TAG {"id":1,"msg":"foo"}
2016-01-29T01:00:00+09:00 TAG {"id":2, "msg":"bar"}
$ cat /path/to/fluentd.log | ./fluentlog2json -tag TAG > log.json
$ cat log.json
{"id":1, "msg":"foo","time":"2016-01-29 00:00:00"}
{"id":2, "msg":"bar","time":"2016-01-29 01:00:00"}
$ aws s3 cp log.json s3://mybucket/
psql -h REDSHIFT_ENDPOINT -U USERNAME -p PORT DBNAME
$ psql -h REDSHIFT_ENDPOINT -U testuser -p 5439 mydb
ユーザ testuser のパスワード:
mydb=# COPY mytalbe FROM 's3://mybucket/log.json' WITH
CREDENTIALS 'aws_access_key_id=<access-key-id>;aws_secret_access_key=<secret-access-key>'
FORMAT AS JSON 'auto';
INFO: Load into table 'mytable' completed, 2 record(s) loaded successfully.
COPY
mydb=# SELECT * FROM mytable;
2 | bar | 2016-01-29 01:00:00
1 | foo | 2016-01-29 00:00:00