ETLとは~あらゆるデータファイルを理解してデータベース化する~|第7回 データクレンジング手法

AUTHOR :   ギックス

本記事は、株式会社ギックスの運営していた分析情報サイト graffe/グラーフ より移設されました(2019/7/1)

外部データファイルの特徴を理解して、データベースに取込めるインポートファイルを作成する

以前、データクレンジングの技法として、データファイルの取込み方について記載しましたが、今回は、このデータ取込技法が、「ETL」として、どのように行われているかを、各セクションに分けて解説します。

ETLとは

ETLについて、Wikipediaの記事を転記します。

Extract/Transform/Load(略称:ETL)とは、データウェアハウスにおける以下のような工程を指す。

  • Extract – 外部の情報源からデータを抽出
  • Transform – 抽出したデータをビジネスでの必要に応じて変換・加工
  • Load – 最終的ターゲット(すなわちデータウェアハウス)に変換・加工済みのデータをロード

ETLは、データウェアハウスにデータを実際にロードする方法として重要である。ETLという用語はデータウェアハウスでのデータのロードだけでなく、任意のデータベースでのロード工程を指すこともある。ETLはレガシーシステムとの統合にも使われる。通常のETL実装は、処理についての監査証跡を記録する。ほとんど全ての設計において、この監査証跡は、元のデータが利用不可能な場合にETLの結果を再現できるほどの細粒度のレベルにはなっていない。
出所:wikipedia

次に各セッションでどのように行われているかを解説します。

Extract – 抽出

「Extract」工程では、情報源となるシステムからデータを抽出することです。情報源とは、クライアントのシステム、または、データベース内の情報です。そのため、データ抽出の作業自体は、セキュリティー等の関係でクライアントにやっていただく事が多いです。データ分析担当者(社)は、クライアントに対し、必要な情報と、CSVファイル形式などのファイル形式を細かく指定します。
graffeサービスのデータ受領は、必要な情報の抽出の指定は行いますが、ファイル形式は問いません。次の「Transform」のセクションで扱えるデータであれば、幅広い範囲で対応できます。また、必要によっては、クライアントのデータ抽出作業をツール提供や技術提供でサポートを行っています。

Transform – 変換・加工

「Transform」工程では、情報源から抽出したデータを一定の規則にデータ加工し、データベースに取込める形式にします。前の「Extract」工程でCSVファイルなどのデータベースと相性が良いデータ形式でファイルが作られている場合は、ほとんど「Transform」工程の作業はありません。そのためには、データ抽出元が表形式のデータ、かつ、「Extract」工程の担当者が「Load」工程でデータベースの取込先のテーブルレイアウトを把握している必要があります。しかし、「Extract」工程と「Transform」工程の担当者(社)が異なる場合は、「Transform」工程で様々な分析・加工を行う必要があり、3つのセクションで最もコストが掛かります。
graffeサービスでは、CSVファイルやExcelファイルなどの表形式のデータ以外に、システムログや文章ドキュメント、固定長電文などもデータベースに取込みます。また、システムログなどは、1つのログの中に複数の異なる情報が混じっているため、1つのデータファイルから、複数のテーブルのデータファイルに変換します。

Load – データをロード

「Load」工程では、「Transform」工程で作成したデータファイルをデータウェアハウスといわれる、データベースの情報を蓄積する場所にデータ取込(インポート)します。殆どの場合、データ取込処理は、各種データベースが持っているインポート命令を使います。これは、データベースのSQL命令の行追加(INSERT)命令に比べ高速であるため、大量データのデータ取込に適切なためです。
インポート命令は、ORACLEなどの有償のデータベース製品では、SQL Loaderなどの優れたインポート命令があるため、幅広いデータファイルを処理できます。しかし、Postgre SQLやMy SQLなどには、高機能なインポート命令はなく、テーブルレイアウトに合わせデータファイルのレイアウト、UTF-8などの文字コードを変える必要があります。
graffeサービスでは、「Load」工程でデータファイルを直接データウェアハウスに登録しません。一度、取込専用のテーブルに登録し、SQL命令を使用したクレンジングを行い、データウェアハウスに登録します。これによって「Transform」工程の負担を軽減し、取込専用のテーブル内でデータを確認してデータウェアハウスに登録することでミスを少なくしています。

ELT処理

最近ではデータベース環境の大容量・高速化によって、Transform(変換・加工)とLoad(データロード)の手順を逆転させたELT処理(Extract/Load/Transform)の需要が多くなってきています。ELT処理はデータベースの中でSQL命令を使って変換・加工処理を行うことができるため、比較的処理が容易になるなど多くのメリットがあります。(参考:ETL処理とELT処理の違い ~ビッグデータ処理の新トレンド~)
【連載記事リスト】
1. データクレンジングとは
2. データベースに取込める形にデータファイルを加工
3. データベースのデータ型を変える
4. 扱いやすい単位にデータ加工
5. 管理情報を追加してテーブルを統合
6. ミスを少なくするために登録形式を統一する
7. ETLとは~あらゆるデータファイルを理解してデータベース化する~

SERVICE