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

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

embulk 導入してみた

前回導入の経緯を書きましたが、今日は導入までのお話を書きます。

inui-beta.hatenablog.com

さて、ツールは決まりましたが、どこから手を付けてよいものか。 まずサーバですね。 これは諸事情で仮想環境のCentOSになりました。 正直、AWS上に構築したかったんですけど、ランニングコスト的な事情で。

構築の手順確認をAWSのEC2でやって、 本番の仮想環境に構築するみたいな感じでやってみました。 こういうのやるときAWS楽でいいですよね。

大まかな導入手順は以下のとおり。

  • 公式ドキュメント通りにやる

github.com

・・・。 まぁなんですかね。 だいたいマニュアル読めばなんとかなるってのが、僕の信条です。 ただ、あくまでクイックスタートなんで、結果入れなおしたりしましたけどね。

で、これだけだとリンク貼って終わりになっちゃうので、苦労話。

まず、EC2に入れないっていうねw それだけで30分くらい使ったと思う。

EC2ってデフォルトec2-userだと思ってたんですけど、違うんですね。 AmazonLinuxしか使ってなかったから知らなかった。

よくよく考えたら、Windowsは構築して運用したことあるから、ec2-userじゃないOSあるの知ってたんだけどね。

そのあと、yumで最新化して、手順通りにやったら、デフォルトユーザのホーム配下にできるという。 コマンドみりゃわかるんだからやめときゃいいのにそのまま打つのが浅はかですよね。 こういうところが"なんちゃって"w

あと、ドキュメントにJava入れてねって書いてあるのに一回Java入れずにembulkコマンド打ったしね。 確認を怠るなといういい教訓になりましたよ。

> sudo yum update
> sudo yum install java
> curl --create-dirs -o ~/.embulk/bin/embulk -L "https://dl.embulk.org/embulk-latest.jar"
> chmod +x ~/.embulk/bin/embulk
> echo 'export PATH="$HOME/.embulk/bin:$PATH"' >> ~/.bashrc
> source ~/.bashrc
> embulk 
Embulk v0.8.36
Usage: embulk [-vm-options] <command> [--options]
Commands:
   mkbundle   <directory>                             # create a new plugin bundle environment.
   bundle     [directory]                             # update a plugin bundle environment.
   run        <config.yml>                            # run a bulk load transaction.
   cleanup    <config.yml>                            # cleanup resume state.
   preview    <config.yml>                            # dry-run the bulk load without output and show preview.
   guess      <partial-config.yml> -o <output.yml>    # guess missing parameters to create a complete configuration file.
   gem        <install | list | help>                 # install a plugin or show installed plugins.
   new        <category> <name>                       # generates new plugin template
   migrate    <path>                                  # modify plugin code to use the latest Embulk plugin API
   example    [path]                                  # creates an example config file and csv file to try embulk.
   selfupdate [version]                               # upgrades embulk to the latest released version or to the specified version.

VM options:
   -E...                            Run an external script to configure environment variables in JVM
                                    (Operations not just setting envs are not recommended nor guaranteed.
                                     Expect side effects by running your external script at your own risk.)
   -J-O                             Disable JVM optimizations to speed up startup time (enabled by default if command is 'run')
   -J+O                             Enable JVM optimizations to speed up throughput
   -J...                            Set JVM options (use -J-help to see available options)
   -R...                            Set JRuby options (use -R--help to see available options)

Use `<command> --help` to see description of the commands.

はい、ここまでで導入完了。 では、次は連携を開始。。。する前に気になったこと。 これって、クーロンで実行するの?エラーってどうやってハンドリングすりゃええの?

そこで、ジョブ管理入れました。

digdagさん。

というわけで、次回は実行環境整備でございます。