このレッスンでは、データを抽出、データを変換、およびデータをデータウェアハウスにロードするために、既存の Data Manager ビルドをカスタマイズする方法を学習します。
レッスン 1.1 では、データ表に新規属性を追加して、Rational® ClearQuest® データ構成ファイルを変更しました。ここでこうした属性をビルド・ストリームに入れて、レポートで公開できるようにする必要があります。
このレッスンでは、Data Manager ビルドを変更して、新規属性がデータ収集プロセスに入れられるようにします。学習するのは、既存のビルドをカスタマイズして、新規属性を抽出、変換、データウェアハウスに配信する方法です。
ETL カタログの準備- IBM® Cognos® Data
Manager を開始します。
- 「新規カタログの作成」を選択し、名前を RationalInsightETL と指定し、このレッスンを始める前に新しく作成した空データベースの接続情報を指定し、「終了」をクリックします。
- 新規カタログが作成され、開いたら、をクリックし、OOTBDMCatalog.ctg ファイルを選択します。このファイルのデフォルトの場所は [rational_insight_installation_directory]/datamgr/insight_catalog/ ディレクトリーです。
データ・ソースから新規属性を抽出- フォルダーを展開します。「CQ_ENT_Defect」をクリックします。
注: Data Manager では、ETL はファクト・ビルドまたは次元ビルド中に指定
されます。ファクト・ビルドは、ファクト・データを配信し、次元データの配信も行えるので、
単一のビルド内から専用データマートを作成することができます。次元ビルドは、
製品や顧客など単一のビジネス次元を説明するデータを配信
します。Rational Insight はファクト・ビルドを使用して、データを統合運用データ・ストアにロードします。
ファクト・ビルドおよび次元ビルドは、
データマートまたはスター・スキーマを作成するのに使用されます。これらのビルドは、Data Manager で順次または並列に実行できる一連の
ステップとして編成され、ジョブ・ストリームに入れられています。
- 「RI_Stg」データ・ソース・アイコン
をダブルクリックします。「クエリー」タブをクリックします。注: ビルドのデータ・ソース・エレメントを使用することによって、
ビルドに必要なデータベースのサブセットを選択することができます。
レッスン 1.1 では、ClearQuest 障害エンティティーを変更して、関連するコンポーネント ID 属性および状況属性が公開されるようにしました。次の数ステップでは、
それらの新規属性を組み込むようにデータ・ソース・クエリーを変更します。
- 「ClearQuest」ノードを展開して、データベース・スキーマ (XML Data Configuration を通じてその内部にリソース・グループとしてモデル化されています) をリストします。CQEnterprise スキーマを展開して、レッスン 1.1 でデータ構成ファイルから CQEnterprise リソース・グループ内に定義されたすべてのデータ表をリストします。ENTDefect 表を
展開して、定義されたすべての列を表示します。
次に、既存 SQL を Component_dbid 列と Status 列を取得するように変更します。列名を分離するためにコンマを
追加するようにしてください。
- ENTDefect の Status 列と Component_dbid 列を左のパネル
から右の「SQL クエリー」パネルにドラッグします。これらの新規列を既存の「href」エントリーの後に
置きます。列がコンマで区切られていることを確認してください。
- 新規 SQL ステートメントをテストするため、ウィンドウの左下にあるをクリックします。
変数を指定するウィンドウで、$RESOURCEGROUP エントリーのスキーマ名 (CQEnterprise) を入力します。$MODIFIED_SINCE フィールド
は空のままにして、データ・サービスがヌル値を使用してすべてのレコードを戻すようにします。
- 「結果列」タブをクリックし、「リフレッシュ」をクリックします。
変数を指定するウィンドウで、$RESOURCEGROUP エントリーのスキーマ名 (CQEnterprise) を入力します。$MODIFIED_SINCE フィールド
は空のままにして、データ・サービスがヌル値を使用してすべてのレコードを戻すようにします。このタブに
定義された列は、ステップ 7 で定義された SQL からの結果列です。
これらの列は下流のオブジェクトで使用されます。「OK」をクリックします。
- 「データ・ストリーム」を右クリックして「プロパティー」を選択します。
「データ・ストリーム項目」タブで、新規列をデータ・ストリームに追加するため、左パネルでそれらの列を
ダブルクリックし、「OK」をクリックします。
注: データ・ストリーム・オブジェクトは、ビルドまたは参照構造のデータ取得源であるすべてのデータ・ソース
を一緒に集めます。これは、さまざまなデータ・ソースを結合して 1 つのオブジェクトに
する 1 つの方法です。その例は、RequisitePro® ビルドに見られます。
これで、1 つの新規列をカタログに追加し、
この変更を反映するよう変換モデルを更新しました。
次に、component_dbid 属性を、データウェアハウス内のコンポーネントの代理キーに変換
します。
属性の変換- 「変換モデル」アイコン
を右クリックし、マッピング・ウィンドウを開きます。注: 変換モデルは、ファクト・ビルドの
中核です。これを使用して、取得したソース・データに対して、
さまざまなソースからのデータのマージやデータの集約など、
さまざまな操作を実行できます。このレッスンでは、ビジネス・ルールを適用することなく、新しい属性を
ロードします。
- Status データ・ストリームをダブルクリックします。
注: 変換モデルに新規属性を作成して、このデータ・ストリーム項目をその属性にマップします。
- 「追加」をクリックし、「次元」を
クリックします。名前を Lookup_Component と指定し、
「(参照なし)」下位ノードを選択します。このノードの
右にあるボタンをクリックします。
- ノードを選択し、「OK」をクリックします。
- マッピング・ウィンドウに戻ります。左パネルで Component_dbid データ・ストリーム項目を選択し、右パネルで Lookup_Component=>EXTERNAL_KEY1 属性を
選択し、「マップ」をクリックします。
注: 次の数ステップで、データウェアハウス内の障害エンティティーとコンポーネント・エンティティーとの間の関係を構築します。EXTERNAL_KEY1 は、コンポーネントの自然キー (Rational ClearQuestでは dbid) を指定します。ルックアップは、
コンポーネントがデータウェアハウス内にあれば、代理キーを戻します。
レコードが存在しない場合、ビルドは「情報なし」を表すデフォルトの -1 エントリーを
挿入します。
- 「追加」ボタンをクリックし、「属性」をクリックします。
名前を COMPONENT_ID と指定し、「OK」を 2 回クリックします。
- 「変換モデル」アイコン
を右クリックし、「ビルド・エレメントの表示」を選択します。
Lookup_Component を
ダブルクリックし、「不一致メンバー」タブをクリックし、「不一致メンバー ID を
受け入れる」を選択してから「OK」をクリックします。
- 「変換モデル」タブで COMPONENT_ID 属性を
右クリックし、「導出に変換」をクリックします。
- 「変換モデル」タブで COMPONENT_ID 属性をダブルクリックし、「計算」タブをクリックして、以下のコードを入力します。
If NOT Unmatched( Lookup_Component )
then RETURN Lookup_Component.COMPONENT_ID ;
else RETURN -1;
「OK」をクリックします。
注: このタイプの条件で肯定的一致を指定するために、スクリプト内で二重否定構造が使用されています。
ターゲット表への属性の配信- "{$ODS}"."REQUEST" 表配信をダブルクリックします。
- 「表プロパティー」タブで、
Status エレメントと COMPONENT_ID エレメントの列名を STATUS および COMPONENT_ID と
指定します。「列を表に自動的に追加する」チェック・ボックスを選択します。「OK」をクリックします。
注: 新規属性を保管するために列を組み込むようデータウェアハウス内の障害表を変更していないため、
「列を表に自動的に追加する」オプションをチェックすると、
列が存在しない場合は表が変更されます。Rational Data Architect を使用すると、ETL ジョブの実行前に表を変更することも、ETL ジョブが表を変更した後でデータウェアハウスからデータ・モデルを更新することもできます。
- カタログを保存します。
これで、既存のビルドの変更が完了しました。