なんちゃってエンジニアぶろぐ

プログラムがガリガリ書けるわけじゃない。でもなんか新しいことに手を出したいそんな人のブログ。

embulk 動か・・・す前に動かし方を考えた

前回導入までの話を書いたので、今日は動かすところと、見せかけて(?)動かし方を考えた話を書いてみました。

inui-beta.hatenablog.com

元々某関連会社でJP1AJSというジョブ管理ツールの設定やらジョブ管理をやってたのでそういうフレームワークが欲しくなり、検討してみました。

そもそもETLとかのツールって便利なんですけど、ジョブスケジューリングはできず、結局OS標準のスケジューラ使ってみるけど、できることは限られててみたいなパターン多くないですかね?

なので、今回はやったことがないdigdagの環境を作ってみることにしました。

github.com

理由は、言わずもがな。

やっぱり、親和性って大事だと思うんだ。

で、今回の導入もいつも通り公式ページの手順で導入。

$ curl -o ~/bin/digdag --create-dirs -L "https://dl.digdag.io/digdag-latest"
$ chmod +x ~/bin/digdag
$ echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
$ digdag
2017-11-05 15:38:43 +0000: Digdag v0.9.20
Usage: digdag <command> [options...]
  Local-mode commands:
    init <dir>                         create a new workflow project
    r[un] <workflow.dig>               run a workflow
    c[heck]                            show workflow definitions
    sched[uler]                        run a scheduler server
    selfupdate                         update cli to the latest version

  Server-mode commands:
    server                             start server

  Client-mode commands:
    push <project-name>                create and upload a new revision
    download <project-name>            pull an uploaded revision
    start <project-name> <name>        start a new session attempt of a workflow
    retry <attempt-id>                 retry a session
    kill <attempt-id>                  kill a running session attempt
    backfill <project-name> <name>     start sessions of a schedule for past tim                                                                                                                                                                es
    reschedule                         skip sessions of a schedule to a future t                                                                                                                                                                ime
    log <attempt-id>                   show logs of a session attempt
    workflows [project-name] [name]    show registered workflow definitions
    schedules                          show registered schedules
    disable <schedule-id>              disable a workflow schedule
    disable <project-name>             disable all workflow schedules in a proje                                                                                                                                                                ct
    disable <project-name> <name>      disable a workflow schedule
    enable <schedule-id>               enable a workflow schedule
    enable <project-name>              enable all workflow schedules in a projec                                                                                                                                                                t
    enable <project-name> <name>       enable a workflow schedule
    sessions                           show sessions for all workflows
    sessions <project-name>            show sessions for all workflows in a proj                                                                                                                                                                ect
    sessions <project-name> <name>     show sessions for a workflow
    session  <session-id>              show a single session
    attempts                           show attempts for all sessions
    attempts <session-id>              show attempts for a session
    attempt  <attempt-id>              show a single attempt
    tasks <attempt-id>                 show tasks of a session attempt
    delete <project-name>              delete a project
    secrets --project <project-name>   manage secrets
    version                            show client and server version

  Options:
    -L, --log PATH                   output log messages to a file (default: -)
    -l, --log-level LEVEL            log level (error, warn, info, debug or trac                                                                                                                                                                e)
    -X KEY=VALUE                     add a performance system config
    -c, --config PATH.properties     Configuration file (default: /home/centos/.                                                                                                                                                                config/digdag/config)

Use `<command> --help` to see detailed usage of a command.
$ digdag server -m
2017-11-05 15:50:58 +0000: Digdag v0.9.20
2017-11-05 15:51:00 +0000 [INFO] (main): secret encryption engine: disabled
2017-11-05 15:51:00 +0000 [INFO] (main): XNIO version 3.3.6.Final
2017-11-05 15:51:00 +0000 [INFO] (main): XNIO NIO Implementation Version 3.3.6.Final
2017-11-05 15:51:00 +0000 [INFO] (main): Starting server on 127.0.0.1:65432
2017-11-05 15:51:00 +0000 [INFO] (main): Bound on 127.0.0.1:65432 (api)

おお、動いた。 ・・・動いたけども? サーバモードで動かすと、このコンソールセッション開きっぱなしじゃないとだめっぽい?

なるほど。もう一台サーバ建てるかバックグラウンド起動とかにしないとだめかも。

というわけで、次回はバックグラウンドでdigdagを動作させるをやってみます。 すさまじく話が進まなくて自分でも衝撃的w