ヘッダーをスキップ
Oracle Warehouse Builderユーザーズ・ガイド
11gリリース1(11.1)
E05734-03
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

15 データ変換

データの変換は、抽出、変換およびロード(ETL)ツールの主要な機能の1つです。この章では、Warehouse Builderを使用したデータ変換の概要について説明します。

この章の内容は次のとおりです。

Warehouse Builderでのデータ変換について

ソース・データをインポートしてターゲットを定義した後で、ソース・データをターゲットに必要な出力に変換する方法を検討します。Warehouse Builderでは、マッピング・エディタでマッピングを設計し、データの変換方法を指定します。マッピングはWarehouse Builderのエンティティで、ソースからデータを抽出して変換し、1つ以上のターゲットにロードする一連の操作が記述されています。

マッピングを設計する際の基本単位は演算子です。マッピングで実行する各操作を演算子で記述します。操作の順序を指定するには、マッピングにデータ・フロー接続を接続します。

マッピングでデータ変換を指定するには、事前作成済の多くの変換演算子から演算子を選択するか、新しい変換演算子を設計します。事前作成済の変換演算子を使用する場合、フィルタ処理、結合、ソートなど、よく実行する操作を実行できます。Warehouse Builderには、データのマージ、クレンジング、プロファイリングなどの複雑な操作のための事前作成済の演算子も用意されています。

事前作成済の変換演算子の中に要件を満たす演算子がない場合、新しい演算子を設計できます。PL/SQLファンクション、プロシージャ、パッケージ・ファンクションおよびパッケージ・プロシージャのOracleデータベース・ライブラリに基づいて新しい変換演算子を作成できます。

抽出およびロードの操作は、数多くのソースおよびターゲットの演算子によって表されます。表演算子は表を表し、フラット・ファイル演算子はフラット・ファイルを表します。その演算子が抽出とロードのどちらの操作を示すかは、マッピングにおいてその演算子を他の演算子とどのように結合するかによって決まります。

重要な点は、マッピング内の演算子とそれが表すオブジェクトの相違です。演算子とオブジェクトは、2つをバインドするまでは別個のエンティティです。たとえば、表演算子をマッピングに追加すると、その演算子をリポジトリの特定の表にバインドできます。演算子を表にバインドすると、2つの定義の変更を同期化できます。表演算子がターゲットを表している場合、マッピング内の演算子を変更すると、これらの変更をリポジトリ内の表に反映できます。演算子がメタデータ定義の変更元であるソースを表している場合、デザイン・センターに表を再インポートすると、マッピング・エディタで表演算子に対する変更を伝播できます。

マッピングについて

マッピングとはデータをソースから抽出し、変換してターゲットにロードする一連の操作を表します。これによりデータ・フローおよびデータで実行される操作がビジュアル表示されます。マッピングをWarehouse Builderで設計する場合は、マッピング・エディタ・インタフェースを使用します。

または、Oracle Warehouse Builder APIおよびスクリプト・リファレンスの説明に従って、Warehouse Builderのスクリプト・インタフェースであるOMB Plusを使用してマッピングを作成および定義することもできます。

マッピングで定義したETLロジックに基づいて、Warehouse Builderにより設計の実装に必要なコードが生成されます。Warehouse Builderでは次の言語のコードを生成できます。

演算子について

マッピングの基本となる設計要素は演算子です。演算子を使用して、データ・フローでソースおよびターゲットを表現します。また、演算子を使用して、ソースからターゲットへのデータの変換方法を定義することもできます。ソースとして選択する演算子は、マッピングの設計方法に影響を与えます。Warehouse Builderでは、選択された演算子に基づいて、次のいずれかのマッピング生成言語にマッピングが割り当てられます。

各コード言語では、マッピングを設計する際、特定のルールに従う必要があります。

演算子のタイプ

マッピングを設計するときは、マッピング・エディタ・パレットから演算子を選択し、キャンバスにドラッグできます。

ここでは、演算子のタイプを紹介し、演算子についてこのマニュアルに記載されている詳細な情報の参照先(章)を示します。

Oracleソース/ターゲット演算子

リレーショナル・データベース・オブジェクトおよびフラット・ファイルオブジェクトを表すには、ソース演算子およびターゲット演算子を使用します。

表15-1に、ソース演算子とターゲット演算子のアルファベット順のリストと簡単な説明を示します。

表15-1 ソース演算子とターゲット演算子

アイコン 演算子 説明
説明は画像の前後のテキストにあります。

定数演算子

1つの出力グループが作成されます。このグループには、1つ以上の定数属性を指定できます。

説明は画像の前後のテキストにあります。

