ちょっと話題の記事

Embulk界隈で話題になっている分散ワークフローエンジン「DigDag」について調べてみた #digdag

2016.06.10

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、最近Embulk(エンバルク)を調べている川崎です。 タイトルの「DigDag」(ディグダグ) *1と聞いて○ァミコンや○ムコを思い浮かべた方はきっとアラサー以上ですね!

今回はEmbulkを使い始めると直面するであろう課題について書いていきたいと思います。

これまでに書いたEmbulkエントリー

[Embulk] Embulkについての個人的なまとめ

[Embulk] guess機能を試してみた【追記】あり

[Embulk] guess機能を試してみた Redshift編

[Embulk] タイムスタンプのカラムを追加する

[Embulk] タイムスタンプのカラムを追加する add_timeプラグイン編

[Embulk] guess機能を試してみた (テーブルが存在する場合)

Embulkを使いはじめると...

Embulkはデータファイルの中身をDBにロードするような用途でとても便利です。個人的には、データファイルをスキャンして列構成やデータ型を推測し、DB側でCREATE TABLEまで行ってくれるguess機能が気に入っています。

Embulkを使い始めると、複数のテーブルを一度にロードしたい、というニーズが出てきます。 Embulkはテーブル毎に1つの設定ファイル(yamlファイル)を記述する必要があります。(1つのBulkloadに対して1つのYAMLファイル) この設定ファイルを作成・編集する部分を自動化したい、とい要望です。

この辺りの要件をまとめたのが、「Embulk Meetup Tokyo #2」で、DeNA中山さんが発表された「Embulkに足りない5つのコト」ではないかと思います。

足りないことラインナップ
 1. YAML管理
 2. 単体処理フレームワーク
 3. ジョブキュー
 4. 並列数制御
 5. 続きから実行

事前処理、事後処理やジョブ管理の仕組みが欲しい、という要望が出てきます。

DeNA中山さん 「Embulkに足りない5つのコト」

このスライドを見ていくと、、
『昨日聞いたけど「digdag」というツールが出るらしいよ』

ということで、ここで「DigDag」が登場します。

DigDagについて調べてみた

「Embulk Meetup Tokyo #2」の時点での「昨日」というのは、前日同じ会場で行われた、「Workflow Hacks! #1」のことになります。

Togetterでまとめていただいたものを見ますと、おそらくこのツイートが、「DigDag」が初めてSNSに登場するタイミングではないかと思います。 (古橋さんの発表のタイミングだと思いますが、発表スライドは見つかりませんでした)

Workflow Hacks! #1
 http://eventdots.jp/event/574963
 2015/12/14(月)
2015/12/14 Workflow Hacks! #1 #workflowhacks のまとめ
 http://togetter.com/li/912716
Embulk Meetup Tokyo #2
 http://eventdots.jp/event/575046
 2015/12/15(火)
Embulk Meetup Tokyo #2 イベントレポート
 http://eventdots.jp/eventreport/575046
Embulk Meetup Tokyo #2 に行ってきました
 http://takemikami.com/2015/12/15/Embulk-Meetup-Tokyo-2.html

Tokyo RubyKaigi #11での古橋さんの講演

おそらくDigDagについて、現時点で一番詳しい情報は、作者の古橋さんによるこちらの講演ではないでしょうか。今回調べていて、発表動画が掲載されていることを発見しましたので、後日内容を見てみたいと思います。

分散ワークフローエンジン『Digdag』の実装 at Tokyo RubyKaigi #11
 http://regional.rubykaigi.org/tokyo11/schedule/
 2016/05/28(土)
[発表スライド]
  
 [発表動画]
 
 [事前インタビュー]
 http://regional.rubykaigi.org/tokyo11/interview/frsyuki
 →事前インタビューまで用意されてるのはすごいですね!

 

早速ダウンロード...

https://github.com/treasure-data/digdag-docs
 こちらがGithubのリポジトリのようですので、早速内容を確認すると、、、

まだリリースはされていないようですね。

近日開催予定の勉強会で「EmbulkやDigdagのお話」(Tresuredata)というセッションがありますので、 この辺りでリリースについての発表があるのかもしれないですね。

第五回ゲームサーバ勉強会
 http://eventdots.jp/event/590582
 2016/06/18(土)

勉強会のハッシュタグは、#ゲームサーバ勉強会 のようです。

期待してリリースを待ちたいと思います。

脚注

  1. 懐かしいほうのスペルはDIGDUGだそうです。ワークフローエンジンの方の「DAG」は「有向非巡回グラフ」だそうです。「有向非巡回グラフ」をdigするツールという意味ですね。