WIP

embulkとは

created at 2017.02.07
updated at 8ヶ月前 ago
vsanna / public DataAnalysis

embulkとは

  • fluentdのバルク版
    • fluentdはログファイルやデータベースなどから、別のデータベースや分析ツールなどにデータを送るためのツール
    • fluentdはデーモンとして常時稼働し、データ元からデータ先へと随時データを移しているが、embulkはバルクでおくる。
      • 要は日次や、一回だけ、といった使い方でデータを纏めて移行させる
  • ref

使い方

  • 環境用意
    • $ brew install embulk
    • $ rbenv install jruby-xxx ... embulk動かそうとするとjrubyが必要
  • 主な流れ
    1. データソースを確保
      • ログファイルやデータベース
    2. embulk設定ファイルであるconfig.ymlを作成 / 生成する
      • seed.ymlにデータ元の情報を記述する
      • $ embulk guess seed.yml -o config.yml でconfig.ymlを自動生成
    3. $ embulk preview config.yml で流し込むデータを確認できる
    4. $ embulk run config.yml で実行

hello world

$ embulk example
# 自動生成
-- embulk-example/
   -- csv/
      -- sample_01.csv.gz
   -- seed.yml

# Run following subcommands to try embulk:

#   1. embulk guess embulk-example/seed.yml -o config.yml 
#   2. embulk preview config.yml
#   3. embulk run config.yml

# と言われるので、その通り試してみると大体流れがわかる。

pluginという拡張ツール

pluginとは

  • embulkではデータ元を読み込むためのplugin(input plugin) / 外に投げるためのプラグイン(output plugin) / embulk内において加工するためのplugin(filter plugin)などがある
  • たとえば、組み込みでcsvを読み込む機能がembulkには備わっているが、ActiveSupport::Loggerのログフォーマットのログファイルをそのままembulkに読み込ませられるようにしようと思ったら、parserとしてinput pluginを実装する必要がある
  • 大体のものは世の中の人が既に作っているのでまずはそれを探す

plugin開発手順

$ embulk new #{type} #{name}
# embulk new すると、様々なtypeの一覧が出てくる
# ruby製のparserを書くなら embulk new ruby-parser sample-hogehoge のように書く
# pluginのディレクトリが生成される(以後plugin-dirと記述)

$ cd #{plugin-dir}
$ bundle install

shareシェアする

forumコメント

まだコメントはありません!
ログインしてコメントを残す
{{comment.user.name}} on {{commentCreatedAt()}}

content_copy前後のイシュー

{{message}}