オブジェクト演算子の構成

オブジェクト・タイプおよびコレクション・タイプを作成します。

説明は画像の前後のテキストにあります。

キューブ演算子

定義済のキューブを表します。

説明は画像の前後のテキストにあります。

データ・ジェネレータ演算子

レコード番号、システムの日付、順序の値などの情報を表示します。

説明は画像の前後のテキストにあります。

ディメンション演算子

定義済のディメンションを表します。

説明は画像の前後のテキストにあります。

オブジェクト演算子の拡張

オブジェクト・タイプを構成する個々の属性を取得するために、オブジェクト・タイプを拡張します。

説明は画像の前後のテキストにあります。

外部表演算子

定義済またはインポート済の外部表を表します。

説明は画像の前後のテキストにあります。

フラット・ファイル演算子

定義済またはインポート済のフラット・ファイルを表します。

説明は画像の前後のテキストにあります。

マテリアライズド・ビュー演算子

定義済のマテリアライズド・ビューを表します。

説明は画像の前後のテキストにあります。

順序演算子

1行ごとに増分する連続番号を生成します。

説明は画像の前後のテキストにあります。

表演算子

定義済またはインポート済の表を表します。

説明は画像の前後のテキストにあります。

可変長配列イテレータ演算子

表タイプで値を反復します。

説明は画像の前後のテキストにあります。

ビュー演算子

定義済またはインポート済のビューを表します。


データ・フロー演算子

マッピングのデータを変換するには、データ・フロー演算子を使用します。

表15-2に、各データ・フロー演算子のアルファベット順のリストと簡単な説明を示します。変換演算子の詳細は、「データ・フロー演算子」を参照してください。

表15-2 データ・フロー演算子

アイコン 演算子 説明
説明は画像の前後のテキストにあります。

アグリゲータ演算子

SUMやAVGなどのデータ集計を実行し、集計されたデータを使用して行セットを出力します。

説明は画像の前後のテキストにあります。

Anydataキャスト演算子

Sys.AnyDataタイプのオブジェクトを主タイプまたはユーザー定義タイプに変換します。

説明は画像の前後のテキストにあります。

デュプリケータ解除演算子

マッピングで生成されたSELECTコードにDISTINCT句を挿入して、ソース内の重複するデータを削除します。

説明は画像の前後のテキストにあります。

式演算子

この演算子の1つの出力パラメータについて、非プロシージャ・アルゴリズムを定義するSQL式を記述できます。式では、入力パラメータ名、変数名およびライブラリ・ファンクションの組合せを使用できます。

説明は画像の前後のテキストにあります。

フィルタ演算子

行セットの行を特定の条件に基づいてフィルタリングします。

説明は画像の前後のテキストにあります。

ジョイナ演算子

カーディナリティの異なる複数のソースから取り込んだ複数の行セットを結合し、1つの出力行セットを生成します。

説明は画像の前後のテキストにあります。

キー参照演算子

表、ビュー、キューブ、ディメンションなどの参照オブジェクトからデータを参照します。

説明は画像の前後のテキストにあります。

Match-Merge演算子

データ品質に関する演算子で、一致するレコードを識別して単一のレコードにマージします。

説明は画像の前後のテキストにあります。

Name and Address演算子

Name and Addressソース・データのエラーや不整合を識別して修正します。

説明は画像の前後のテキストにあります。

ピボット演算子

複数の属性の単一行を複数の行に変換します。複数の行ではなく、複数の属性間に含まれるデータを変換する場合に、この演算子を使用します。

説明は画像の前後のテキストにあります。

集合演算演算子

マッピングで、UNION、UNION ALL、INTERSECTおよびMINUSの演算を実行します。

説明は画像の前後のテキストにあります。

ソーター演算子

属性を昇順または降順にソートします。

説明は画像の前後のテキストにあります。

スプリッタ演算子

ブール分割条件を使用して、単一の入力行セットを複数の出力行セットに分割します。

説明は画像の前後のテキストにあります。

テーブル・ファンクション演算子

カスタム・コードを開発して入力行セットを操作し、カーディナリティが同じまたは異なる、物理表のように問合せ可能な出力行セットを戻すことができます。

テーブル・ファンクション演算子をターゲットとして使用できます。

説明は画像の前後のテキストにあります。

変換演算子

PL/SQLファンクションまたはプロシージャを使用して、行セット内の行の属性値データを変換します。

説明は画像の前後のテキストにあります。

アンピボット演算子

複数の入力行を1つの出力行に変換します。これにより、ソース・データ内の属性ごとにグループ化されているソース行セットからソースをいったん抽出し、そこから単一の行を作成できます。


