オープンソースのバルクデータローダー「Embulk」登場。fluentdのバッチ版、トレジャーデータが支援

2015年1月28日

何ギガバイトもあるCSVをデータベースに読み込ませるようなバルクデータをバッチ処理するためのツール「Embulk」がオープンソースで公開されました。

コミッターとして開発しているのは、ログ収集ツールとして知られるfluentdなどの開発者として知られる古橋貞之氏、西澤無我氏、中村浩士氏らで、3人が所属するTreasure Dataも開発を支援しています。

古橋氏はEmbulkについて「簡単に言うとfluentdのバッチ版です」と説明。1月27日に行われた「データ転送ミドルウェア勉強会」で、Embulkの紹介を行いました。

Embulkはプラグインベースのバルクデータローダー

fig

古橋氏はまず、例えばCSVファイルをPostgreSQLに読み込ませようとすると、CSVの日付のフォーマットがPostgreSQLの想定しているフォーマットと違っていたり、Null値の表現が違っていたりして失敗して、データ変換のためのアドホックなスクリプトを何度も書くことになると、現状のバルクデータのロードが簡単でないことを紹介。

しかもこうした作業はXMLやJSONや各種ログフォーマットなどデータの種類が増えるごとに発生し、またロード先がPostgreSQLからMongoDBやAmazon RedShiftなど増えることでも同様に発生すると指摘。さらにデータの二重ロードやエラーの際のハンドリング、リトライ、大規模なロード時の性能最適化など、バルクロードのデータには数々の課題があることを示しました。

fig

こうした課題を解決するために開発されたのが「Embulk」です。

「Embulkはプラグインベースのバルクデータローダー。プラグインで、あたらしいデータフォーマットやデータソースに対応できるし、これをオープソースにすることで再利用できる」(古橋氏)

fig

Embulkのプラグインは階層構造になっており、インプット側は入力に対応する「FileInputPlugin」、gzipのデコードなどに対応する「DecoderPlugin」、そしてデータをパースする「ParserPlugin」の3層。そして実行部分も「Executor Plugin」になっており、例えばHadoopに対応したプラグインを書くと、MapReduce上で並列処理として実行できる、といった構造になっています。

fig

「プラグインを役割分担することで、それぞれをシンプルで再利用しやすくなる。例えばファイルフォーマットはそのままで入力はAmazon S3に対応するとか」(古橋氏)

古橋氏はEmbulk紹介の冒頭で「これがfluentd以上にはやってくれると嬉しいです」と切り出しています。実際に、fluentdのようにリアルタイムでログを収集する場面よりも、大規模なデータファイルをアプリケーションやデータベースにバッチ処理で読み込ませる場面の方が十分多いと思われます。Embulkのプラグインやエコシステムが充実していけば、fluentdよりも普及する可能性はかなり高いのではないでしょうか。

Embulk, an open-source plugin-based parallel bulk data loader from Sadayuki Furuhashi

このエントリーをはてなブックマークに追加
Bookmark this on Delicious

タグ : Embulk , クラウド

≪前の記事
日本HP、Xeonプロセッサを採用した無停止サーバ「HP Integrity NonStop X」発表

Loading...

Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求しています。
詳しいプロフィール


新サイト「Publickey Topics」始めました!


Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
RSSリーダーで : Feed





アクセスランキング - 過去7日間

  1. [速報]Windows 10は「Windows as a Service」となる。デバイスの寿命までアップデートが提供され続ける
  2. [速報]マイクロソフトの新ブラウザ「Project Spartan」発表。新レンダリングエンジン、Webページの共有機能など
  3. マイクロソフトの新しいレンダリングエンジン「Edge」、新ブラウザ「Project Spartan」「次期IE」両方のデフォルトに
  4. オープンソース化され、MacOS XとLinuxに対応する「.NET Core」とは何か?
  5. [速報]Windows 10リリース後1年は、Windows 7、Windows 8.1から無償アップグレード可能に
  6. IT系企業の平均給与を業種別にみてみた 2014年版 ~ ネットベンチャー、ソーシャル、ゲーム編
  7. オラクル、高価格帯だったエンジニアドシステムで価格競争を宣言。新戦略は最高性能をもっとも安く提供すること
  8. iOS/Androidネイティブアプリのためのビジュアル開発環境「RAD Studio XE7」。ソースコードを一本化しつつiOS/Androidの個別最適化を実現する方法[PR]
  9. Sublime、Vim、Emacs、AtomなどにIntelliSense機能を追加する「OmniSharp」、マイクロソフトがデモ
  10. OpenJDK9のコミッターに末永恭正氏が就任。「自分の技術的な興味のストライクゾーンでした」
  11. ブロケード、SDNコントローラ「Vyatta Controller」を無償公開。SDNアプリケーション開発用の「Vyatta Controller Developer Edition」も発表
  12. 日本HP、Xeonプロセッサを採用した無停止サーバ「HP Integrity NonStop X」発表
  13. AngularJSやTypeScriptサポート、モバイル対応、グリッドやグラフなど業務用JavaScriptコントロールを備えた「Wijmo 5」、グレープシティがリリース
  14. Google、Docker用プライベートリポジトリ「Google Container Registry」β公開。Google Cloud StorageにDockerイメージを保存
  15. Amazonクラウド、データセンターの運用に50万メガワットアワーの風力発電を利用すると発表

Publickey 最新記事 10本

Publickey Topics 最新記事 10本


PR - Books


fig

fig

fig

fig



blog comments powered by Disqus