ETLとは?
必要性や手順、課題とデータ仮想化について
ETLは、Extract(抽出)、Transform(変換)、Load(ロード)の3つのプロセスで構成され、データウェアハウス構築に不可欠な技術です。基幹システム、Webサイトのアクセスログなど会社のデータを、一つの場所に集めて整理し、分析しやすい形に変換します。
ETLとは?
ETL (Extract=抽出, Transform=変換, Load=ロード) は、複数のソースからデータを抽出し、標準化をして、分析用のデータウェアハウスや、保存用のデータベース、またはその他のタイプのデータソースに格納するデータ統合プロセスです。ETLは、さまざまな言語で複数のシステムに分散しているデータのフォーマットを統一します。これにより、データ分析が容易になります。
今日、企業は膨大な量のデータを自由に利用できるようになっています。しかし、一方で多くの企業はデータの多様性と量に頭を悩ませています。多くの企業が、ソースシステムからデータを抽出し、共通言語に変換し、他のシステムに格納し、データの完全なビューを得て、それを分析するという一連のプロセスの実現に苦労しているのです。そこでETLの出番です。さまざまなシステムからデータを抽出、変換、ロードすることでデータの効率的な活用を支援し、企業のビジネスインテリジェンス活用を促進させるのです。
ETLには、さまざまな分野で数多くのユースケースがあります。その1つが顧客データからの価値創出です。自社ブランドと顧客はさまざまな形で関わりを持ちます。ETLは、さまざまなソースからこれらすべての顧客データを抽出し、標準フォーマットに則ってデータを変換し、分析用にデータウェアハウスや他のデータソースにロードします。同じ記述言語で同じ場所にあるデータを簡単に分析できるようになれば、顧客と自社ブランドとの関わりを360度ビューで正確に把握できるようになります。そして、企業は顧客のニーズを理解し、高度にパーソナライズされた体験を提供できるようになります。
なぜ企業にETLが必要なのか?
データは、企業にとって最大の資産の一つです。有用なデータのほとんどは構造化されておらず、複数のソースに散らばっています。そのため企業は、ETLでデータを収集、標準化し、一カ所で分析できるようにETLを用いたデータ統合が必要なのです。ETLは、企業全体に容易かつ一様のデータアクセスを提供します。標準化されたデータがあれば、企業は情報に基づいた優れた意思決定が可能であり、優れたビジネスインテリジェンスに繋がるのです。今日の世界では、例え一つのデータであっても収益性に大きな違いをもたらす可能性があります。データの力を活用したい企業は、ETLの導入を検討すべきでしょう。
ETLの手順
ETLは、その名の通り、Extract(抽出)、Transform(変換)Load(ロード)の3つのステップを踏みます。
ステップ1:データの抽出(Extract)
抽出は、複数のソースからデータを収集するプロセスです。これらのソースには、以下のようなものがあります。
- CRM
- ソーシャルメディアやその他のオンラインソース
- レガシーデータベースやストレージ
- セールス&マーケティング用のアプリケーション
- 顧客取引データ
- ERP
- IoTデバイスからのセンサーデータ
データ抽出は、以下の3つの方法で行われることが多いです。
変更通知に基づく抽出
データソースの中には、データに変更があった場合にETLシステムに通知を行うものがあります。ETLシステムは新しいデータだけを抽出すれば済みます。最も簡単な方法ですが、多くのデータソースは通知を提供しません。
インクリメンタル抽出
データソースによっては、データ変更に関する通知を提供できない場合があります。しかし、どのデータが変更されたかを特定し、記録しておくことはできます。ETLシステムは、データソースを定期的にチェックし、データに変更がないかどうかを確認する必要があります。この方法は変更されたデータの部分を増分的に抽出するものです。インクリメンタル抽出は、通知ベースの抽出よりも複雑です。
全抽出
一部のソースによっては、データの変更を識別するためのメカニズムがない場合があります。このようなソースを扱う場合、ETLはソースからデータを全抽出する必要があります。ETLは、新しいコピーと比較できるように、最後に抽出したデータのコピーを保持する必要があります。全抽出では、毎回データセット全体をコピーする必要があるため、他のどの方法よりも大量のデータ転送が必要となります。また、ETLシステムの負荷も高くなります。
構造化データと非構造化データ
ソースデータは、構造化されている場合とされていない場合があります。構造化されたデータは、すぐに抽出できる状態になっています。非構造化データは、抽出に適した状態にするためにいくつかの準備が必要になります。これには、データのクレンジング、例えば空白や絵文字の削除などが含まれます。
ステップ2:データの変換(Transform)
さまざまなソースから抽出されたデータは、異なる構造や特性を持っている可能性があります。変換ステップでは、このような多様なデータを標準化するために、いくつかの手法を適用します。企業では、データを変換する際にビジネスルールを適用することがよくあります。変換に関わるサブプロセスは以下のとおりです。
標準化
さまざまなソースから抽出されたデータのフォーマットは、大きく異なる可能性があります。標準化によって、データを共通フォーマットに揃えます。たとえば、ローデータのすべてのゼロは、”NULL”に変換されるといったことです。
クレンジング
ソーシャルメディアや電子メールなどからのデータには、関連性のない情報が含まれている可能性があります。一般的に、データは不整合があり、値が欠落している可能性があります。クレンジングは、データのノイズを取り除き、欠落している値や不整合を修正するために実行されます。
重複排除
ソースからの生データには、反復や冗長な情報が含まれている可能性があります。重複排除は、このような冗長性をすべて取り除きます。
フォーマットの修正
あるフォーマットを企業標準に基づいた別のフォーマットに変換・統一するプロセスです。変換対象には、測定単位、日時、文字セットなどが含まれます。
検証
このステップでは、データの整合性をチェックします。このステップでは、ETLシステムがデータの異常を検知し、フラグを立てます。
その他、変換には、データ集計、キーと値のリレーションシップの構築、データの分割、フィルタリングなどの高度なデータベース操作も含まれます。
ステップ3:データのロード(Load)
ETL の最終ステップでは、変換されたデータをデータウェアハウスまたは別のデータソースにロードします。ロードには、主に二つの方法があります。
フルロード
フルロードでは、「変換」で準備したすべてのデータを、単一のバッチとしてデータウェアハウスにロードします。フルロードには長い時間がかかりますが、インクリメンタルロードに比べてシンプルです。フルロードでは、データウェアハウス内のデータ量が指数関数的に増加し、管理が困難になる可能性があります。
インクリメンタルロード
インクリメンタルロードでは前回のロードからの変化を探します。そして、新しいデータが見つかった場合のみ、新しいデータレコードが作成されます。フルロードと比較すると、インクリメンタルロードは管理しやすいのが特長です。しかし、システム障害が発生した場合、データの不整合につながる可能性があります。
企業はデータをどのように利用したいかによって「ロード」戦略を選択することができます。ロードされたデータは、それぞれ異なる要件で利用される場合があります。以下はその一例です。
- アナリティクスまたはビジネスインテリジェンスレイヤーを構築する
- 検索可能なデータベースとしてデータを使用する
- 機械学習アルゴリズムのトレーニングセットとして使用する
- データに基づいたアラートシステムを構築する
データ転送先(データウェアハウスなど)の特性も考慮する必要があります。データ転送先の速度、容量、データインターフェースは、処理に影響を与える可能性があります。
ETLツールの種類
企業は、要件に応じてさまざまなタイプの ETL ツールを使用します。データの処理内容に基づいてETLの種類を選択します。
ハンドコーディング
一部の企業は、特定のETLツールを使用しないことを選択します。その代わりに、ハンドコーディング(手作業によるコーディング)という方法をとります。ハンドコーディングでは、ETLワークフローを実行するためのカスタムスクリプトを記述します。ハンドコーディングにおいて管理および標準化は困難です。
バッチ処理ツール
これらのツールは、日常業務に支障をきたさないように、営業時間外にデータを一括して処理します。リアルタイムのETL機能を必要としない企業では、バッチ処理ツールで対応できるでしょう。
オープンソースツール
いくつかのオープンソースのETLツールがオンラインで入手できます。これは、商用ETLツールの低コストな代替手段です。しかし、オープンソース版を使用すること場合、ETLツールの運用と保守体制を整えないといけません。オープンソース版にはサポートがほとんどない場合もあるからです。
クラウドベースツール
ETLのインフラストラクチャを購入する余裕がない場合、サービスとしてのETLプラットフォームを探すことができます。多くの企業がクラウド上でETLサービスを提供しており、フルサポート、簡単な統合、および拡張性を保証しています。
リアルタイムツール
上記で説明したツールのほとんどは、非リアルタイムで動作します。リアルタイムETLシステムは、連続的なデータ処理により、複数のソースからデータを抽出し、ウェアハウスに保存します。このタイプのETLツールは、ストリームデータ、またはIoTのユースケースにおけるセンサーデータ処理に役立ちます。
ETLのメリット
データ統合による優れた意思決定
多くの場合、企業は分散したデータソースの取り扱いに苦慮しています。それぞれのソースのデータは量やフォーマットそして複雑性が異なる場合があります。ETLはこれらのデータを標準化し、単一ビューを提供します。これにより企業はデータを迅速に取得し、分析することができます。そして、より優れた、より迅速な意思決定が行えるようになるのです。
コンテキスト化による洞察獲得
多くの企業では、レガシーのデータストレージシステムに過去のデータを保存しています。ETLは、レガシーシステムからデータを抽出し、現在のデータと統合することができます。これにより、企業は長期的なトレンドを認識するためのコンテキストを得ることができます。コンテキスト化を行い、データ同士の繋がりが明確化されることで、企業は有用な洞察を導きだし、ビジネスインテリジェンスを強化することができます。
生産性の向上
ETLは、容易なデータアクセスを提供することで、従業員の生産性を向上させます。例えばETLにより、データを移行するためのカスタムスクリプトの記述負担が軽減されます。その結果として生産性向上に繋がります。データが容易に利用できるようになれば、従業員は、従業員は十分な情報に基づいた意思決定を行うことができ、分析により多くの時間を費やし、価値の低いタスクに費やす時間を減らすことができます。
ETL導入における考慮点と対応方法
膨大な量のデータ
ETLシステムは、多くの場合、特定のデータ量に対応するように設計されています。一方で、今日、企業のデータは急速に増加しています。ETLシステムは、増加するデータ量に対応できない可能性があります。
対応策:ETLワークフロー、ツールを導入する際、スケーラビリティについて考える必要があります。拡張性のあるソリューションを選択することに加えてフルロードを避ける必要があります。重要なデータを特定し、そうでないデータはすべて避ける必要があります。並列データ処理についても検討する必要があるでしょう。
データフォーマットの変更
企業は、データフォーマットの性質を考慮する必要があります。外部ソースからのデータは同じフォーマットであるとは限りません。ETLは多様性に対応できるものである必要があります。
対応策:フォーマットの変更に対応するためには、「変換」の前段階からデータをクレンジングすることが重要です。ETLシステムは、新しいフォーマットを識別し、変換ツールに警告することができなければなりません。また、ETLにおける変換プロセスは、ハードコードされたルールに基づくのではなく、柔軟であるべきです。
密結合
ETLは、多くのコンポーネントとサブシステムからなる複雑なシステムです。これらのコンポーネントはそれぞれ、拡張性、機能性、柔軟性を備えている必要があります。多くの場合、企業はこれらの各コンポーネントに類似した技術やシステムを使用する傾向があります。そして、企業がETLワークフローを実装する時、すべての構成要素に同様のソリューションを適用する傾向があります。その結果、密結合で柔軟性に欠けるシステムができあがってしまうのです。
対応策:ETLシステム内の各コンポーネントは、独立したコンポーネントとして考える必要があります。企業は、ETLの各ステップにおいて適切なツールを選択する必要があります。これらのコンポーネントは、それぞれ高度に専門化されたソリューションを必要とする場合があります。ETLコンポーネントを切り離すことで、企業はシステム全体を最初から再構築することなく、どの部分も修正または変更することができます。
ETLの課題と次世代のデータ統合手法「データ仮想化」
ここまで、ETLについて説明してきましたが、従来のETLでは以下のような問題を抱えています。
- 追加のデータソースや異なるデータマートの要件に迅速に対応できない
- バッチ処理の遅延リスクやリアルタイムデータへの対応が困難
- データコピーによるストレージの圧迫や管理負担およびデータの漏洩リスク
これらの問題は企業の生産性や競争力低下に直結する可能性があります。これらの課題を解消する次世代の統合手法が「データ仮想化」です。データ仮想化はデータをコピーせずに論理的に疎結合化することで、従来のETLでは困難だったアジャイルなデータ統合を実現します。GUIの設定でデータマートを構築でき、配信されるデータは常に最新であるため、ETLに比べて圧倒的な速さでデータを配信すること可能です。
SoR/SoEの点から、ETLと併用して利用されるケースも多くあります。NTTコム オンラインではデータ統合のグローバルリーダーであるTIBCOのデータ仮想化ソリューションを提供しています。データ仮想化についてより詳細な情報をご希望の場合はこちらのページをご覧ください。
関連製品
-
TIBCO
Data Virtualization日々変化するビジネス要求に応じるため、散在するあらゆるデータを複製することなく仮想的に統合し、ビジネスで活用できるデータに変換して提供するデータ統合ソリューション詳しく見る