はじめに

データの高速処理に長けたDWH(データウェアハウス)へと統合、連携したBIツールでデータの可視化を行うというデータ分析基盤の構築にあたってキーワードになるのが「ETL」です。

初めてデータ分析を行うという方はまずはETLについて書かれたこちらをご覧になるとEmbulkについての理解が深まります。

このETLを行うには大きく分けて3つのやり方があり、

  1. 各サービスのデータをcsvなどの形式でダウンロードし、転送先のサービスに手動でアップロード
  2. 各サービスや各DWHのAPIを利用して自分でETL環境を構築
  3. ETL用のフレームワークやサービスを利用

そのうち、今回はETL用のフレームワークからEmbulkについて解説します。

データ分析基盤の構築を検討している方はぜひご覧ください。

Embulkとは?

Embulkはトレジャーデータ株式会社が提供するオープンソースのETLツールで、Embulkそのものが各サービスの転送を標準でサポートするのではなく、ニーズに応じて転送元・転送先用のプラグインを導入することでETLを行います。EmbulkはWindowsの他、MacOS、Linuxにも対応していますが、いずれもコマンドライン上で動作するCLIツールです。

Embulk ETLツール
出典:Sadayuki Furuhashi、「Embulk, an open-source plugin-based parallel bulk data loader」より

Embulkの使い方

EmbulkはオープンソースのツールなのでGithub上にコードがあります。またインプット用、アウトプット用のプラグインも他のユーザーが開発したものがこちらから利用可能です。

Embulkを導入し、必要なプラグインをインストールしたら、どのようなETLを行うかYAML形式のファイルに記述していきます。

YAMLについては今回は割愛しますが、簡単に言うとHTMLやXMLのように構造をテキストで表現するための記法です。Embulkは複雑なコーディングやAPIの利用を必要としない代わりにYAML形式のファイルをETLの設定用に記述することでそれに従ってデータの転送を行います。

Embulkの活用と課題

Embulkはオープンソースのソフトウェアであるため導入コストは無料(タダ)です。また既に述べた通り既存のプラグイン活用・YAML形式のファイルを記述するだけで転送が可能という点が特徴です。またdigdagのようなワークフローエンジンと組み合わせることで一度構築したデータパイプライン(生データがETLを経て活用されるまでのデータの流れ)を自動で運用することが可能です。

一方、Embulkの課題として、コマンドライン上で動作するツールであるためエンジニアリングについての知識が皆無の人にとっては導入段階からハードルが高いです。

EmbulkはYAML形式のファイルを記述するだけでデータ転送が可能ですが、裏を返すとそのYAML形式のファイルに設定を全て記述する必要があるため、単純なデータの全件転送ならともかく検索条件と組み合わせたフィルター転送や、データの転送と同時にデータの加工を行うなどの複雑なETLはエンジニアであってもややハードルが高いです。

加えて、仮にEmbulkを用いたETL環境が構築できたとしてもデータの転送元、転送先のサービスの仕様変更などで転送エラーが発生することがあります。このような仕様変更によりこれまで利用していたプラグインが使えなくなるなど、場合によっては自分では解決のしようがないエラーに直面する可能性もあり、ETL環境の運用保守には大きなコストがかかります。

Embulkを活用したETL SaaS

弊社ではSaaS版のEmbulkとも言うべきデータ分析基盤構築サービスtrocco®を提供しています。

trocco®は内部のエンジンとしてEmbulkを採用しており、GUIを用いた直感的な転送設定、フルマネージドのインフラ保守運用、その他ETL機能だけでなくワークフロー機能、メタデータを活用したデータマネジメント機能など、単に扱いやすくなったEmublkサービスではなく、ETLを含むデータ分析基盤の構築・運用をトータルにサポートする強力なツールとなっています。

データ分析基盤構築サービスtrocco

これまで見たようにEmbulkの導入は非エンジニアはもちろん、複雑なETLであればエンジニアであってもやや難度が高いのが現状です。ETLツールを導入したいけどEmbulkの利用は難しい、というようなケースではこのようなSaaS型のETLツールを利用するのもひとつの手かもしれません。

まとめ

ETLツールのEmbulkについて、その使い方と課題についてざっくり解説しました。

データ分析、およびデータ分析の際のETLの重要度はますます高まっていきます。Embulkのようなオープンソースのツールであれば導入コストが無料(タダ)でETLが可能です、ぜひEmbulkの活用を検討してみましょう。

Embulkの導入も困難だけどデータ分析基盤を構築してみたい、という方は先述のSaaS型のETLツールの利用が有効です。

弊社のデータ分析基盤構築サービスtrocco®は無料のトライアルも実施していますので、ETLツール検討の際はぜひお申し込みください。

https://trocco.io/lp/index.html

データ分析基盤構築サービスtrocco
hirokazu.kobayashi

慶應義塾大学卒業後、2014年より株式会社リブセンスへ入社。データエンジニアとして同社分析基盤立ち上げをリードする。2017年より現職primeNumberに入社。自社プロダクト「systemN」におけるSpark/Redshift活用等のデータエンジニアリング業務を行うかたわら、データ統合業務における工数削減が課題だと感じ、データ統合を自動化するサービス「trocco®」を立ち上げる。