事前/事後処理演算子

マッピングの実行前または後に処理を実行するには、事前/事後処理演算子を使用します。マッピングに対する値を指定するには、マッピング・パラメータ演算子を使用します。

表15-3に、事前/事後処理演算子とマッピング・パラメータ演算子を示します。

表15-3 事前/事後処理演算子

アイコン 演算子 説明
説明は画像の前後のテキストにあります。

マッピング入力パラメータ演算子

パラメータ値をマッピングに渡します。

説明は画像の前後のテキストにあります。

マッピング出力パラメータ演算子

マッピングの外部に値を渡します。

説明は画像の前後のテキストにあります。

マッピング後プロセス演算子

マッピングを実行した後に、ファンクションまたはプロシージャをコールします。

説明は画像の前後のテキストにあります。

マッピング前プロセス演算子

マッピングを実行する前に、ファンクションまたはプロシージャをコールします。


プラッガブル・マッピング演算子

プラッガブル・マッピング演算子は、マッピング演算子の再利用可能なグループで、単一の演算子として機能します。

表15-4に、プラッガブル・マッピング演算子を示します。

表15-4 プラッガブル・マッピング演算子

アイコン 演算子 説明
説明は画像の前後のテキストにあります。

プラッガブル・マッピング演算子

再利用可能なマッピングを表します。

説明は画像の前後のテキストにあります。

プラッガブル・マッピング入力シグネチャ演算子

プラッガブル・マッピングにフローする入力属性の組合せです。

説明は画像の前後のテキストにあります。

プラッガブル・マッピング出力シグネチャ演算子

プラッガブル・マッピングからフローする出力属性の組合せです。


変換について

変換とは、データの変換を可能にするPL/SQLファンクション、プロシージャ、パッケージおよびタイプです。変換は、ETLプロセスを定義するマッピングとプロセス・フローを設計する場合に使用します。

変換は、Warehouse Builderワークスペースに格納され、定義したプロジェクトで使用できます。

変換パッケージの配布はパッケージ・レベルで行われますが、実行は変換レベルです。

変換のタイプ

Warehouse Builderでの変換は、次のように分類できます。

次の各項では、これらのタイプの変換について詳細に説明します。

事前定義済変換

Warehouse Builderには、標準的な変換操作を実行できる一連の事前定義済変換が用意されています。事前定義済変換は、組込みおよびシードされたファンクションとプロシージャで構成されているOracleライブラリに含まれています。データの変換には、これらの事前定義済変換を直接使用できます。Oracleライブラリの詳細は、「変換ライブラリのタイプ」を参照してください。

事前定義済変換は、次のカテゴリに編成されています。

  • 管理

  • 文字

  • コントロール・センター

  • 変換

  • 日付

  • 数値

  • OLAP

  • その他

  • SYS

  • 空間

  • ストリーム

  • XML

各カテゴリに属する変換の詳細は、「Oracle Warehouse Builderの変換」を参照してください。

カスタム変換

カスタム変換はユーザーが作成する変換です。カスタム変換では、定義の一部に事前定義済変換を使用できます。

カスタム変換には、次のカテゴリが含まれます。

  • ファンクション: ファンクション・カテゴリにはスタンドアロン、ファンクションが含まれます。このカテゴリはグローバル・エクスプローラにある「パブリック変換」ノードの「カスタム」ノードで使用可能です。また、これはプロジェクト・エクスプローラにあるすべてのOracleモジュールの「変換」ノードに自動的に作成されます。

    ファンクションはユーザーが定義するか、データベースからインポートできます。ファンクション変換の入力パラメータは0からnで、結果値が生成されます。

  • プロシージャ: プロシージャ・カテゴリには、変換に使用されたあらゆるスタンドアロンのプロシージャが含まれます。このカテゴリは、グローバル・エクスプローラにある「パブリック変換」ノードの「カスタム」ノードで使用可能です。また、グローバル・エクスプローラの各Oracleモジュールの「変換」ノードでも自動的に作成されます。

    プロシージャはユーザーが定義するか、データベースからインポートできます。プロシージャ変換の入力パラメータは0からnで、0からnの出力パラメータが生成されます。

  • パッケージ: パッケージ・カテゴリにはパッケージが含まれており、パッケージはファンクション、プロシージャおよびPL/SQL型を含みます。このカテゴリは、グローバル・エクスプローラの「パブリック変換」ノードの「カスタム」ノードで使用可能です。また、グローバル・エクスプローラの各Oracleモジュールの「変換」ノードでも自動的に作成されます。

    PL/SQLパッケージは、Warehouse Builderで作成するか、Warehouse Builderにインポートすることができます。パッケージ本体は変更可能です。ファンクションまたはプロシージャのシグネチャとなるパッケージ・ヘッダーは変更できません。

  • PL/SQLタイプ: PL/SQLタイプ・カテゴリには、あらゆるスタンドアロンのPL/SQLタイプが含まれています。たとえば、PL/SQLレコード・タイプ、REFカーソル・タイプ、ネストした表のタイプなどです。PL/SQLタイプ・カテゴリは、プロジェクト・エクスプローラの「変換」ノードにある「パッケージ」ノードを使用して定義した各パッケージに自動的に作成されます。また、グローバル・エクスプローラのパス(「パブリック変換」→「カスタム」→「パッケージ」)に定義した各パッケージの下にもあります。

