日々地道に成長

思いついたことを書いていきます。

【Embulk】Embulk実践トレーニング方法【基礎】

お疲れ様です。コーヒーです。

 

今回は「Embulkって何?」って人でも一から実践で使えるようになるまでのトレーニング方法となります。

レーニングの流れとしては以下のようになってます。

  1. ETLツールについて調べる
  2. Embulkのインストール
  3. Embulkの簡易実行
  4. Embulkサンプルプログラムの理解
  5. Embulkの基本的な使用
  6. Embulkのフィルター及びプラグインの理解

こちらの内容を全て完了するころには、Embulkをある程度使いこなせているはずです!

ぜひ最後まで挑戦してEmbulkをマスターしてください!

1.ETLツール、Embulkについて調べる

ETLツール、Embulkとは何かを調べなくては始まりません。

こちらの段階では自分なりにメモ等でよいので調べてみてください!

参考として、自分のブログの内容を載せておきますのでこちらも確認してみてください。

stady-diary.hatenablog.com

2.Embulkのインストール

自身の環境でEmbulkを使用できるようにインストールを行いましょう!

OSによりインストール方法に違いはありますが、手順に沿ってやってみましょう。

以下参考になります。

stady-diary.hatenablog.com

3.Embulkの簡易実行

インストールがおこなえたら、実際に動作がおこなえるかのテストも含めて実行してみましょう。

こちらの段階でエラー等がある場合はインストールの見直しやパスの確認をおこなってみてください。

以下参考になります。

stady-diary.hatenablog.com

4.Embulkサンプルプログラムの理解

3の時に使用したconfig.ymlファイルの内容を理解しましょう!

一つ一つのコードの理解をすることでより理解が深まります。

ついでにyml形式のファイルとはどういったものかも調べておくとよいです!

以下参考になります。

こちらの参考は公式ドキュメントのため英文ですが、翻訳しつつ中身を確認していくとよいでしょう!

www.embulk.org

5.Embulkの基本的な使用

ここからは実践としてMySQLに実際にデータを出力してみましょう。

実際にデータの出力を行ってみることで、使い方をマスターしていきましょう。

MySQLのインストール

まずはMySQLの環境整備からになります。

もしMySQLの環境が整っているならここはスキップしても問題ないです。

dev.mysql.com

MySQL Workbenchのインストール

こちらもインストールしておきましょう。

MySQLGUIで使用できるので直感的に操作でき、とても便利になります!

www.mysql.com

ローカルホストDBの設定

実際にローカルホストDBに接続しスキーマの作成をおこなってください。

スキーマ名はtest等分かりやすいものにしておくとよいかと思います。

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

Embulkにはプラグインがたくさんあります。

こちらを利用することで拡張性が高くより多くのことが出来るようになります。

今回はMySQLへのアウトプットプラグインを使用します。

github.com

インストールは以下のコマンドですぐにおこなえます。

embulk gem install embulk-output-mysql
config.ymlファイルの書き換え

quick startで使用したconfig.ymlファイルを書き換えてMySQLに出力できるようにしましょう。

書き換えが終わったら実際にembulkを実行しMySQL内でデータが確認できたら完了です。

書き換え後のconfig.ymlファイルは以下のようになります。

(まずは自分で書き換えてみてください)

in:
  type: file
  path_prefix: sample_
  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: mysql
  user: user_id
  password: password
  database: database
  host: localhost
  table: test
  mode: insert

6.Embulkのフィルター及びプラグインの理解

embulkには先ほどのプラグインの他にも様々なプラグインがあります。

また、フィルターと呼ばれるものありこちらを使用することでデータの加工もおこなえます。

以下サイトにまとまっていますので参考にしてみてください。

qiita.com

応用編として、先ほど作成したconfig.ymlファイルに現在時刻を追加するフィルターを新たに追加してMySQLに出力してみてください。

 

終わりに

ここから先はそれぞれの目的に合った使用方法を目指していきましょう。

慣れるとと簡単にETLがおこなえるEmbulk。ぜひ利用していきましょう!

 

お疲れ様でした。

最後までお読みいただきありがとうございます!