ゴールデンウィーク中はほぼ毎日出かけてましたが、おかげで財布が寒いことになってしまいました。もうクールビズ期間になるくらい、気温は上がっているというのに…。
さて、今回はOSSについて取り上げてみようと思います。
メジャーなOSSだけでも、サーバ監視のZabbix、メールサーバのPostfix、クラウド環境を構築できるOpenStack、A-AUTO 50サイトでも利用しているCMSのWordPressなど今や膨大な数になっています。
新しいOSSも次々とリリースされているので、1年もすればメジャーなOSSの数が倍くらいになっているかもしれません。また、消えていくものもたくさんあるので、OSSの選択は重要ですね。
そこで、今回は新しいOSSに着目し、2015/1/27にリリースされたデータ転送のOSS、Embulk(エンバルク)についての紹介と、実際に利用してみます。
Embulkとは
Embulkとは、先に書いたようにデータ転送のOSSですが、特徴としてデータのインプット・アウトプットや、データの加工をプラグインとして拡張することができます。
既に一般的なDBからのインプット・アウトプットのプラグインや、Amazon S3からのインプット・アウトプとのプラグインが利用できるようになっています。
プラグイン一覧:http://www.embulk.org/plugins/
ご存知の方も多いと思いますが、同様の特徴を持つfluentdというOSSがあります。
Embulkはfluentdのバッチ版として位置づけられ、サーバに常駐してリアルタイムでログを送信するfluentdに対し、Embulkは定期実行や一度だけの実行に利用するものとされています。
例えばDBからcsvファイルとしてデータを落としたいものの、日次で取得できれば十分な場合などに使えそうですね。
とりあえず試してみたい方は下記のテスト実行手順を参考にしてみてください。サンプルデータの作成コマンドが用意されているので、試してみる敷居は低くなっています。
https://github.com/embulk/embulk#trying-the-example
ここからは、実際にDB(より具体的に言うとMysql)から、csvファイルとしてデータを落としてみます。
ちなみに今回はEmbulkの仕組みや、設定に関して詳しい説明はしません。(分かりやすい解説サイトもたくさんありますので…)
Embulkを使ってみて、こんなことができるだなという感じを掴んでもらればいいなと思っています。
実際にやってみる
特徴として挙げたように、Embulkはプラグインによってインプットやアウトプットの幅を広げることができます。
まず、WordPressのDBとして利用されているMySQLからデータを抜き出せるように、"embulk-input-mysql"をインストールします。
|
これでEmbulkを使ってMysqlのデータを取り出すことができるようになりました。
次にymlファイルを編集します。
ymlファイルとは、Embulk実行時にインプットにするいわば設計図にあたるファイルで、これによってインプットの種類や内容、同様にアウトプットの種類や内容、データの加工方法について記載します。