Embulkの環境構築

目次

Embulkとは

ファイルやデータベースからデータを吸い出し、別のストレージやデータベースにロードするためのコンパクトなツールです。

  • プラグインアーキテクチャ
  • 高速な並列・分散処理
  • 設定ファイルの推測と提案
  • リトライとリジューム
  • オープンソース

Embulkを使う手順

環境構築

EmbulkはJavaの環境が必要となりますので、もしJavaの環境が整っていないかたはJavaのインストールが必要となります。

  • Javaをインストール
  • Embulkをインストール

使い方

  • 必要となるプラグインをインストール
  • seed.ymlを作成
  • guessコマンドで設定ファイル(config.yml)を生成
  • config.ymlを編集
  • previewコマンドで確認
  • runコマンドで実行

環境構築

Javaのインストール

$ sudo yum install java-1.8.0-openjdk

embulkのインストール

$ curl --create-dirs -o ~/.embulk/bin/embulk -L "http://dl.embulk.org/embulk-latest.jar"
$ chmod +x ~/.embulk/bin/embulk
$ export PATH="$HOME/.embulk/bin:$PATH"
$ source ~/.bashrc
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

使い方

Embulkの基本的な使い方としてはプラグインアーキテクチャなので、用途に応じたプラグインをインストールして使っていくことになります。
インプットとアウトプットについて記載した最低限の設定ファイル(seed.yml)を作成して、
guessコマンドによってそのseed.ymlからスキーマを推定し、実行に使う設定ファイルを生成します。

プラグイン

プラグインに関してはQiitaの記事によくまとまっておりますのでリンクを張っておきます。
Embulk(エンバルク)プラグインのまとめ

プラグインのインストール

$ embulk gem install プラグイン名

サンプル

Embulkにはexampleというコマンドがあり、サンプル的に流れを確認できるものがあるので、
それを使って今回は説明していきます。
まずはemapleコマンドで環境をつくります。

$ embulk example ./try1

コマンドを実行するとtry1のディレクトリができその中には
csvディレクトリとseed.ymlが生成されます。
csvディレクトリにはインプットデータのもととなるsample_01.csv.gzが格納されています。

seed.ymlはこのようになっています。
実際にはここを最初に自分で作っていく必要があります。

in:
  type: file
  path_prefix: './try1/csv/sample_'
out:
  type: stdout

次にguessコマンドで設定ファイルを作成します。

$ embulk guess ./try1/seed.yml -o ./try1/config.yml

config.ymlの中身は下の通りです。

in:
  type: file
  path_prefix: ./try1/csv/sample_
  decoders:
  - {type: gzip}
  parser:
    charset: UTF-8
    newline: LF
    type: csv
    delimiter: ','
    quote: '"'
    escape: '"'
    null_string: 'NULL'
    trim_if_not_quoted: false
    skip_header_lines: 1
    allow_extra_columns: false
    allow_optional_columns: false
    columns:
    - {name: id, type: long}
    - {name: account, type: long}
    - {name: time, type: timestamp, format: '%Y-%m-%d %H:%M:%S'}
    - {name: purchase, type: timestamp, format: '%Y%m%d'}
    - {name: comment, type: string}
out: {type: stdout}

guessコマンドによってファイルの中身からカラムなどの情報を推定して設定ファイルを作成してくれることがわかるかと思います。

注意するべき点としては、時間のカラムについてはtimestampになるので、
用途に応じて、自分でtypeを変更する必要があります。

次に、previewコマンドを使用して、意図通りのデータが出てくるかどうかを事前に確認することができます。

$ embulk preview config.yml

そこで問題がないようであれば、実行します。

$ embulk run config.yml

これで、基本的なembulkの使い方は以上になります。
MySQLやOracleなど他の例については追々、あげていきたいと思います。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次