はじめに
Yellowfin でデータを可視化する際、分析用のデータベースを構築することが望まれます。データウェアハウス (DWH) のように、データ分析に適したスキーマのデータがあれば、可視化しやすいだけでなく、パフォーマンス向上にもつながります。
DWH をはじめとする分析データベースにロードするデータスキーマを作成するために、どのようなアプローチが考えられるでしょう。最も一般的なのが、ETL ツールを活用することだと思います。あるいは、近年は ELT というアプローチも一般化してきています。
ETL
ETL は データを Extract (抽出)、Transformation (変換)、Load (書き出し) することを意味します。
業務システムなどのデータソースからデータを抽出し、ETL ツールと呼ばれる仕組みでデータを加工し、DWH に書き出します。DWH にデータを格納する前に、必要なデータの加工を済ませてしまうのが特徴で、イメージ的には以下の通りです。
ETL ツールは世の中で数あまた販売されています。国産のツールも多く、国産のものとしては Asteria Warp や Waha! Transformer、国外企業のものとしては Informatica や DataStage、クラウドサービスとしては AWS Glue や Azure Data Factory などが一例として挙げられます。
ELT
一方の ELT は、データをExtract (抽出)、Load (書き出し)、Transformation (変換) します。
データソースから抽出するデータを、まずは DWH に書き出してしまい、その後 DWH 上でデータを変換して、分析に適したスキーマに作り替えます。イメージ的には以下の通りです。
ETL と ELT の比較
それぞれの特徴を踏まえて、機能を比較します。
ETL の特徴 |
---|
複雑な分析や加工を施して DWH にデータを書き出すことに優れている |
セキュリティ担保の目的で、データを修正・削除する場合に必要な機能を備えている。そのため、GDPR や CCPA のようなコンプライアンス対応に、ETL が必須とされる場面もある |
GUI で操作できる範囲が多く、またデータのフローが把握しやすい GUI を備えている |
規定で備わった関数を利用できる |
各 ETL ツールの扱いを学ぶ必要性がある |
ELT の特徴 |
---|
大量のデータを取り扱うために、DWH の処理能力を活用することができる |
DWH に必要なデータをロードする容量と処理性能を担保する必要がある |
データベースに実装された SQL 言語やストアドプロシージャなど、一般的に普及する技術を活用してデータを処理できる |
データベース種類によっては、非構造化や半構造化データを取り扱うことができる |
ストアドプロシージャにプログラミング言語を使用できる場合、再帰的な構造のデータ処理にも対応できる |
近年ではクラウドにデータを一元的に集約し、DWH を構築する傾向が強まっています。そのため、ELT を選択する場面が増えてきているようにも思います。
最後に
おじさん世代に対して ELT という単語を口にすると、5 割以上の確率で「持田香織?」という反応が返ってきます。その度「いやいや、ELT (Every Little Thing) にはいっくん (伊藤一朗) もいまっせ」、「いやいやいや、そうでもなくて、ELTとは Extract Load Transfer の略です」というやり取りをしなければいけません。
このようなやり取りをしなくても良いように、ELT が世の中に普及する日も遠くないと思っています。
何はともあれ、皆様良いデータ分析を!
参考情報