はじめに
こんにちは、井下です。今までに何度かEmbulkについて書いてきましたが、プラグインの使い方が主な内容だったので、今回はEmbulkを使って何をするかに焦点を当ててみようと思います。
そこでタイトルの通り、Embulkを使い、ウェブサイトやブログの構築によく利用されているWordPressからデータを出力してみます。
WordPressは元々エクスポート機能を備えていますが、定期的に出力しているようなケースであれば、Embulkを使うことで作業の効率化を見込めます。
例えば、毎日のユーザ登録数の推移を見てみたい、という場合、毎日管理画面にログインしてデータをエクスポートするより、自動でデータがファイルにまとめられていて、そのファイルを見るだけになっている方が楽ですよね。
そういったちょっとした手間を省けるようになります。
※過去の関連ブログ
・データ転送のOSS「Embulk」を使って、MysqlからデータをCsvに落としてみる
・embulk-filter-evalでどんなデータ変換ができるのか試してみる
Embulkの準備
Embulkをまだインストールしていないのであれば、下記のクイックスタートを参考にして、Embulkが利用できるように準備します。https://github.com/embulk/embulk#quick-start
Embulkについての情報を集めたいのであれば、下記のまとめを利用しましょう。
http://qiita.com/hiroysato/items/397f36c4838a0a93e352
Embulkはデータのインプット・アウトプット先をプラグインによって拡張する仕組みになっています。WordPressは各データの管理をMySQLで行っているため、MySQLをインプット先にできるように、embulk-input-mysqlプラグインをインストールしておきます。
https://github.com/embulk/embulk-input-jdbc/tree/master/embulk-input-mysql
embulk-input-mysqlプラグインはEmbulkをインストールした後、下記のコマンドによってインストールできます。
C:\~>embulk gem install embulk-input-mysql
WordPressのテーブル設計について
Embulkの準備が完了した後は、WordPressからどんなデータを取得するのかを決めておきます。下記のWordPressの標準インストールで作成されるテーブル一覧を参考にして、欲しいデータがどのテーブルのどのカラムにあるのかを確認します。
http://wpdocs.osdn.jp/データベース構造#.E3.83.86.E3.83.BC.E3.83.96.E3.83.AB.E4.B8.80.E8.A6.A7
なお、プラグイン等の拡張によって追加された機能は、別途テーブルを作成しているので、その場合は機能ごとに対応したテーブルを調べる必要があります。
今回は例として、標準インストールで作成されるusersテーブルのID、user_login、user_registeredの3カラムを出力対象として話を進めていきます。
Embulkの実行
Embulkの実行は基本として、下記のコマンドで行います。
C:\~>embulk run config.yml
"config.yml"を入力パラメータとするような形式です。この"config.yml"にインプット・アウトプット先などを定義します。("config.yml"は固定名ではなく、任意の名前に変更しても大丈夫です。)
サンプルとして、usersテーブルのID、user_login、user_registeredをcsvファイルに出力する設定のymlファイルを記載します。