手順の詳細は、「カスタム変換の定義」を参照してください。

前述のカテゴリに加えて、PL/SQLパッケージもインポートできます。インポートしたパッケージのパッケージ本体は変更できますが、ファンクションまたはプロシージャのシグネチャとなるパッケージ・ヘッダーは変更できません。詳細は、「PL/SQLのインポート」を参照してください。

変換ライブラリについて

変換ライブラリは、再利用可能な一連の変換で構成されています。リポジトリを作成するたびに、Warehouse Builderでは、該当するプロジェクトに対する変換操作を含む変換ライブラリが作成されます。このライブラリには、標準的なOracleライブラリ、およびプロジェクト内で定義された各Oracleモジュールの追加ライブラリが含まれます。

変換ライブラリは、デザイン・センターにある「グローバル・エクスプローラ」の「パブリック変換」ノードの下にあります。

変換ライブラリのタイプ

変換ライブラリは、次のように分類できます。

  • Oracleライブラリ

    事前定義済のファンクションの集まりで、このライブラリからグローバル共有ライブラリのプロシージャを定義できます。Oracleライブラリはグローバル・エクスプローラに含まれます。「パブリック変換」ノードの下の「事前定義済」ノードを開きます。事前定義済変換の各カテゴリは、個別のノードとして表されます。カテゴリのノードを開いて、そのカテゴリの事前定義済変換を表示します。たとえば、「文字」ノードを開いて、Oracleライブラリに格納されている事前定義済の文字変換を表示します。

  • グローバル共有ライブラリ

    ユーザーが作成した再利用可能な変換の集合です。これらの変換は、ワークスペース内に定義されたファンクション、プロシージャおよびパッケージとして分類されます。

    グローバル共有ライブラリ内の変換は、「パブリック変換」ノードの「カスタム」ノードにあります。このノードに作成したすべての変換は、ワークスペース内のすべてのプロジェクトで使用できます。グローバル共有ライブラリに変換を作成する方法の詳細は、「カスタム変換の定義」を参照してください。

    グローバル共有ライブラリに定義した変換を配布すると、その変換は、デフォルトのコントロール・センターに関連付けられたロケーションに配布されます。

変換ライブラリへのアクセス

変換はETLプロセスの様々な場所で使用できるため、Warehouse Builderを使用すると、デザイン・センターの様々な場所から変換ライブラリにアクセスできます。

変換ライブラリには、次の方法でアクセスできます。

  • 式ビルダー

    マッピングを作成するときは、ソース・データを変換する式の作成が必要になる場合があります。式ビルダー・インタフェースを使用すると、データの変換に必要な式を作成できます。式には変換を含めることができるため、Warehouse Builderを使用して、式ビルダーから変換ライブラリにアクセスできます。

    変換ライブラリは、式ビルダーの「変換」タブで使用できます。TRANSFORMLIBSの下にある「プライベート」ノードには、現行のプロジェクトのみで使用できる変換が含まれます。これらの変換は、Oracleモジュールの「変換」ノードの下に作成されます。「パブリック」ノードには、グローバル共有ライブラリのカスタム変換、およびOracleライブラリの事前定義済変換が含まれます。

  • 「変換演算子の追加」ダイアログ・ボックス

    マッピング・エディタの変換演算子を使用すると、Oracleライブラリとグローバル共有ライブラリの両方の変換をマッピングに追加できます。この演算子は、マッピングの一部としてデータを変換する場合に使用できます。

  • ファンクションの作成ウィザード、プロシージャの作成ウィザード、「ファンクションの編集」ダイアログ・ボックスまたは「プロシージャの編集」ダイアログ・ボックス

    これらのウィザードの実装ページ、またはこれらのエディタの「実装」タブを使用すると、ファンクション本体またはプロシージャ本体の一部となるPL/SQLコードを指定できます。PL/SQLコードで変換を使用できます。