クイックスタート2

Embulk クイックスタートの続き。
あらかじめ用意された.ymlファイルに従ってEmbulkを動かしていたところから、新たにプラグインをインストールしこれを用いた実行を行う。

Embulk プラグイン

Embulkへのプラグインのインストールは”gem install” オプションで行う。

$ embulk gem install <plugin name>  

クイックスタートでインストールするプラグインは、”embulk-output-command” というプラグイン。

$ embulk gem install embulk-output-command
2015-12-04 13:27:49.127 +0900: Embulk v0.7.10
Fetching: embulk-output-command-0.1.3.gem (100%)
Successfully installed embulk-output-command-0.1.3
1 gem installed
$

gemオプションで指定可能なプラグインのリストは、List of Plugins by Categoryでリストアップされている。

.ymlファイルの編集

config.ymlを書き換える。

in:
  type: file
  path_prefix: "./try1/csv/sample_"
out:
  type: command
  command: "cat - > task.$INDEX.$SEQID.csv.gz"
  encoders:
    - {type: gzip}
  formatter:
    type: csv

入力側は前回と同じ。
出力側にインストールしたプラグインを指定し、”command” の項目で実行するコマンドを指定している。
catで入力のファイルを読み込んだ後、csv形式に整え.gz形式で出力することを定義している。

実行

前回同様guessコマンドで補完を実行。

$ embulk guess ./config.yml -o config_plugin.yml

実行すると、.csv.gzファイルが生成される。

$ embulk run config_plugin.yml    2015-12-04 13:40:31.937 +0900: Embulk v0.7.10
2015-12-04 13:40:35.360 +0900 [INFO] (transaction): Loaded plugin embulk-output-command (0.1.3)
2015-12-04 13:40:35.460 +0900 [INFO] (transaction): Listing local files at directory 'try1/csv' filtering filename by prefix 'sample_'
2015-12-04 13:40:35.480 +0900 [INFO] (transaction): Loading files [try1/csv/sample_01.csv.gz]
2015-12-04 13:40:35.659 +0900 [INFO] (transaction): {done:  0 / 1, running: 0}
2015-12-04 13:40:35.674 +0900 [INFO] (task-0000): Using command [sh, -c, cat - > task.$INDEX.$SEQID.csv.gz]
2015-12-04 13:40:36.088 +0900 [INFO] (transaction): {done:  1 / 1, running: 0}
2015-12-04 13:40:36.092 +0900 [INFO] (main): Committed.
2015-12-04 13:40:36.093 +0900 [INFO] (main): Next config diff: {"in":{"last_path":"try1/csv/sample_01.csv.gz"},"out":{}}
$ ls
config_plugin.yml  config.yml  task.0.0.csv.gz  try1
$ less task.0.0.csv.gz
id,account,time,purchase,comment
1,32864,2015-01-27 19:23:49.000000 +0000,2015-01-27 00:00:00.000000 +0000,embulk
2,14824,2015-01-27 19:01:23.000000 +0000,2015-01-27 00:00:00.000000 +0000,embulk jruby
3,27559,2015-01-28 02:20:02.000000 +0000,2015-01-28 00:00:00.000000 +0000,"Embulk ""csv"" parser plugin"
4,11270,2015-01-29 11:54:36.000000 +0000,2015-01-29 00:00:00.000000 +0000,NULL