目次
概要
今回はEmbulkの基本的なプラグインのインストール方法と
実運用を考慮したbundleでプラグインを管理していく方法を解説いたします。
Embulk gem install プラグイン名
基本はこの形でプラグインをインストールすることができます。
$ embulk gem install embulk-output-mysql
プラグインがインストールされているかは下のコマンドで確認することができます。
$ embulk gem list
しかし、実際の開発では本番で動く環境が違ったり、バージョンの異なるものを使いたいときがあります。
そんなときはbundleで管理していくことがよいです。
bundleでプラグインを管理
今回は2つの環境を用意してみます。
embulk_sample ├ sample1 └ sample2
それぞれの環境でmkbundleコマンドをたたきます。
$ cd embulk/sample1 $ embulk mkbundle bundle $ cd embulk/sample2 $ embulk mkbundle bundle
実行後のフォルダ構成は下の通りです。
embulk ├sample1 │├Gemfile │└embulk │ ├filter │ ├input │ └output └sample2 ├Gemfile └embulk ├filter ├input └output
bundleへのプラグインのインストールの仕方
今回は例として
sample1にembulk-input-mysql
sample2にembulk-input-postgresql
をインストールしてみます。
sample1のフォルダ内にあるGemfileを編集します。
source 'https://rubygems.org/' # No versions are specified for 'embulk' to use the gem embedded in embulk.jar. # Note that prerelease versions (e.g. "0.9.0.beta") do not match the statement. # Specify the exact prerelease version (like '= 0.9.0.beta') for prereleases. gem 'embulk' gem 'embulk-input-mysql' ←追加 # # 1. Use following syntax to specify versions of plugins # to install this bundle directory: 以下省略
sample2のフォルダ内あるGemfileには
「gem ‘embulk-input-postgresql’」を追記します。
source 'https://rubygems.org/' # No versions are specified for 'embulk' to use the gem embedded in embulk.jar. # Note that prerelease versions (e.g. "0.9.0.beta") do not match the statement. # Specify the exact prerelease version (like '= 0.9.0.beta') for prereleases. gem 'embulk' gem 'embulk-input-postgresql' ←追加 # # 1. Use following syntax to specify versions of plugins # to install this bundle directory: #以下省略
Gemfileを編集したらbundleコマンドでプラグインをインストールします。
$ cd /embulk/sample1/bundle $ embulk bundle $ cd /embulk/sample2/bundle $ embulk bundle
コマンドを実行するとbundleディレクトリにGemfile.lockなどのファイルが作成されます。
各bundleのディレクトリで下記コマンドをたたくとインストールされているプラグインを確認することができます。
$ embulk bundle list
bundleを読み込んで実行する方法
それぞれのbundleにインストールしたプラグインを使ってやるには下記のように指定して実行します。
$ cd /embulk/sample1 $ embulk run -b bundle config.yml