はじめに/Embulkとは...
Embulk is a open-source bulk data loader that helps data transfer between various databases, storages, file formats, and cloud services.(公式リファレンスより)
つまり、元のデータを一気に整形・変換してアウトプットすることができる。
ETLツール。
→抽出(Extract)変換(Transform)書き出し(Load)
Embulk(エンバルク)とは、オープンソースの並列データ転送フレームワークです。「fluentd」のバッチ版のようなバルク処理に特化したプラグインベースのデータローダーです。大規模データセットのバルクインポートを行えます。
<メモ>
bulk: 大きさ、容積、嵩(かさ)、大部分、大半
weblio bulkの意味
バルクインサート(bulk insert): 大量のデータを一気に投入すること
「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
環境構築
curl --create-dirs -o ~/.embulk/bin/embulk -L "https://dl.embulk.org/embulk-latest.jar"
chmod +x ~/.embulk/bin/embulk
echo 'export PATH="$HOME/.embulk/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
embulk example ./try1
embulk guess ./try1/seed.yml -o config.yml
embulk preview config.yml
embulk run config.yml
コマンド一覧
embulk example
- embulk example PATHで指定したパスに、サンプルCSVと設定ファイルを作成する。
embulk guess
-
-oオプション
guess実行後の設定出力先ファイルパス
embulk preview
- 指定したファイルの実行結果をプレビューする
embulk run
- 指定したファイルを実行する
config.yml書き方
プラグインに関する設定を書く。
in: インプットプラグインに関する記述
out: アウトプットプラグインに関する記述
filters: フィルタプラグイン関する記述
プラグイン
Embulk plugin
Embulkはデータ元→データ整形→アウトプットのプラグインが各種用意されている。
gemを使用して各プラグインをインストールが可能。
config.yml.liquid書き方メモ
Embulkはディレクトリ構成に不向きなご様子。
テンプレートエンジンLiquidの機能を使った場合、includeはサブディレクトリには、
対応しているが、「../」のように上の階層を指定するとエラーになることから、階層分けには不向きのようです。
Embulkの設定情報(liquid版) - Qiita
つまり
config
├ sample1_config.yml.liquid
├ sample2_config.yml.liquid
├ sample3_config.yml.liquid
commons
├ _input.yml.liquid
└ _output.yml.liquid
上記の構成にして、*_config.yml.liquidからcommons/以下の共通ファイルを読み込もうとしたのですが、
*_config.yml.liquid内に記述したパスが通らすエラー。
{% include '../commons/input' with json_file_path %}
このパスを読み取ってくれないらしい。
そのため、ディレクトリ構成を変更。
sample1_config.yml.liquid
sample2_config.yml.liquid
sample3_config.yml.liquid
commons
├ _input.yml.liquid
└ _output.yml.liquid
{% include 'commons/input' with json_file_path %}