ETLとは~今さら聞けない!? ETLの基礎~

今回のテーマはこのブログのタイトルでもある「ETL」です。ETLという言葉自体は一般化してきているので、なんとなく「こんなものだろう」とわかっている方も多いと思います。
ですが、ETLの成り立ちや背景も踏まえた上で言葉の意味を説明できる!という方は意外と少ないのではないでしょうか?
そこで今回は、知っているようで知らないETLについてお伝えしていきたいと思います!
ETLとは?

ETLとは
Extract(抽出)
Transform(変換)
Load(格納)
の略で、データ統合時に発生する各プロセスの頭文字をとったものです。
概念としては古く、1970年代ごろから提唱され始めましたが、現在では主にビジネス・インテリジェンス(BI)のために作成されるDWHを構築する時に発生するプロセスとして認知されています。
ETLのプロセスは、旧来はいわゆるスクラッチ開発で実装されていましたが1990年台後半頃から、新たなアプローチとしてETLツールが世に出回り始めました。
現在ではフリーで使えるオープンソースからエンタープライズ向けまでさまざまなETLツールが世に出回っています。
#オープンソースと商用のメリット/デメリットをまとめた記事はこちら
ETLツールが求められる理由
では、ETLツールはなぜ求められるようになったのでしょうか?
企業が社内に点在する情報(データ)を有効活用し、経営に役立つ洞察を得るためには、必要な情報(データ)を1箇所に集約し蓄積する必要があります。
情報を蓄積するためのプログラムは、情報元となるデータソースの種類が多くなれば多くなるほど
各データソースに応じてプログラミングするための専門的な知識が求められ、膨大な開発工数を必要とし、大きな障壁となります。
その障壁を取り払うための有効な手段として注目されたのがETLツールです。
ETLツールを利用することで、データソース毎に求められた高度な専門知識をツール側で吸収することができ開発時の障壁を取り払うことに大きく寄与しました。
また、ほとんどのETLツールには、直感的に開発が行えるインターフェース(GUI)が装備され開発工数の削減に大きな効果を発揮したのです。
ETLツールが抱える課題:処理性能は二の次?
さまざまなデータソースとの接続性が拡張され、ETLツールの利便性が向上していくなか、実は課題もありました。それは、「多くのETLツールは処理性能に関する機能拡張がほとんど行われてこなかった」ということです。
周知の通り、ビッグデータが普及し従来のビジネスでは活用していなかったようなデータも広く取り込み分析の対象とすることが普通になってきています。
しかし、限られた時間内に大量のデータを加工変換し、データウェアハウスに連携しなければならないとなった時、ETLツール単体では対応しきれないケースが出てきたのです。
その結果...
処理のパフォーマンスを上げるために、高いコストを支払い、マシンリソース、ライセンスの拡張を行う
集計や結合といったマシンリソースを必要とする処理をDBに行わせ
その結果を更にETLツールでDWHに連携するCPUリソースを効率的に利用するために、明示的に処理を分割し多重実行を行うようにチューニングを行う
上記のように、最適とは決して言い難い手段を使わざるを得なくなっていきました。
DWH環境の理想と現実

理想的なDHW環境:
データ統合のための処理がETLレイヤーで完結

DWH環境を取り巻く現実:
ETLレイヤーで処理をまかないきれず、さまざまなレイヤーで処理が組まれ複雑化
データ連携における課題を解決するために導入されたETLツールが逆に足かせとなってしまい、複雑なシステムを抱える要因になってしまうなんとも恐ろしい状況...
処理性能と向き合い、大容量のデータ処理に対応したETLツールは存在しないのでしょうか?
解決策:「最も賢い超高速ETLツール」という選択肢
処理性能の機能拡張とひたすら向き合うETLツール、それが「Precisely Connect」です。キャッチコピーは、最も賢い超高速ETLツール。
最も賢くて超高速な3つの理由を、一般的なETLツールとの比較も交えながらご紹介していきます。
その1:ステップツリー形式による簡単な開発画面
一般的なETLツールでは、真っ白い画面にフローチャートを描いていくイメージで、数多くある中から利用する機能を呼び出して設定していくスタイルとなります。
好きなように設計ができるため自由度が高い反面、
各機能を一から呼び出す必要がある
どのように組んだらよいかわからないケースも
プログラム品質が開発者の経験値に左右されやすい
など、ある程度のプログラム経験が無いと品質にばらつきがでる恐れがあります。
Precisely Connectの処理開発画面は、必要な機能がテンプレート化されているため、開発者のスキルに左右されず誰が作っても同じクオリティを担保できます。

例えば、「結合」処理を作成したい場合、Precisely Connectではあらかじめ用意されている「結合」用の処理パターンを選択し、あとはステップに沿って結合元のテーブル、出力定義、データ加工定義を選択するだけで処理開発が行えます。
実際に、とある製造業のお客様では、開発画面がテンプレート化されていることによりメンバー全員が処理開発を行えるようになったという事例もあります。属人化せず、全員が同じ品質を保つことができたため、他手段では考えられない生産性を発揮しました。
その2:スマートETLオプティマイザによる処理の自動チューニング
一般的なETLツールは、処理開発時に利用する機能と、内部的に利用される処理アルゴリズムが相関しています。
仮に、チューニング目的で内部的に利用されている処理プログラムを変更しようとすると別機能を使った再開発や設定変更が必要となりそれらはチューニングコストとなって跳ね返ってきます。
一方で、Precisely Connectの場合は処理の実行時にスマートETLオプティマイザという独自機構が動作します。
処理対象の入力データソースや、稼働マシンのスペック情報を自動取得しそれらの情報をもとに処理アルゴリズムが動的に決定され、処理が動作するというものです。
開発者は、自身で考慮する必要があった処理のパフォーマンスツール側に任せて本来実装したかったビジネスロジックに集中することができる、というメリットがあります。
「スマートETLオプティマイザ」は、他のETLツールにはないConnect独自の機構です。
このスマートETLオプティマイザにより従来のETLツールでは課題となりがちなメンテナンス性や処理パフォーマンスの課題をPrecisely Connectは簡単に解決することができます。
今回はETLについてのおさらいと、数あるETLツールの中でも優れた操作性と処理エンジンを持つPrecisely Connectを紹介させていただきました。
Precisely Connectをもっと知りたい!と思われた方は、ぜひこちらの資料をご覧ください。
Precisely Connectについて詳しく知りたい方は製品サイトをご覧ください!
ETLにまつわる他の記事
※図版2点の出典:
Syncsort社ホワイトペーパー「DMExpress テクノロジー解説」「Syncsort DMX-h テクノロジー解説」
ページトップへ戻る
この記事を書いたスタッフ
佐藤 弘樹
佐藤 弘樹
関連記事
この記事のハッシュタグ #Precisely Connect #Hadoop #ETL #パフォーマンスチューニング から関連する記事を表示しています。
