この章では、データ・ウェアハウス環境でのデータの抽出、転送、変換およびロード・プロセスについて説明します。内容は次のとおりです。
データ・ウェアハウスの目的はビジネス分析ですが、そのためには、定期的にデータをウェアハウスにロードする必要があります。このロードを行うには、1つ以上の業務系システムからデータを抽出し、データ・ウェアハウスにコピーする必要があります。データ・ウェアハウス環境では、多数のシステムにわたる大量のデータを統合、再配置および連結し、結果として、統一された新たな情報ベースをビジネス・インテリジェンスに提供することが課題になります。
ソース・システムからデータを抽出し、データ・ウェアハウスに取り込むプロセスは、一般的にETLと呼ばれます。これは、抽出(Extraction)、変換(Transformation)およびロード(Loading)の略です。ETLは1つの広範囲なプロセスであり、明確に定義された3つのステップの組合せではありません。ETLという略語は簡略すぎるように見えます。これでは、転送フェーズが示されておらず、他の3つのフェーズがそれぞれ独立しているかのような印象を受けます。いずれにせよ、このプロセス全体はETLとして知られています。
ETLの方法論およびタスクは以前から周知されており、必ずしもデータ・ウェアハウス環境に固有ではありません。あらゆる企業において、様々な独自のアプリケーションやデータベース・システムが、ITのバックボーンとなっています。データをアプリケーション間やシステム間で共有し、統合し、少なくとも2つのアプリケーションに同じ情報が表示されるようにする必要があります。データの共有のほとんどは、ETLのようなメカニズムで対処されています。
ETLプロセス中に発生する処理を考えてみます。このプロセスで主に発生する処理には、次のタスクがあります。
抽出中には、必要なデータが識別され、データベース・システムやアプリケーションなど、多数の異なるソースから抽出されます。通常、必要なデータの特定のサブセットは識別できないため、必要以上のデータを抽出する必要があり、関連データの識別は後の時点で行われます。ソース・システムの機能(オペレーティング・システムのリソースなど)によっては、この抽出プロセス中になんらかの変換が行われる場合もあります。抽出されるデータのサイズは、ソース・システムとビジネス状況に応じて数百KB〜数GBになります。これは、2つの(論理的に)同一の抽出処理間の時間デルタにもあてはまります。タイム・スパンは、日数/時間数、分数やほぼリアルタイムまで様々です。たとえば、Webサーバーのログ・ファイルは、きわめて短期間のうちに数百MBにまで大きくなることがあります。
データの抽出後は、それをターゲット・システムまたは中間システムに物理的に転送し、さらに処理する必要があります。選択した転送方法によっては、このプロセス中にもなんらかの変換を行うことができます。たとえば、ゲートウェイを通じてリモート・ターゲットに直接アクセスするSQL文では、SELECT
文の中で2つの列を連結できます。
この項では、スケーラビリティに重点を置いた例を示します。Oracle Databaseを長く使用していれば、PL/SQLによる複雑なデータ変換ロジックのプログラミングについてはエキスパートであると言えます。ここでは、このような多数のデータ操作の代替手段を提案し、Oracleの新しいSQL機能、特にETLとパラレル問合せインフラストラクチャを活用する実装に重点を置いて説明します。
ETLプロセスの設計およびメンテナンスは、データ・ウェアハウス・プロジェクトで最も困難でリソースを大量に必要とする部分だと考えられています。多数のデータ・ウェアハウス・プロジェクトでは、このプロセスを管理するためにETLツールが使用されます。たとえば、Oracle Warehouse BuilderにはETL機能が搭載されており、本来のデータベース機能を活用できます。他のデータ・ウェアハウス・ビルダーもありますが、これらは独自のETLツールおよびプロセスをデータベース内またはデータベース外に作成します。
ETLをデータ・ウェアハウスの日常操作および今後の強化のサポートの一部として順調に実装するには、抽出、変換およびロードのサポートの他にも重要なタスクがあります。通常、これらのタスクは、データ・ウェアハウス設計およびデータ・フロー設計のサポートとともに、Oracle Warehouse BuilderなどのETLツールで取り扱われます。
OracleはETLツールではなく、ETLの完全なソリューションを提供するものでもありません。ただし、Oracleには、ETLツールとカスタマイズされたETLソリューションの両方で使用できる豊富な機能が搭載されています。Oracleは、Oracleデータベース間でデータを転送し、大量のデータを変換し、新しいデータをデータ・ウェアハウスに迅速にロードするための技術を提供します。