Embulk (gzip -> 압축 해제: csv -> TreasureData)

8230 단어 EmbulkTreasureData

개요



Embulk를 사용할 기회가 있었으므로, 사용법에 대해 잊지 않도록 메모해 둔다.
「sample_01.csv.gz」파일로부터 csv를 취득해, TreasureData에 송신하는 샘플을 해 본다.

샘플 준비



터미널
$ embulk example ./try3

플러그인 추가



"embulk-output-td"를 추가한다.

터미널
## プラグインの独立したバンドルを作成する
$ embulk mkbundle bundle

## gemファイルにプラグインを追記する
$ vi bundle/Gemfile
gem 'embulk-output-td' # 追記

## プラグイン追加
$ cd bundle
$ embulk bundle
$ cd ../

config.yml 만들기 & 수정



터미널
$ embulk guess -b bundle seed.yml -o config.yml
$ vi config.yml

config.yml
in:
  type: file
  path_prefix: /root/opt/www.qlife.jp/./try3/csv/sample_
  decoders:
  - {type: gzip}
  parser:
    charset: UTF-8
    newline: LF
    type: csv
    delimiter: ','
    quote: '"'
    escape: '"'
    null_string: 'NULL'
    trim_if_not_quoted: false
    skip_header_lines: 1
    allow_extra_columns: false
    allow_optional_columns: false
    columns:
    - {name: id, type: long}
    - {name: account, type: long}
    - {name: time, type: timestamp, format: '%Y-%m-%d %H:%M:%S'}
    - {name: purchase, type: timestamp, format: '%Y%m%d'}
    - {name: comment, type: string}
out:
  type: td
  apikey: <your apikey>
  endpoint: api.treasuredata.com
  database: hoge_fuga_tmp  # データベース名
  table: my_table          # テーブル名
  mode: append             # 転送モード: append(追加), replace(置き換え)
  # time_column: time      # インデックスに使用する時間カラム
  default_timestamp_format: '%Y-%m-%d %H:%M:%S'
  column_options:
    time: {format: '%Y-%m-%d %H:%M:%S', timezone: 'Asia/Tokyo'}


미리보기



터미널
$ embulk preview -b bundle config.yml
+---------+--------------+-------------------------+-------------------------+----------------------------+
| id:long | account:long |          time:timestamp |      purchase:timestamp |             comment:string |
+---------+--------------+-------------------------+-------------------------+----------------------------+
|       1 |       32,864 | 2015-01-27 19:23:49 UTC | 2015-01-27 00:00:00 UTC |                     embulk |
|       2 |       14,824 | 2015-01-27 19:01:23 UTC | 2015-01-27 00:00:00 UTC |               embulk jruby |
|       3 |       27,559 | 2015-01-28 02:20:02 UTC | 2015-01-28 00:00:00 UTC | Embulk "csv" parser plugin |
|       4 |       11,270 | 2015-01-29 11:54:36 UTC | 2015-01-29 00:00:00 UTC |                            |
+---------+--------------+-------------------------+-------------------------+----------------------------+

처리 실행



터미널
$ embulk run -b bundle config.yml

TreasureData 확인



my_table 테이블에 데이터가 등록되어 있습니다.


이상

참고 사이트


  • Github - treasure-data/embulk-output-td
  • TD output plugin for Embulk
  • Mac에서 embbulk를 사용하여 Treasure Data로 데이터 전송을 손쉽게 수행
  • 좋은 웹페이지 즐겨찾기