日々地道に成長

思いついたことを書いていきます。

【Embulk】Embulk入門講座〜使用方法編〜【初心者】

f:id:stady-diary:20201027001919p:plain

お疲れ様です。コーヒーです。

前回はEmbulkのインストール方法について解説いたしました。

stady-diary.hatenablog.com


今回はEmbulkの簡単な使用方法を解説していこうと思います。

EmbulkのQuick start

Embulk公式のお試しプログラムで基本的な使い方を覚えることができるため、そちらを元に解説していこうと思います。

https://www.embulk.org/

1.exampleの実行でお試しファイルの作成
embulk example ./try1

上記コマンドを入力することでサンプルのcsvファイル(sample_01.csv.gz)実行の元となるファイル(seed.yml)が生成されます。

実際の作業でcsvファイルを送る場合などは、この工程はサンプルファイルを作成しているだけなので必要はありません。

[sample.csv]

id account time purchase comment
1 32864 2015/1/27 19:23 20150127 embulk
2 14824 2015/1/27 19:01 20150127 embulk jruby
3 27559 2015/1/28 2:20 20150128 Embulk "csv" parser plugin
4 11270 2015/1/29 11:54 20150129 NULL

 [seed.yml]

in:
type: file
path_prefix: 'C:\Users\try1\csv\sample_'
out:
type: stdout

seed.ymlは設定を行う前の状態なので、pathの設定ぐらいしか書かれていません。

逆にpathさえ繋がっていれば後に紹介するguess機能でおおよその設定ができます。

2.guessの実行でembulk設定ファイルのおおまかな設定を行う
embulk guess ./try1/seed.yml -o config.yml

guessを入力することで、指定したファイルを推測して設定ファイルを作成できます。上記コマンドは、seed.ymlで指定しているcsvファイル(sample_01.csv.gz)の構成を読み取り、その結果をconfig.ymlとして出力しています。

[config.yml]

in:
type: file
path_prefix: C:\Users\try1\csv\sample_
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: stdout}

先ほどのseed.ymlからかなり情報量が増えているのがわかると思います。

sample.csvから以下のような情報を読み取り、自動作成してくれています。

  • charset(文字コード):UTF-8
  • type(fileの種類):csv
  • skip_header_lines(ヘッダーの位置設定):1
  • columns:それぞれのカラム名、データ型等

これがguess機能のすごいところです!

guessコマンドは、使用しなくてもembulkの設定ファイルの作成はできますが、自分で入力する項目が減るため、なれてくるまでは便利な機能になっています。

また、今回はoutの設定を行っていないため標準出力になっています。outの設定を追加することで「CSVとして出力」「MySQLへ出力」「TreasureDataに出力」など様々なことが出来ます。

3.preview機能で出力する前に結果を確認
embulk preview config.yml

preview機能を使用することで、実際に出力する前に結果を確認できます。

間違っている状態でデータを上書きしてしまうことを防ぎたい時など、先に出力結果を確認してから行いたい時に使用してください。

[出力結果]

f:id:stady-diary:20201027004030p:plain

4.run機能でEmbulkの実行
embulk run config.yml

runで設定したファイルの実行が行えます。

上記コマンドでは「2.」で設定したconfigファイルの実行をおこなっています。

出力結果は以下のようになります。

 [出力結果]

f:id:stady-diary:20201027004208p:plain

 

以上でEmbulkの簡単な使用方法についての解説は終了です。

参考にしていただければ幸いです。