232
DataStage Enterprise MVS Edition メインフレーム メインフレーム メインフレーム メインフレーム ジョブ チュートリア ジョブ チュートリア ジョブ チュートリア ジョブ チュートリア Version 7.0 August 2003 Part No. 00D-028DS70

Datastage_8Mainframe Job Tutorial

Embed Size (px)

Citation preview

Page 1: Datastage_8Mainframe Job Tutorial

DataStage Enterprise MVS Edition

メ インフレーム メ インフレーム メ インフレーム メ インフレーム ジ ョブ チュート リアジ ョブ チュート リアジ ョブ チュート リアジ ョブ チュート リアルルルル

Version 7.0August 2003Part No. 00D-028DS70

Page 2: Datastage_8Mainframe Job Tutorial

出版 : Ascential Software Corporation

2000-2003 Ascential Software Corporation. All rights reserved.Ascential、DataStage、および MetaStageはAscential Software Corporationまたはその提携先の商標であり、ほかの司法管区で登録されていることがあります。 その他のマークは、 そのマークの所有者の財産です。

通知

この製品は、 以前に Ascential Software Corporation が提供したユーザドキュ メン トに服する、 あるいはユーザドキュ メン トに含まれているサードパーティ コンポーネン ト を含んでいる、 あるいは利用しているこ とがあ り ます。

Page 3: Datastage_8Mainframe Job Tutorial

目次

はじめにはじめにはじめにはじめに

DataStage メ インフレーム ジ ョブ チュート リ アルによ う こそ ......................... ix始める前に ...................................................................................................x本書の構成 ..................................................................................................xi文書の表記法 ............................................................................................. xiiユーザーインタフェースの表記 .................................................................. xiiiDataStage ドキュ メ ン ト .............................................................................. xiv

第 1 章 DataStage メインフレームジョ ブの概要第 1 章 DataStage メインフレームジョ ブの概要第 1 章 DataStage メインフレームジョ ブの概要第 1 章 DataStage メインフレームジョ ブの概要

DataStage の概要 ....................................................................................... 1-1

サーバーコンポーネン ト ..................................................................... 1-1

ク ラ イアン ト コンポーネン ト .............................................................. 1-2

プロジェク ト ..................................................................................... 1-3

ジ ョブ ............................................................................................... 1-3

ステージ ............................................................................................ 1-5

開始 ........................................................................................................ 1-6

DataStage Enterprise MVS Edition の用語と コンセプ ト .................................. 1-7

第 2 章 DataStage の管理第 2 章 DataStage の管理第 2 章 DataStage の管理第 2 章 DataStage の管理

DataStage アド ミ ニス ト レータ ................................................................... 2-1

Exercise1 : プロジェク トデフォル ト を設定する .......................................... 2-1

DataStage アド ミ ニス ト レータを起動する ............................................. 2-2

デフォルト ジ ョブプロパティを設定する .............................................. 2-4

ま とめ ..................................................................................................... 2-6

第 3 章 テーブル定義のインポート第 3 章 テーブル定義のインポート第 3 章 テーブル定義のインポート第 3 章 テーブル定義のインポート

DataStage マネージャ ................................................................................ 3-1

DataStage マネージャを起動する .......................................................... 3-2

DataStage マネージャウ ィンド ウ .......................................................... 3-3

Exercise2 : メ インフレームテーブル定義をインポートする .......................... 3-5

目次 iii

Page 4: Datastage_8Mainframe Job Tutorial

CDF ファ イルをインポートする .......................................................... 3-5

DCLGen ファ イルをインポートする ..................................................... 3-9

ま とめ ....................................................................................................3-10

第 4 章 メインフレームジョブの設計第 4 章 メインフレームジョブの設計第 4 章 メインフレームジョブの設計第 4 章 メインフレームジョブの設計

DataStage デザイナ ................................................................................... 4-2

DataStage デザイナを起動する ............................................................. 4-2

DataStage デザイナウ ィ ンド ウ ............................................................. 4-4

Exercise3 : デザイナオプシ ョ ンを指定する ................................................ 4-9

Exercise4 : メ インフレームジ ョブを作成する ............................................4-12

ジ ョブを設計する ..............................................................................4-12

ステージ名を変更する .......................................................................4-14

ジ ョブステージを構成する .................................................................4-15

コードを生成する ..............................................................................4-23

ま とめ ....................................................................................................4-25

第 5 章 制約条件と仕様の定義第 5 章 制約条件と仕様の定義第 5 章 制約条件と仕様の定義第 5 章 制約条件と仕様の定義

Exercise5 : 制約条件を定義する ................................................................. 5-1

ジ ョブを定義する ............................................................................... 5-1

出力条件を指定する ........................................................................... 5-4

リ ジェク ト リ ンクを定義する .............................................................. 5-7

リ ンク実行順序を指定する .................................................................. 5-8

Exercise6 : ステージ変数を指定する .......................................................... 5-9

ステージ変数を指定する ..................................................................... 5-9

仕様を作成する .................................................................................5-11

出力リ ンクに列を挿入する .................................................................5-12

ターゲッ ト ステージを構成する ..........................................................5-12

Exercise7 : ジ ョブパラ メータを定義する ...................................................5-13

ジ ョブパラ メータを指定する .............................................................5-13

制約条件の修正 .................................................................................5-15

ま とめ ....................................................................................................5-16

第 6 章 シンプルフラッ ト ファイルの処理第 6 章 シンプルフラッ ト ファイルの処理第 6 章 シンプルフラッ ト ファイルの処理第 6 章 シンプルフラッ ト ファイルの処理

シンプルフラ ッ ト ファ イルステージの種類 ................................................ 6-2

固定幅フラ ッ ト ファ イルステージ ........................................................ 6-2

区切り文字付きフラ ッ ト ファ イルステージ ........................................... 6-2

iv Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 5: Datastage_8Mainframe Job Tutorial

DB2 ロード レディ フラ ッ ト ファ イルステージ ....................................... 6-3

Exercise 8: 区切り文字付きフラ ッ ト ファ イルソースデータを読み取る .......... 6-3

ジ ョブを作成する ............................................................................... 6-3

区切り文字付きフラ ッ ト ファ イルソースステージを設定する ................ 6-4

ト ランスフォーマステージを設定する ................................................. 6-8

固定幅フラ ッ ト ファ イルターゲッ ト ステージを設定する ....................... 6-9

Exercise 9: データを DB2 ロードレディ ファ イルに書き込む ........................6-10

Exercise 10: FTP ステージを使用する ........................................................6-14

ま とめ ....................................................................................................6-17

第 7 章 コンプレックスフラッ ト ファイルの処理第 7 章 コンプレックスフラッ ト ファイルの処理第 7 章 コンプレックスフラッ ト ファイルの処理第 7 章 コンプレックスフラッ ト ファイルの処理

コンプレッ クスフラ ッ ト ファ イルステージの種類 ....................................... 7-2

コンプレッ クスフラ ッ ト ファ イルステージ ........................................... 7-2

マルチフォーマッ ト フラ ッ ト ファ イルステージ .................................... 7-3

Exercise 11: コンプレッ クスフラ ッ ト ファ イルステージを使用する .............. 7-3

ジ ョブを作成する ............................................................................... 7-3

コンプレッ クスフラ ッ ト ファ イルソースステージを設定する ................ 7-4

区切り文字付きフラ ッ ト ファ イルターゲッ ト ステージを設定する .......... 7-6

Exercise 12: 配列をフラ ッ ト化する ............................................................ 7-8

Exercise 13: OCCURS DEPENDING ON 句を処理する ..................................7-10

Exercise 14: マルチフォーマッ ト フラ ッ ト ファ イルステージを使用する .......7-14

レコード定義をインポートする ..........................................................7-14

ジ ョブを作成する ..............................................................................7-15

ソースステージを設定する .................................................................7-16

ト ランスフォーマステージと ターゲッ ト ステージを設定する ...............7-19

Exercise 15: マルチフォーマッ ト レコード タイプをマージする ....................7-20

ま とめ ....................................................................................................7-22

第 8 章 IMS データの処理第 8 章 IMS データの処理第 8 章 IMS データの処理第 8 章 IMS データの処理

Exercise 16: IMS 定義をインポートする ...................................................... 8-1

Exercise 17: IMS ソースからデータを読み出す ............................................. 8-8

ま とめ ....................................................................................................8-11

第 9 章 リレーシ ョナルデータの処理第 9 章 リレーシ ョナルデータの処理第 9 章 リレーシ ョナルデータの処理第 9 章 リレーシ ョナルデータの処理

リ レーシ ョナルステージ ........................................................................... 9-1

目次 v

Page 6: Datastage_8Mainframe Job Tutorial

Exercise18: リ レーシ ョナルソースからデータを読み出す ............................ 9-2

Exercise19: リ レーシ ョナルターゲッ トにデータを書き込む ......................... 9-7

ま とめ ....................................................................................................9-10

第 10 章 外部ソースとターゲッ トの取り扱い第 10 章 外部ソースとターゲッ トの取り扱い第 10 章 外部ソースとターゲッ トの取り扱い第 10 章 外部ソースとターゲッ トの取り扱い

Exercise20 : 外部ソースからのデータ読み取り ...........................................10-2

外部ソースルーチンメ タデータの定義 ................................................10-2

ジ ョブのルーチンの呼び出し .............................................................10-6

Exercise21 : 外部ターゲッ トへのデータ書き込み .......................................10-7

ま とめ ....................................................................................................10-9

第 11 章 ジ ョ インとルックアップによるデータのマージ第 11 章 ジ ョ インとルックアップによるデータのマージ第 11 章 ジ ョ インとルックアップによるデータのマージ第 11 章 ジ ョ インとルックアップによるデータのマージ

Exercise22: ジ ョ インステージでデータをマージする ..................................11-2

Exercise23: ルッ クアップステージでデータをマージする ...........................11-5

ま とめ ..................................................................................................11-11

第 12 章 データのソート と集約第 12 章 データのソート と集約第 12 章 データのソート と集約第 12 章 データのソート と集約

Exercise24: データをソートする ................................................................12-2

Exercise25: データを集約する ...................................................................12-4

Exercise 26: ENDOFDATA を使用する .......................................................12-8

ま とめ ..................................................................................................12-11

第 13 章 ビジネスルールの定義第 13 章 ビジネスルールの定義第 13 章 ビジネスルールの定義第 13 章 ビジネスルールの定義

Exercise 27: リ レーシ ョナルト ランザクシ ョ ンの制御 .................................13-2

ま とめ ....................................................................................................13-7

第 14 章 外部ルーチンの呼び出し第 14 章 外部ルーチンの呼び出し第 14 章 外部ルーチンの呼び出し第 14 章 外部ルーチンの呼び出し

Exercise28: ルーチンのメ タデータを定義する ............................................14-2

Exercise29: 外部ルーチンを呼び出す .........................................................14-4

ま とめ ....................................................................................................14-8

第 15 章 コードの生成第 15 章 コードの生成第 15 章 コードの生成第 15 章 コードの生成

Exercise30: JCL テンプレート を修正する ...................................................15-1

Exercise31: ジ ョブを検証し、 コードを生成する .........................................15-3

Exercise32: マシンプロファ イルを定義する ...............................................15-5

vi Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 7: Datastage_8Mainframe Job Tutorial

Exercise33: ジ ョブをアップロードする ......................................................15-7

ま とめ ....................................................................................................15-8

第 16 章 要約第 16 章 要約第 16 章 要約第 16 章 要約

DataStage Enterprise MVS Edition の主な機能 ..............................................16-1

エクササイズの要約 ................................................................................16-3

Ascential Software Corporation へのお問い合わせ .......................................16-5

付録 A. サンプルデータの定義付録 A. サンプルデータの定義付録 A. サンプルデータの定義付録 A. サンプルデータの定義

COBOL ファ イル定義 ...............................................................................A-2

DB2 DCLGen ファ イル定義 ........................................................................A-4

IMS 定義 ..................................................................................................A-5

索引索引索引索引

目次 vii

Page 8: Datastage_8Mainframe Job Tutorial

viii Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 9: Datastage_8Mainframe Job Tutorial

はじめに

このマニュアルでは、DataStage Enterprise MVS Edition ツールセッ トの特長について説明し、 メ インフレームデータウェアハウス環境でする簡単なデータ抽出とデータ変換の例を示します。 本書は、 DataStage Enterprise MVS Edition を習得し、 通常の使用例について吟味したいシステム管理者とアプ リ ケーシ ョ ン開発者を対象と しています。

読者がデータウェアハウスのコンセプ トに不慣れである場合は、『DataStage デザイナ ガイ ド』 の第 1 章と第 2 章を読んで概要を理解してください。

注意 :注意 :注意 :注意 : このチュート リ アルでは、 メ インフレームコンピュータで実行するジ ョブである メ インフレームジ ョブを作成、 実行する方法を示します。 DataStage サーバー上で稼働するジ ョブを作成するこ ともできます。 サーバージ ョブとパラレルジ ョブが作成可能です。さまざまなタイプの DataStage ジ ョブに関する詳細については、『DataStage サーバージ ョブ開発者ガイ ド』、 『DataStage メ インフレーム ジ ョブ開発者ガイ ド』、 および 『DataStage パラレルジ ョブ開発者ガイ ド』 を参照して ください。

本書はタスクごとに構成されています。 初は序文と簡単な例から始まり、 次第に複雑なタスクを扱う よ うにな り ます。 本書の目的は、DataStage を使った正式な ト レーニングを実施するこ とではなく、 むしろ、 この製品を紹介してその機能の一部を説明するこ とです。 チュートリ アル CD には、 本書で使用するテーブル定義のサンプルが格納されています。

DataStage メ インフレーム ジ ョブ チュート リアルにDataStage メ インフレーム ジ ョブ チュート リアルにDataStage メ インフレーム ジ ョブ チュート リアルにDataStage メ インフレーム ジ ョブ チュート リアルによう こそよう こそよう こそよう こそ

このチュート リ アルでは、 メ インフレームのデータウェアハウス環境でする簡単なデータ抽出とデータ変換の例を示します。 それによって読者は、 DataStage メ インフレームジ ョブの機能について概要を把握でき、適切なツールさえあれば一般的なデータウェアハウスのタスクがいかに簡単であるかも理解できます。

-ix

Page 10: Datastage_8Mainframe Job Tutorial

開始するにあたって、別ウィンドウで Adobe Acrobat Readerセッションを開始すると便利でしょう。これによって、提示されたテーマによっては、DataStageドキュメンテーションを参照してその全体像がわかります。そのため、 説明の途中で DataStage ドキュ メンテーシ ョ ンの参照個所も併せて記載しておきます。

本書では、 ツールが提供する機能の一部を取り上げ、 その基本的な事柄について説明します。 取り上げる機能は次のとおりです。

・ 各種メ インフレームソースからデータを読み出す。・ ウェアハウスへのデータの流れをモデル化するジ ョブステージを

設計する。・ 制約条件と列仕様を定義する。・ データをマージ、 集約、 ソートする。・ ビジネスルールの定義・ 外部ルーチンを呼び出す。・ コードを生成し、 メ インフレームにジ ョブをアップロードする。

この製品を扱う上では、 データベースの基本的なコンセプ ト と用語を理解している必要があ り ます。 また、 DataStage Enterprise MVS Edition を読みこなすには、 メ インフレームコンピュータ と COBOL 言語について基本的な事項を把握している必要もあ り ます。 デモンス ト レーシ ョ ンでは非常に多くの題材を扱うため、 コンセプ トについての初歩的な説明で時間を無駄にしないよ うにします。 データベース と メ インフレームを操作する技量が向上すれば、 本書の内容はおさ らいのよ うに思えるこ と もあるでし ょ う。 ただし、 データベース と メ インフレーム環境に不慣れな読者は、 経験豊富なユーザーに頼んでエクササイズを手伝っても ら う こ とをお勧めします。

始める前に始める前に始める前に始める前にDataStage Enterprise MVS Edition 7.0 をインス トールしておく必要があ ります。 構成をできるだけ簡単にするため、 DataStage のサーバープログラムと ク ラ イアン トプログラムは同じマシンにインス トールする と よいでし ょ う。 ただし、 この作業は絶対に必要というわけではあ り ません。

メ インフレームコンピュータが常にアクセス可能とは限らないので、 読者はコンピュータをメ インフレームに接続しないものと想定しました。メ インフレームを持っていなくても、 このチュート リ アルを使う上で問題はあ り ません。

このチュート リ アルでは、 メ インフレーム上での処理をシ ミ ュレーシ ョンしつつ、 コード作成とジ ョブアップロードの手順について説明しま

-x Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 11: Datastage_8Mainframe Job Tutorial

す。 ただし、 実際の処理をするには、 メ インフレームに接続する必要があ り ます。

本書の構成本書の構成本書の構成本書の構成本書は以下の章で構成されています。

本章本章本章本章 内容内容内容内容

第 1 章 DataStage ツールセッ トのコンポーネン ト を紹介し、 使用コンセプ ト と用語集を含む、 メ インフレームジ ョブ特有の特徴を説明します。

第 2 章 DataStage アド ミ ニス ト レータの概要を説明します。 また、 メ インフレームプロジェク トのデフォルト を設定する方法を説明します。

第 3 章 DataStage マネージャでメ インフレームテーブル定義をインポートする方法を説明します。

第 4 章 DataStage デザイナでのメ インフレームジ ョブ設計の基礎を説明します。

第 5 章 メ インフレームの式エディ タを使って制約条件と列仕様を定義する方法を説明します。

第 6 章 シンプルフラ ッ ト ファ イルデータの処理について詳し く説明します。

第 7 章 コンプレッ クスフラ ッ ト ファ イルデータの処理について詳し く説明します。

第 8 章 IMS データの処理について詳し く説明します。

第 9 章 リ レーシ ョナルデータを処理する方法を説明します。

第 10 章 外部ソースおよび外部ターゲッ ト を処理する方法を説明します。

第 11 章 ルッ クアップとジ ョ インを使用してデータをマージする方法を説明しています。

第 12 章 データを集約、 ソートする方法を説明します。

第 13 章 SQL ビジネスルールロジッ クを使用して複雑な変換を実行する方法を説明しています。

第 14 章 DataStage メ インフレームジ ョブで外部 COBOL サブルーチンを呼び出す方法を説明しています。

第 15 章 コード生成と メ インフレームへのジ ョブのアップロードのプロセスについて説明しています。

-xi

Page 12: Datastage_8Mainframe Job Tutorial

文書の表記法文書の表記法文書の表記法文書の表記法このマニュアルでは、 以下の表記法が使われています。

第 16 章 取り上げた機能のまとめと、 演習の要点を示しています。

付録 A このチュート リ アルで使ったメ インフレームデータソースのテーブル定義と列定義を示します。

本章本章本章本章 内容内容内容内容

表記法表記法表記法表記法 使い方の説明使い方の説明使い方の説明使い方の説明

太字太字太字太字 文法では、表記のとおりに入力するコマンド、関数名、キーワード、オプションを示します。説明文では、押すべきキー、関数名、メニュー項目を示します。

大文字 文法では、BASIC文、BASIC関数、SQL文、SQLキーワードを示します。

斜体 文法では、入力する情報を示します。説明文では、その他に UNIXのコマンド、オプション、ファイル名、パス名も示します。

通常テキスト 説明文で、Windows NTのコマンド、オプション、ファイル名、パス名を示します。

Courier ソースコード例とシステム出力例を示します。

Courier太字太字太字太字 例で、ユーザーが入力する文字や、ユーザーが押すキー(例えば、[Return]など)を示します。

[ ] 大括弧で囲まれている項目は省略可能です。大括弧は、特に指定がないかぎり入力しないこと。

{ } 中括弧で囲まれている項目は省略不可能です。少なくとも 1 つの項目を選択しなければなりません。中括弧は入力しないこと。

項目 A |項目 B 選択項目の区切りです。どちらか一方の項目が選択可能です。垂直線は入力しないこと。

... 3 つのピリオドは、同一種類の項目を続けて指定できることを示しています。

-xii Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 13: Datastage_8Mainframe Job Tutorial

さ らに以下の表記法も使われています。

・ 構文の定義と例は、 読みやすくするためにあ り ます。

・ 構文に含まれている句読点 (例えば、 カンマ、 括弧、 引用符など)はすべて、 入力禁止の指示がないかぎり入力する必要があり ます。

・ 構文の行が一行に収まらない場合、 次の行に継続します。 継続行はインデン ト されます。 構文の入力時には、 継続行を含めて全体を一行と して入力します。

ユーザーインタフェースの表記ユーザーインタフェースの表記ユーザーインタフェースの表記ユーザーインタフェースの表記以下の DataStage ダイアログボッ クスに、 ユーザーインタフェース要素の説明で使われる用語を示します。

→ メニューコマンドの間にある「→」記号は、コマンドを並び順に従って選択することを示します。例えば「[ファイルファイルファイルファイル ]→ [終了終了終了終了 ]を選択」と表記されている場合は、メニューバーの [ファイルファイルファイルファイル ]を選択し、次に [ファイルファイルファイルファイル ]プルダウンメニューから [終了終了終了終了 ]を選択してください。

継続 継続はソースコード例で使われるもので、行が長過ぎてページからはみ出すため、その行を次の行に継続していることを示します。画面上では一本の行として入力します。

表記法表記法表記法表記法 使い方の説明使い方の説明使い方の説明使い方の説明

-xiii

Page 14: Datastage_8Mainframe Job Tutorial

DataStage のユーザーインタフェースはタブ付きのページを数多く使っており、 1 つのダイアログボッ クスだけで必要なコン ト ロールに到達できるよ うにページがネス ト しているこ と もあ り ます。 上位レベルのものは “ページ” と呼ばれ、 下位レベルのものは “タブ” と呼ばれます。上で示した例は、 [ 入力入力入力入力 ] ページの [ 全般全般全般全般 ] タブです。 状況依存のオンラインヘルプを使う場合、 各ページはそれぞれ別々のヘルプ ト ピッ クを示しますが、 各タブは常に親ページのヘルプ ト ピッ クを示します。 オンラインヘルプ内で別のタブのヘルプページにジャンプできます。

DataStage ドキュ メン トDataStage ドキュ メン トDataStage ドキュ メン トDataStage ドキュ メン トDataStage ドキュ メ ン トの内容は次のとおりです。

『DataStage デザイナデザイナデザイナデザイナ ガイ ドガイ ドガイ ドガイ ド』DataStageデザイナに関するガイドであり、DataStageアプリケーションを作成、設計、開発する方法の概要を説明しています。

『DataStage マネージャ ガイ ドDataStage マネージャ ガイ ドDataStage マネージャ ガイ ドDataStage マネージャ ガイ ド』 DataStage マネージャについて説明し、 DataStage リ ポジ ト リの使用方法および保守方法を説明します。

『DataStageサーバー:サーバージョブ開発者ガイド』サーバー:サーバージョブ開発者ガイド』サーバー:サーバージョブ開発者ガイド』サーバー:サーバージョブ開発者ガイド』サーバージョブの作成に使用する特定ツールを説明し、プログラマの参照情報を提供します。

表示

ボタン

チェ ッ ク

ボッ クス

ボタン

ド ロ ップ

ダウン リ ス ト

タブ

フ ィールド

オプシ ョ ン

ボタン

ページ

-xiv Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 15: Datastage_8Mainframe Job Tutorial

『DataStage Enterprise Edition : パラレルジ ョブ開発者ガイ ドDataStage Enterprise Edition : パラレルジ ョブ開発者ガイ ドDataStage Enterprise Edition : パラレルジ ョブ開発者ガイ ドDataStage Enterprise Edition : パラレルジ ョブ開発者ガイ ド』 パラレルジ ョブを作成する と きに使う個々のツールについて説明し、 プログラマの参考となる情報を提供します。

『DataStage Enterprise MVS Edition : メ インフレーム ジ ョブ開発者ガDataStage Enterprise MVS Edition : メ インフレーム ジ ョブ開発者ガDataStage Enterprise MVS Edition : メ インフレーム ジ ョブ開発者ガDataStage Enterprise MVS Edition : メ インフレーム ジ ョブ開発者ガイ ドイ ドイ ドイ ド』 メ インフレームジ ョブを作成する と きに使う個々のツールについて説明し、 プログラマの参考となる情報を提供します。

『DataStage ディ レク タ ガイ ドDataStage ディ レク タ ガイ ドDataStage ディ レク タ ガイ ドDataStage ディ レク タ ガイ ド』 DataStage ディレク タについて説明し、 DataStage サーバージ ョブの検証、 スケジューリ ング、 実行、 および監視方法を説明します。

『DataStage 管理者ガイ ドDataStage 管理者ガイ ドDataStage 管理者ガイ ドDataStage 管理者ガイ ド』 DataStage のセッ ト アップ、 ルーチンハウスキーピング、 管理について説明します。

『DataStage インス トール&アップグレードガイ ドDataStage インス トール&アップグレードガイ ドDataStage インス トール&アップグレードガイ ドDataStage インス トール&アップグレードガイ ド』 Windows プラ ット フォーム、 および UNIX プラ ッ ト フォームで DataStage をインストールする方法、 および既存の DataStage インス トールをアップグレードする方法について説明します。

上記のマニュアルはオンラインでも入手できます。 これは PDF 形式なので、 DataStage に付属している Adobe Acrobat Reader で読むこ とができます。 マニュアル類と Adobe Acrobat Reader のインス トール方法の詳細については、 『DataStage インス トール&アップグレードガイ ド』 をご覧ください。

広範囲に及ぶ内容のオンラインヘルプも提供されています。 これは、DataStage に詳し くな り、 詳細な情報を必要とする場合に も役立ちます。

-xv

Page 16: Datastage_8Mainframe Job Tutorial

-xvi Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 17: Datastage_8Mainframe Job Tutorial

1DataStage メインフレー

ムジ ョブの概要

本チュート リ アルでは、 DataStage メ インフレームジ ョブを作成、 開発する方法を説明します。DataStage Enterprise MVS Edition がインス トールされていれば、 DataStage はメ インフレームでコンパイル、 実行されるジ ョブを作成できます。 このジ ョブが読み取ったデータをデータウェアハウスにロード します。

この章では、 DataStage とそのコンポーネン トの概要を説明してから、メ インフレームジ ョブの特性を説明します。 サーバージ ョブのチュートリ アルを読み終えた読者にとって、 この章の一部は重複した内容となるでし ょ う。

DataStage の概要DataStage の概要DataStage の概要DataStage の概要DataStage を使えば、 データウェアハウスまたはデータマート を手早く作成できます。 DataStage とは、 1 つ以上のデータソースからデータを抽出し、 そのデータの複雑な変換を行い、 変換後のデータを 1 つ以上のファイルまたはデータベースにロードするアプリ ケーシ ョ ンの設計と開発用の各種ツールを統合したものです。

DataStage で開発したソ リ ューシ ョ ンはオープンかつスケーラブルであるので、 例えばデータソース と ターゲッ トの追加や、 増量したデータの処理などにも直ちに対応可能です。

サーバーコンポーネン トサーバーコンポーネン トサーバーコンポーネン トサーバーコンポーネン ト

DataStage には 3 つのサーバーコンポーネン トがあ り ます。

DataStage メ インフレームジ ョ ブの概要 1-1

Page 18: Datastage_8Mainframe Job Tutorial

・ リ ポジ ト リリポジ ト リリポジ ト リリポジ ト リ。 データマート またはデータウェアハウスの作成で必要となる情報をすべて収める主要な格納場所です。

・ DataStage サーバーDataStage サーバーDataStage サーバーDataStage サーバー。 データを抽出し、 変換し、 データウェアハウスにロードする実行可能なサーバージ ョブを DataStage ディレクタの制御の下で実行します。

・ DataStage バッケージインス トーラDataStage バッケージインス トーラDataStage バッケージインス トーラDataStage バッケージインス トーラ。 パッケージされた DataStageジ ョブとプラグインをインス トールするために使用するユーザーインタフェースです。

クライアン ト コンポーネン トクライアン ト コンポーネン トクライアン ト コンポーネン トクライアン ト コンポーネン ト

DataStage には、 以下に示す 4 つのク ライアン ト コンポーネン トがあ り、これらは Windows 2000、 Windows NT 4.0 または WIndows XP Professionalが動作する PC にインス トールされます。

・ DataStage マネージャDataStage マネージャDataStage マネージャDataStage マネージャ。 リポジ ト リの内容を参照、 編集するために使用するユーザーインタフェースです。

・ DataStage デザイナDataStage デザイナDataStage デザイナDataStage デザイナ。 DataStage サーバージ ョブ、 メ インフレームジ ョブ、 パラレルジ ョブを作成するために使用するグラフ ィカルツールです。

・ DataStage アド ミニス ト レータDataStage アド ミニス ト レータDataStage アド ミニス ト レータDataStage アド ミニス ト レータ。 ユーザーのセッ ト アップ、 プロジェク トの作成と削除、 プロジェク トプロパティの設定などの基本的な設定タスクを実行するために使用するユーザーインタフェースです。

・ DataStage ディレクタDataStage ディレクタDataStage ディレクタDataStage ディレクタ。 DataStage サーバージ ョブの検証、 スケジューリ ング、 実行、 監視で使用するユーザーインタフェースです。 メ インフレームジ ョブでは使用されません。

DataStage マネージャ、 デザイナ、 アド ミ ニス ト レータについては、 メインフレームチュート リ アルのエクササイズで取り上げます。 そのとき、 これらのツールの使用方法を学び、 具体的なタスクを実行するので、 各ツールの機能に関してある程度の知識を身に付けるこ とができます。

サーバーコンポーネン トの場合、 対話処理はほとんど必要あ り ません。ただし、 DataStage マネージャを使用したエクササイズでは、 リポジ トリ を調べる機会もあ り ます。

1-2 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 19: Datastage_8Mainframe Job Tutorial

プロジェク トプロジェク トプロジェク トプロジェク ト

DataStageでは、すべての開発作業はプロジェクトで行われます。プロジェクトは、インストールのプロセスで作成されます。インストール後、DataStageアドミニストレータを使って新しいプロジェクトを追加できます。

DataStageクライアントを起動するとき、DataStageプロジェクトへの接続を要求されます。プロジェクトの内容としては、以下のものが考えられます。

・ DataStageDataStageDataStageDataStageジョブジョブジョブジョブ。データウェアハウスをロードしたり保守したりするジョブの集まり。プロジェクトで作成できるジョブの数に制限はありません。

・ ビルト インコンポーネン トビルト インコンポーネン トビルト インコンポーネン トビルト インコンポーネン ト。 ジ ョブで使われる定義済みコンポーネン ト

・ ユーザー定義コンポーネン トユーザー定義コンポーネン トユーザー定義コンポーネン トユーザー定義コンポーネン ト。 ユーザーの希望に合わせてDataStage マネージャで作成されるコンポーネン ト。 各ユーザー定義コンポーネン トは、 それぞれ固有のタスクをジ ョブで実行します。

ジ ョ ブジ ョ ブジ ョ ブジ ョ ブ

DataStage ジ ョブは、 1 つ以上のデータソースからデータウェアハウスまでのデータの流れを表すためにリ ンク された、 個々のステージで構成されます。 各ステージは、 特定のデータベースやプロセスを説明します。例えば、 データソースからデータを抽出するステージや、 そのデータを変換するステージがあ り ます。 これらのステージは、 デザイナによってジ ョブに追加され、 ま とめて リ ンク されます。

以下の図では、 データソース、 ト ランスフォーマ (変換) ステージ、 目的のデータウェアハウスから成る も簡単なジ ョブを示します。 各ステージ間のリ ンクは、 ステージに入るデータまたはステージから出るデータの流れを表します。

DataStage メ インフレームジ ョ ブの概要 1-3

Page 20: Datastage_8Mainframe Job Tutorial

各ステージで使いたいデータと、そのデータの扱い方を指定する必要があります。例えば、 ソースデータ中のすべての列を使うか、 または選択した一部だけを使うかを指定した り、 次のステージに渡す前にデータをジ ョ インするか、 集約するか、 ソートするかを指定したり、 データをデータウェアハウスで有効なフォーマッ トにするには、 どのよ うにデータを変換するべきかなどを指定します。

DataStage には、 基本的に下記の 3 種類のジ ョブがあ り ます。

・ サーバーサーバーサーバーサーバージ ョブジ ョブジ ョブジ ョブは、 DataStage ク ラ イアン ト ツールによって開発され、 DataStage サーバーでコンパイル、 実行されます。 サーバージ ョブは必要に応じて別のマシンのデータベースに接続して、データを抽出し、 そのデータを処理します。 そして、 処理したデータをターゲッ トのデータウェアハウスに書き込みます。

・ パラレルジ ョブパラレルジ ョブパラレルジ ョブパラレルジ ョブは、 サーバージ ョブと同様の方法で開発、 コンパイル、 実行されますが、 SMP システム、 MPP システム、 およびクラスタシステムでパラレル処理をサポート します。

・ メ インフレームジ ョブメ インフレームジ ョブメ インフレームジ ョブメ インフレームジ ョブは、 サーバージ ョブやパラレルジ ョブの場合と同じ DataStage ク ラ イアン ト ツールを使って開発されますが、コンパイルと実行はメ インフレームコンピュータで行われます。デザイナは、 COBOL ソースファ イルとサポート対象の JCL スクリプ ト を生成してから、 それらを目的のメ インフレームコンピュータにアップロード します。 ジ ョブは、 ネイティブのメ インフレームソフ ト ウェアの制御によってメ インフレームでコンパイル、 実行されます。 メ インフレームジ ョブが抽出したデータはデータウェアハウスにロード されます。

サーバージ ョブ、 パラレルジ ョブ、 メ インフレームジ ョブの詳細については、 『DataStage サーバージ ョブ開発者ガイ ド』、 『DataStage パラレルジ ョブ開発者ガイ ド』、 および 『DataStage メ インフレーム ジ ョブ開発者ガイ ド』 を参照して ください。

データソース トランスフォーマステージ

データウェアハウス

1-4 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 21: Datastage_8Mainframe Job Tutorial

ステージステージステージステージ

ステージにはパッシブなものとアクティブなものがあ り ます。 パッシブステージは、 データの抽出と書き込みのために、 ファ イルとテーブルへのアクセスを扱います。 アクティブステージはデータの流れをモデル化します。 また、 データス ト リームを組合せ、 データを集約し、 データの種類を変換する メカニズムも備えています。

ステージには通常、 少なく と も 1 つのデータ入力と 1 つのデータ出力があ り ます。 複数のデータ入力と複数のステージへの出力を許容できるステージもあ り ます。 各ステージのプロパティと各入出力リンクのデータは、ステージエディタを使って指定します。

メ インフレームジ ョブには、 4 つのステージタイプがあ り ます。

・ ソースステージソースステージソースステージソースステージ。 データソースからデータを読み出すために使われます。 メ インフレームのソースステージは次のとおりです。

・・・・ コンプレッ クスフラ ッ ト ファ イル・・・・ 区切り文字付きフラ ッ ト ファ イル (ターゲッ ト ステージと して

も使用可能)・・・・ 外部ソース・・・・ 固定幅フラ ッ ト ファ イル (ターゲッ ト ステージと しても使用可

能)・・・・ IMS・・・・ マルチフォーマッ ト フラ ッ ト ファ イル・・・・ リ レーシ ョナル (ターゲッ ト ステージと しても使用可能)・・・・ Teradata エクスポート・・・・ Teradata リ レーシ ョナル (ターゲッ ト ステージと しても使用可

能)

・ ターゲッ ト ステージターゲッ ト ステージターゲッ ト ステージターゲッ ト ステージ。 目的のデータウェアハウスにデータを書き込むために使われます。 メ インフレームのターゲッ ト ステージは次のとおりです。

・・・・ DB2 ロード レディ フラ ッ ト ファ イル・・・・ 区切り文字付きフラ ッ ト ファ イル (ソースステージと しても使

用可能)・・・・ 外部ターゲッ ト・・・・ 固定幅フラ ッ ト ファ イル (ソースステージと しても使用可能)・・・・ リ レーシ ョナル (ソースステージと しても使用可能)・・・・ Teradata ロード・・・・ Teradata リ レーシ ョナル (ソースステージと しても使用可能)

DataStage メ インフレームジ ョ ブの概要 1-5

Page 22: Datastage_8Mainframe Job Tutorial

・ 処理ステージ処理ステージ処理ステージ処理ステージ。 目的のデータウェアハウスに書き込む前のデータを変換するために使われます。 メ インフレームの処理ステージは次のとおりです。

・・・・ アグ リゲータ・・・・ Business Rule・・・・ 外部ルーチン・・・・ ジ ョ イン・・・・ リ ンク コネク タ・・・・ ルッ クアップ・・・・ ソー ト・・・・ ト ランスフォーマ

・ 後処理ステージ後処理ステージ後処理ステージ後処理ステージ。 メ インフレームジ ョブで生成されたターゲッ トファ イルを後処理するために使われます。 後処理ステージと しては次の 1種類しかあ り ません。

---- FTP

これらのステージについては 第 4 章でさ らに詳し く説明します。

開始開始開始開始このチュート リ アルの目的は、 DataStage メ インフレームジ ョブの特長と機能を理解していただく こ とにあ り ます。 本書のエクササイズでは、データを読み出し、 変換し、 目的のファイルまたはテーブルにロードする各ジ ョブを作成します。 後のジ ョブアップロードはシ ミ ュレーシ ョンされるため、 本書のエクササイズを終える段階でメ インフレームに接続する必要はあ り ません。

このチュート リ アルを読み終えれば、 以下の処理を実行する方法を習得できます

・ プロジェク トに接続し、 DataStage アド ミ ニス ト レータでメ インフレームジ ョブのプロジェク トデフォル ト を指定する。

・ DataStage マネージャで、 メ インフレームソースから メ タデータをインポートする。

・ DataStage デザイナで、 メ インフレームジ ョブを設計する。

・ メ インフレームの式エディ タで、 制約条件と出力列仕様を定義する。

・ 各種のフラ ッ ト ファイルでデータの読み出し / 書き込みを行う。

・ IMS データベースからデータを読み出す。

1-6 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 23: Datastage_8Mainframe Job Tutorial

・ リ レーシ ョナルテーブルでデータの読み出し / 書き込みを行う。

・ 外部ソースからデータを読み取り、外部ターゲットにデータを書き込みます

・ テーブルのルッ クアップとジ ョ インを定義する。

・ 集約と ソート を定義する。

・ SQL ビジネスルールロジッ クを使用して複雑なデータ変換を定義する。

・ 外部 COBOL ルーチンを定義して呼び出す。

・ COBOL ソースコードを生成し、 JCL をコンパイルして実行する。

・ 得られたファ イルをメ インフレームにアップロードする。

DataStage Enterprise MVS Edition の用語とコンセプ トDataStage Enterprise MVS Edition の用語とコンセプ トDataStage Enterprise MVS Edition の用語とコンセプ トDataStage Enterprise MVS Edition の用語とコンセプ トDataStage メ インフレームジ ョブでは、 以下の用語が使われます。

用語用語用語用語 説明説明説明説明

.cfd CFD ファ イル

.dfd DCLGen ファ イル

.dsx DataStageエクスポートファイル

アクティブステージ

DataStageの処理中のステージ

アグリゲータステージ

データのセッ トの合計または他の関数を計算するステージ

エイリアス テーブル名の短い別名

配列 データの集まりを処理するロジック。DataStageは、メインフレームジョブで単純配列、ネスト配列、パラレル配列を扱うことができます。

ブール式 TRUEまたは FALSEを返す式CFD COBOL File Description(COBOLファイル記述)。

COBOLの用語でファイルのフォーマットを記述したテキストファイルです。

ビジネスルールステージ

SQL ビジネスルールロジッ クを使用してデータを変換するステージ

DataStage メ インフレームジ ョ ブの概要 1-7

Page 24: Datastage_8Mainframe Job Tutorial

COBOL Common business-oriented language。英語に似ている、事務処理用のプログラミング言語です。

列定義 データテーブルに含まれる列の定義。列名と列に含まれるデータの種類を示します。

コンパイル ソースコードを実行可能なコードに変換する処理

コンプレッ クスフラ ッ ト ファ イルステージ

コンプレッ クスフラ ッ ト ファ イルのデータ構造体からデータを読み取るステージです。 コンプレッ クスフラ ッ ト ファ イルには、 1 つ以上のGROUP 句、 REDEFINES 句、 OCCURS 句、 または OCCURS DEPENDING ON 句を入れるこ とができます。

制約条件 出力データの限界を定義する式です。 制約条件は真または偽を返すブール式です。 コンプレックスフラ ッ ト ファ イル、 区切り文字付きフラ ット ファ イル、 外部ソース、 固定幅フラ ッ ト ファイル、 マルチフォーマッ ト フラ ッ ト ファ イル、リ レーシ ョナル、 Teradata リ レーシ ョナル、Teradata エクスポート、 ト ランスフォーマの各ステージで指定されます。

DataStageアドミニストレータ

DataStageプロジェクトおよびユーザーを設定するためのツール

DataStageデザイナ DataStageジョブを設計、開発するために開発者が使うグラフィカル設計ツール

DataStageディレクタ

DataStageサーバージョブを実行、監視するためのツール。メインフレームジョブでは使われません。

DataStageマネージャ

リポジトリの定義情報を参照、編集するためのツール

データマスク 入力フラ ッ ト ファ イルまたは出力フラ ッ ト ファイルの 1つ以上の列に適用される日付フォーマッ ト。 マスクによって、 入力列データは指定されたフォーマッ トの Date データ型と して内部で処理され、 出力列データは指定された日付フォーマッ トでターゲッ ト ファ イルに書き込まれるよ うにな り ます。

DB2 メ インフレームコンピュータ上で動作する IBMのリ レーシ ョナルデータベースです。 DB2/MVSまたは DB2/UDB と も呼ばれます。

用語用語用語用語 説明説明説明説明

1-8 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 25: Datastage_8Mainframe Job Tutorial

DB2 ロードレディフラットファイルステージ

メインフレームコンピュータで使われる IBMリレーショナルデータベース。DB2/MVSまたはDB2/UDBとも呼ばれます。

DCLGen IBM DB2の用語でファイルのフォーマットを記述したテキストファイル

DD 名 JCLで使われるファイルのデータ定義名。DD名はジョブ内で一意であること。

区切り文字付きフラ ッ ト ファ イルステージ

区切り文字付きフラ ッ ト ファ イルからデータを読み取った り、 このファ イルにデータを書き込むステージです。

非正規化 アクセスの効率が高まるようにデータを編成すること。通常、テーブルのマージ、データの配列作成、冗長性の選択的な削減でデータを編成します。

開発者 DataStageジョブの設計と開発に携わる人式 コードの要素であり、値を定義し、ジョブの設

計に組み込まれるもの。メインフレームジョブで列仕様、制約条件、キー式、ステージ変数を定義するのに使われます。

式エディタ メインフレームジョブの式を正しく入力できるようにする対話型のエディタ

外部ルーチン ユーザー定義の関数またはプロシージャ。外部のライブラリに実行可能コードとして格納されます。外部ルーチンの位置と呼出署名は、DataStageリポジトリで定義されます。外部ルーチンを書くための言語は、COBOLで呼び出せる言語であれば何であってもかまいません。

外部ルーチンステージ

外部 COBOLサブルーチンへの呼び出しを定義して、DataStageが生成したプログラムに複合処理や機能を組み込めるようにするステージです。

外部ソースステージ

ユーザー作成サブルーチンへの呼び出しを定義すると、外部ソースからデータを抽出するステージです。

外部ターゲットステージ

ユーザー作成サブルーチンへの呼び出しを定義すると、外部ターゲットにデータを書き込むステージです。

用語用語用語用語 説明説明説明説明

DataStage メ インフレームジ ョ ブの概要 1-9

Page 26: Datastage_8Mainframe Job Tutorial

固定幅フラ ッ トファ イルステージ

シンプルフラ ッ ト ファ イルからデータを読み取ったり、 このファ イルにデータを書き込むステージです。

フラットファイル インデックス(キー)を持たないシーケンシャルファイル

FTP ファイル転送プロトコル

FTPステージ ホストシステムにファイルを転送するための後処理ステージ

ハッシュテーブル ディスクで 1 つ以上のグループにレコードを割り当てるのにハッシングアルゴリズムを使うファイル。ハッシュテーブルは、メインフレームジョブでジョインやルックアップを実行するのに利用可能です。

JCL ジョブ制御言語IMS 情報管理システム。 階層的アーキテクチャを使

用した IBM のデータベース管理システム

IMS ステージ IMS データベースからデータを読み込むステージ

JCLテンプレート ジョブ固有の JCLを生成するために DataStageが提供するカスタマイズ可能なテンプレート

ジョブ リンクされたステージの集まり。データを読み出し、変換し、ターゲットデータベースにロードする方法を定義したものです。

ジョブパラメータ ユーザーが定義するジョブ処理変数。ジョブパラメータの値は、別個のファイルに収められてメインフレームにアップロードされます。このファイルは、ジョブをコンパイル、実行するときにアクセスされます。

ジョインステージ 2 つの入力データストリームを結合します。

ルックアップステージ

テーブルルックアップでデータをマージします。

リ ンク コレク タステージ

複数の入力リ ンクからのデータを結合して 1 つの出力リ ンクに渡すステージ

メインフレームジョブ

DataStageとは独立して、メインフレームコンピュータで実行される DataStageジョブ。COBOLソースは、DataStageからメインフレームにアップロードされ、そこでコンパイルされて実行可能ファイルとなります。

用語用語用語用語 説明説明説明説明

1-10 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 27: Datastage_8Mainframe Job Tutorial

メタデータ データに関するデータ。テーブルの構造を示すテーブル定義がその例です。

マルチフォーマット フラ ッ ト ファ イルステージ

複数のレコード タイプがあるファ イルからデータを読み取るステージです。 ソースデータには、レコード タイプごとに 1 つ以上の GROUP 句、REDEFINES 句、 OCCURS 句、 あるいは OCCURS DEPENDING ON 句を入れるこ とができます。

データ型 ネイティブ(ホスト)環境にあるデータ項目の種類。これは、データ項目が取りうる値の範囲を指定し、その処理を決定します。

正規化 複雑なデータ構造を単純化された関係の構造に分解すること。

NULL 値を現在持っていず、これまでも持たなかった可能性のある列。ゼロやブランク、空の文字列とは異なります。

オペレーシ ョ ン メタデータ

DataStage メ インフレームジ ョブの処理ステップを説明するイベン ト を収集したもの。

OS/390 IBMメインフレームで使われる主要なオペレーティングシステム

パッシブステージ DataStageのソースステージまたはターゲットステージ

精度 数値の表現で使われる詳細さの程度

プロジェクト DataStageアプリケーション。プロジェクトには、DataStageジョブ、ジョブのビルトインコンポーネント、そしてジョブで特定のタスクを実行するユーザー定義コンポーネントが含まれます。DataStageサーバーが個別のプロジェクトを複数持ち、各プロジェクトは複数のジョブから成る場合もあります。

QSAM Queued Sequential Access Method(待機順次アクセス法)

リ レーシ ョナルステージ

OS/390 プラ ッ ト フォームの DB2 データベーステーブルからデータを読み取ったり、 このテーブルにデータを書き込むステージです。

用語用語用語用語 説明説明説明説明

DataStage メ インフレームジ ョ ブの概要 1-11

Page 28: Datastage_8Mainframe Job Tutorial

リポジトリ メタデータを格納する主要な場所。データマートまたはデータウェアハウスの作成で必要な情報をすべて収めています。その内容としては、DataStageプロジェクトやジョブの他に、マシンプロファイル、ルーチン、テーブル、ステージのそれぞれの定義情報があります。

RTL ランタイムライブラリ。RTLには、メインフレームジョブの実行時に使われるルーチンが入っています。

ソートステージ 入力データをソートします。

ソース データの読み出し /書き込みが行われるファイルまたはデータベーステーブル

SQL Structured Query Language(構造化照会言語)。リレーショナルデータベースのデータにアクセスするのに使われる業界標準の言語です。

ステージ DataStageジョブでデータソース、処理手順、データウェアハウスのどれかとなるコンポーネント

テーブル定義 データテーブルとそれに関連する列についての情報など、必要なデータの定義。メタデータとも呼ばれます。

Teradata エクスポート ステージ

Teradata FastExport ユーティ リ ティを使って、OS/390 プラ ッ ト フォームの Teradata データベーステーブルからデータを読み取るステージです。

Teradata ロード ステージ

Teradata ロードユーティ リ ティで使用するために、 互換性のあるフォーマッ トでシーケンシャルファイルにデータを書き込むステージです。

Teradata リ レーシ ョナルステージ

OS/390 プラ ッ ト フォームの Teradata データベーステーブルからデータを読み取った り、 このテーブルにデータを書き込むステージです。

トランスフォーマエディタ

トランスフォーマステージ編集用のグラフィカルインタフェース

トランスフォーマステージ

データをフィルタリングしてトランスフォーム(変換)するステージです。

アップロード 処理のためにデータを遠隔地のメインフレームホストに転送すること。

用語用語用語用語 説明説明説明説明

1-12 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 29: Datastage_8Mainframe Job Tutorial

可変ブロ ッ クファイル

可変長レコードを含むコンプレッ クスフラ ッ トファ イルです。

VSAM Virtual Storage Access Method(仮想記憶アクセス方式)。IBMのMVSオペレーティングシステムで使われるファイル管理システムです。

用語用語用語用語 説明説明説明説明

DataStage メ インフレームジ ョ ブの概要 1-13

Page 30: Datastage_8Mainframe Job Tutorial

1-14 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 31: Datastage_8Mainframe Job Tutorial

2DataStage の管理

この章では、DataStageアドミニストレータの基礎について説明します。DataStageに接続し、メインフレームジョブでプロジェクトデフォルトを設定する方法を学んでください。

DataStage アド ミニス ト レータDataStage アド ミニス ト レータDataStage アド ミニス ト レータDataStage アド ミニス ト レータメ インフレームジ ョブでは、 以下の処理で DataStage アド ミ ニス ト レータを使います。

・ ラ イセンス情報を変更する。・ DataStage ユーザーをセッ ト アップする。・ DataStage プロジェク ト を追加、 削除、 移動する。・ プロジェク ト ファ イルをク リーンアップする。・ サーバーコンピュータのタイムアウ ト時間を設定する。・ プロジェク トプロパティ を参照、 編集する。

上記の処理のうちには、 特定の管理権限を必要と し、 一般にシステム管理者によって実行されるものがあ り ます。 その他の処理は、 DataStage開発者なら誰でも行える基本的なコンフ ィギュレーシ ョ ンタスクです。DataStage アド ミ ニス ト レータの詳細については、 『DataStage 管理者ガイ ド』 を参照して ください。

Exercise1 : プロジェク トデフォルト を設定するExercise1 : プロジェク トデフォルト を設定するExercise1 : プロジェク トデフォルト を設定するExercise1 : プロジェク トデフォルト を設定するDataStage でジ ョブを設計する前に、 DataStage アド ミ ニス ト レータで幾つかの手順を実行する必要があ り ます。 このエクササイズでは、DataStage に接続し、 メ インフレームのプロジェク トデフォル ト を指定する方法を示します。

DataStage の管理 2-1

Page 32: Datastage_8Mainframe Job Tutorial

DataStage アド ミニス ト レータを起動するDataStage アド ミニス ト レータを起動するDataStage アド ミニス ト レータを起動するDataStage アド ミニス ト レータを起動する

DataStage アド ミ ニス ト レータを起動するには、 [ スタートスタートスタートスタート ] → [ プログプログプログプログラムラムラムラム ] → [Ascential DataStageAscential DataStageAscential DataStageAscential DataStage] → [ DataStage アド ミニス ト レータDataStage アド ミニス ト レータDataStage アド ミニス ト レータDataStage アド ミニス ト レータ ] を選択します。 以下の [DataStage へ接続DataStage へ接続DataStage へ接続DataStage へ接続 ] ダイアログボッ クスが表示されます。

注意 :注意 :注意 :注意 : DataStage マネージャまたは DataStage デザイナのク ライアント コンポーネン ト を起動する と きは、 [ プロジェク トへ接続プロジェク トへ接続プロジェク トへ接続プロジェク トへ接続 ]ダイアログボッ クスが表示されます。 これは、 さ らに接続先と してプロジェク ト も選択する点を除けば、 [DataStage へ接DataStage へ接DataStage へ接DataStage へ接続続続続 ] ダイアログボッ クス と同じです。

DataStage に接続する手順を次に示します。

1. [ ホス ト システムホス ト システムホス ト システムホス ト システム ] フ ィールドにホス ト名を入力します。 ホス ト名は、 DataStage サーバーコンポーネン トがインス トールされているシステムの名前と します

2. [ ユーザー名ユーザー名ユーザー名ユーザー名 ] フ ィールドにユーザー名を入力します。 ユーザー名は、 サーバーシステムでの自分の名前と します。

3. [ パスワードパスワードパスワードパスワード ] フ ィールドに自分のパスワードを入力します。

注意 :注意 :注意 :注意 : LAN Manager 経由でサーバーに接続する場合は、 [ 省略省略省略省略 ] ボックスをチェ ッ ク してみてください。 [ ユーザー名ユーザー名ユーザー名ユーザー名 ] および [ パパパパスワードスワードスワードスワード ] フ ィールドが入力不可能とな り、 サーバーには自分の Windows NT ド メ インアカウン トでログオンするこ とにな り ます。

4. [ 設定を保存設定を保存設定を保存設定を保存 ] ボッ クスをチェ ッ ク して、 ログオン設定を保存します。

2-2 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 33: Datastage_8Mainframe Job Tutorial

5. [OKOKOKOK] ボタンをク リ ッ ク します。 以下の [DataStage プロジェク ト管理DataStage プロジェク ト管理DataStage プロジェク ト管理DataStage プロジェク ト管理] ウ ィ ンド ウが表示されます。

[ 全般全般全般全般 ] ページではサーバー全体のプロパティを設定します。 このページのコン ト ロールとボタンのほとんどは、 管理者と してログオンした場合にだけ使えます。

DataStage の管理 2-3

Page 34: Datastage_8Mainframe Job Tutorial

デフォルトジ ョブプロパティ を設定するデフォルトジ ョブプロパティ を設定するデフォルトジ ョブプロパティ を設定するデフォルトジ ョブプロパティ を設定する

これで、 メ インフレームプロジェク トのデフォルトプロパティが設定できるよ うにな り ました。 設定値は、 作成されてから メ インフレームにアップロード される JCL スク リプ トの一部とな り ます。

デフォルトのジ ョブプロパティの設定手順を次に示します。

1. [ プロジェク トプロジェク トプロジェク トプロジェク ト ] タブをク リ ッ ク して、 このページを一番手前に移動します。

2. 接続先のプロジェク ト を選択します。 このページは、 DataStage サーバーでインス トールされているプロジェク ト をすべて表示します。アド ミ ニス ト レータのステータスがある場合、 [ 追加追加追加追加 ............] をク リ ッ クして新規のプロジェク ト を作成できます。 [ プロジェク トの追加プロジェク トの追加プロジェク トの追加プロジェク トの追加 ] ダイアログボッ クスが表示されるので、 こ こでプロジェク トの詳細を指定します。

2-4 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 35: Datastage_8Mainframe Job Tutorial

3. [ プロパティプロパティプロパティプロパティ ] ボタンをク リ ッ ク して、 [ プロジェク トプロパティプロジェク トプロパティプロジェク トプロパティプロジェク トプロパティ ]ウ ィンド ウを表示します。 次に、 [ メ インフレームメ インフレームメ インフレームメ インフレーム ] をク リ ッ ク して、 以下のメ インフレームプロジェク トプロパティ を定義します。

4. [ プラ ッ ト フォームタイププラ ッ ト フォームタイププラ ッ ト フォームタイププラ ッ ト フォームタイプ ] フ ィールドでは、 [OS/390OS/390OS/390OS/390] のデフォルト設定のままにしておきます。

5. [DBMS システム名DBMS システム名DBMS システム名DBMS システム名 ] フ ィールドに 「DBS1DBS1DBS1DBS1」 と入力します。 これはDataStage が生成したプログラムによってアクセスされる メ インフレームデータベースシステムの名前です。 (チュート リ アルでは、 アクティブなメ インフレーム接続を必要と しないため、 この名前は例と してのみ使用されます。)

DataStage の管理 2-5

Page 36: Datastage_8Mainframe Job Tutorial

6. [DBMS ユーザー名DBMS ユーザー名DBMS ユーザー名DBMS ユーザー名 ] フ ィールドおよび [DBMS パスワードDBMS パスワードDBMS パスワードDBMS パスワード ] フ ィールドに 「dstage」 と入力します。

7. [ 大ブロ ッ ク係数大ブロ ッ ク係数大ブロ ッ ク係数大ブロ ッ ク係数 ] フ ィールドおよび [ 大ブロ ッ クサイズ大ブロ ッ クサイズ大ブロ ッ クサイズ大ブロ ッ クサイズ ]フ ィールドは、 新規ファイル作成時にブロッ クサイズを求めるために使用されます。 デフォルト値を使用するこ と もできます。

8. [日付フォーマット日付フォーマット日付フォーマット日付フォーマット ]ドロップダウンリストの [CCYY-MM-DDCCYY-MM-DDCCYY-MM-DDCCYY-MM-DD]をデフォルト設定のままにしておきます。このフィールドを使えば、DB2テーブルから取り出したり書き込んだりする DATEフィールドのフォーマットをプロジェクトレベルで指定できます。この日付フォーマットはジョブレベルで無効にできますが、これについては後述の課題で説明します。

9. [ 拡張[ 拡張[ 拡張[ 拡張 decimaldecimaldecimaldecimal サポートサポートサポートサポート ] チェッ クボッ クスを選択して、 [ 大大大大decimal サイズdecimal サイズdecimal サイズdecimal サイズ ] フ ィールドに 31 を入力する と、 DataStage は 31 までの長さの 10 進数の列をサポートできるよ うにな り ます。 デフォルトの 大サイズは 18 です。

10. 次の [ 式のセマンティ ッ クチェ ッ クを実行式のセマンティ ッ クチェ ッ クを実行式のセマンティ ッ クチェ ッ クを実行式のセマンティ ッ クチェ ッ クを実行 ] および [ 使用可能メ タ使用可能メ タ使用可能メ タ使用可能メ タデータを生成データを生成データを生成データを生成 ] の 2 つのチェッ クボッ クスに注目して ください。初のオプシ ョ ンは、 メ インフレーム式エディ タでのセマンティ ッ クチェ ッ クを有効にします。 2 番目のオプシ ョ ンは、 メ インフレームジ ョブの処理ステップに関する メ タデータをキャプチャします。 メタデータはその後で MetaStage において使用されます。 これらのオプシ ョ ンはどちら も、 プロジェク ト レベルまたはジ ョブレベルで選択できます。 こ こではデフォルト設定を使用します。 これらのオプシ ョ ンの詳細については、 この演習の後の方で学習します。

11. [OKOKOKOK] ボタンをク リ ッ ク します。 [DataStage プロジェク ト管理DataStage プロジェク ト管理DataStage プロジェク ト管理DataStage プロジェク ト管理 ] ダイアログボッ クスに戻るので、 [ 閉じる閉じる閉じる閉じる ] をク リ ッ ク して DataStage アド ミ ニス ト レータを終了します。

まとめまとめまとめまとめこの章では、 DataStage アド ミ ニス ト レータにログオンし、 プロジェクト を選択し、 プロジェク トプロパティ を定義しました。 ジ ョブの設計、コード生成とジ ョブアップロードで使われる メ インフレームデフォルトプロジェク トの設定値について学びました。

次に、 DataStage マネージャを使ってメ インフレームのテーブル定義をインポート します。

2-6 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 37: Datastage_8Mainframe Job Tutorial

3テーブル定義のイン

ポート

DataStage ジ ョブの設計前に、 メ インフレームのデータソースのメ タデータを作成する必要があ り ます。 DataStage でメ タデータを作成するには 2 つの方法があ り ます。

・ テーブル定義をインポートする・ 手作業でテーブル定義を入力する

この章では、 素早く起動できるよ うに、 テーブル定義のインポート を重点的に取り上げます。 DataStage マネージャでは、 COBOL ファ イル定義(CFDs)、 DB2 DCLGen ファ イル、 アセンブラファ イル定義、 PL/I ファ イル定義、 Teradata テーブル、 および IMS 定義から、 メ タデータをインポートできます。

サンプル CFD ファ イル、 DCLGen ファ イル、 および IMS ファ イルが、チュート リ アルに付属しています。 Exercise 2 では、CFD と DB2 DCLGenファ イルを DataStage リ ポジ ト リにインポートする方法を示します。DataStage マネージャを起動し、 このツールの機能について学んでいただきます。 Exercise2 の 初の部分では、 インポートプロセスについて順を追って説明します。 後続の部分では、 詳しい説明を省いてあるので、習得したこ とをテス ト してみてください。 チュート リ アルでのちほどIMS データを扱います。

DataStage マネージャDataStage マネージャDataStage マネージャDataStage マネージャメ インフレームジ ョブでは、 以下の処理で DataStage マネージャを使います。

・ リ ポジ ト リの内容を参照、 編集する。

テーブル定義のインポート 3-1

Page 38: Datastage_8Mainframe Job Tutorial

・ リ ポジ ト リにある項目の相互関係について報告する。・ テーブル定義をインポートする。・ 手操作でテーブル定義を作成する。・ メ インフレームルーチン定義を作成、 管理する。・ マシンプロファ イルを作成、 管理する。・ JCLテンプレートを参照、編集する。・ DataStage コンポーネン ト をエクスポートする。

DataStage マネージャの特長については 『DataStage マネージャ ガイ ド』を参照して ください。

DataStage マネージャを起動するDataStage マネージャを起動するDataStage マネージャを起動するDataStage マネージャを起動する

[ スタートスタートスタートスタート ] → [ プログラムプログラムプログラムプログラム ] → [ Ascential DataStageAscential DataStageAscential DataStageAscential DataStage] → [ DataStage マDataStage マDataStage マDataStage マネージャネージャネージャネージャ ] を選択して、 DataStage マネージャを起動します。 [ プロジェプロジェプロジェプロジェク トへ接続ク トへ接続ク トへ接続ク トへ接続 ] ダイアログボッ クスが表示されます。 自分のログオン情報を入力してプロジェク ト名を選択するこ とで、 プロジェク トに接続します。 この手順については、 2-2 ページを参照して ください。

プロジェク トに接続する と、 以下の DataStage マネージャウ ィンド ウが表示されます。

3-2 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 39: Datastage_8Mainframe Job Tutorial

DataStage マネージャウィンドウDataStage マネージャウィンドウDataStage マネージャウィンドウDataStage マネージャウィンドウ

DataStage マネージャウ ィンド ウには 2 つのペインがあ り ます。 左のペインはプロジェク ト ツ リーを示すものであ り、 右のペインは表示領域です。 プルダウン メニューやシ ョート カッ ト メニューなど、 このウ ィ ンドウの詳細については、 『DataStage マネージャ ガイ ド』 を参照して ください。

ツールバーツールバーツールバーツールバー

マネージャのツールバーには以下のボタンがあ り ます。

ツールバーのどれかのボタンにカーソルを置けば、 そのボタンの説明が表示されます。

プロジェク ト ツリープロジェク ト ツリープロジェク ト ツリープロジェク ト ツリー

プロジェク ト ツ リーには、 プロジェク トの内容をま とめたものがあ り ます。 これは、 下記に示す主要なブランチに分割されています。

・ データ要素データ要素データ要素データ要素。 カテゴリは、ビルトインデータ要素および追加定義されたデータ要素用に存在します。サーバージ ョブだけで使われるブランチです。

・ IMS データベース (DBDs)IMS データベース (DBDs)IMS データベース (DBDs)IMS データベース (DBDs)。 このブランチは、 インポート した IMSデータベースをすべて格納しています。 これは、 IMS ソースの実施権を持つ場合にのみ表示されます。

・ IMS 表示設定 (PSBs/PCBs)IMS 表示設定 (PSBs/PCBs)IMS 表示設定 (PSBs/PCBs)IMS 表示設定 (PSBs/PCBs)。 このブランチは、 インポート した IMSビューセッ ト をすべて格納しています。 これは、 IMS ソースの実施権を持つ場合にのみ表示されます。

・ ジ ョブジ ョブジ ョブジ ョブ。 プロジェク トのジ ョブの各グループごとにカテゴ リがあり ます。

新規データ要素 新規マシンプロファイル新規ルーチン新規テーブル定義

コピー 削除

プロパティ

大アイコン

小アイコン

リスト

詳細

レポーティングアシスタント

使用状況分析

ヘルプトピック

1 つ上のレベルへ

ホスト表示

拡張ジョブビュー

テーブル定義のインポート 3-3

Page 40: Datastage_8Mainframe Job Tutorial

・ マシンプロファイルマシンプロファイルマシンプロファイルマシンプロファイル。ジョブのアップロードおよび FTPステージで使われるメインフレームマシンプロファイルの入っているブランチです。

・ ルーチンルーチンルーチンルーチン。 カテゴ リは、 ビルト インルーチン、 および外部ソースおよびターゲッ トルーチンを含む、 追加定義されたルーチン用に存在します。

・ 共用コンテナ 共用コンテナ 共用コンテナ 共用コンテナ サーバージョブ専用です。

・ ステージタイプステージタイプステージタイプステージタイプ。 作成またはインポートするプラグインは、 このブランチの下のカテゴ リに格納されます。 .

・ テーブル定義テーブル定義テーブル定義テーブル定義。 テーブル定義はデータソースに応じて格納されます。 テーブル定義またはファイル定義をインポートする場合、データソース種別 (COBOL FD や DB2 DCLgen など) の下でカテゴ リが作成されます。 この処理については、 後でこの章のエクササイズをする と きに説明します。 手操作でテーブル定義またはファイル定義を入力する場合、 [ テーブル定義テーブル定義テーブル定義テーブル定義 ] ブランチの下で任意の場所に新しいカテゴ リ を作成できます。

・ ト ランスフォームト ランスフォームト ランスフォームト ランスフォーム。 サーバージョブにだけ適用されます。ビルトイン ト ランスフォームのブランチがあ り、 作成されたカスタム トランスフォームの各グループごとにもブランチがあ り ます。

注意 :注意 :注意 :注意 : ツールバーで [ホストビューホストビューホストビューホストビュー ]を選択すると、現在アタッチされているプロジェクトのカテゴリだけではなく、サーバー上のすべてのプロジェクトを見ることができます。[拡張ジョブビュー拡張ジョブビュー拡張ジョブビュー拡張ジョブビュー ]を選択すると、ジョブ内にあるすべてのコンポーネントとその他の補助情報を見ることができます。詳細については、『DataStageマネージャ ガイド』を参照してください。

表示領域表示領域表示領域表示領域

マネージャウィンドウの右ペインの表示エリアはプロジェクトビューとして知られています。このエリアには、プロジェクトツリーで選択されたブランチの内容が表示されます。表示領域で項目を表示するには、 以下に示す 4 つの方法があ り ます。

・ 大アイコン大アイコン大アイコン大アイコン。 項目は大きいアイコンと して表示領域全体で表示されます。

・ 小アイコン小アイコン小アイコン小アイコン。 項目は小さいアイコンと して表示領域全体で表示されます .

・ リ ス トリ ス トリ ス トリ ス ト 。 項目は表示領域で縦に並んで表示されます。

3-4 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 41: Datastage_8Mainframe Job Tutorial

・ 詳細詳細詳細詳細。 項目は名前名前名前名前、 説明説明説明説明、 更新日時更新日時更新日時更新日時の欄から成るテーブルで表示されます

Exercise2 : メ インフレームテーブル定義をインポーExercise2 : メ インフレームテーブル定義をインポーExercise2 : メ インフレームテーブル定義をインポーExercise2 : メ インフレームテーブル定義をインポートするトするトするトする

このエクササイズでは、 テーブル定義 (メ タデータ) を CFD ファ イルと DCLGen ファ イルの各サンプルから リポジ ト リにインポート します。これらのファ イルは、 チュート リ アル CD に入っています。 始める前に、CD を CD-ROM にセッ ト して ください。

CDF ファイルをインポートするCDF ファイルをインポートするCDF ファイルをインポートするCDF ファイルをインポートする

初に、 ProductsCustomer.cfd ファ イルおよび Salesord.cfd ファ イルにあるテーブル定義をインポート します。 各 CFD ファ イルは、 複数のテーブル定義を収めるこ とができます。 後の章では、 こ こで学んだこ とを生かしてほかの CFD をインポート します。

CFDファイルのインポート手順を次に示します。

1. DataStage マネージャから [ インポートインポートインポートインポート ] → [ テーブル定義テーブル定義テーブル定義テーブル定義 ] → [ COBOL ファ イル定義COBOL ファ イル定義COBOL ファ イル定義COBOL ファ イル定義 ............] を選択します。 以下の [ メ タデータのインメ タデータのインメ タデータのインメ タデータのインポート (CFD)ポート (CFD)ポート (CFD)ポート (CFD)] ダイアログボッ クスが表示されます。

テーブル定義のインポート 3-5

Page 42: Datastage_8Mainframe Job Tutorial

2. [COBOL 定義ファ イルのパス名COBOL 定義ファ イルのパス名COBOL 定義ファ イルのパス名COBOL 定義ファ イルのパス名 ] フ ィールドの隣にあるブラウズ(...) ボタンをク リ ッ ク して、 チュート リ アル CD のProductsCustomers.cfd ファ イルを選択します。 ファ イル内のテーブルの名前が [ テーブルテーブルテーブルテーブル ] リ ス ト で自動的に表示されます。 これは、それぞれの COBOL 01 レベルで見つかった名前です。

3. [ 開始位置開始位置開始位置開始位置 ] フ ィールドはデフォルトの設定のままにしておいてください。 これで DataStage は、 COBOL テーブル定義の始ま り を示す01 レベルを見つけます。

4. [ プラ ッ ト フォームタイププラ ッ ト フォームタイププラ ッ ト フォームタイププラ ッ ト フォームタイプ ] フ ィールドに注目して ください。 これは、 メ インフレームプラ ッ ト フォームのオペレーティングシステムです。

5. [ 列コ メン ト結合列コ メン ト結合列コ メン ト結合列コ メン ト結合 ] オプシ ョ ンに注目して ください。 このオプシ ョ ンは、 CFD ファ イル内のコ メン ト行を、 その次の列 (デフォル ト ) に対応付けるか、 前の列に対応付けるかを指定します。 デフォルトの設定を使用します。

6. [ インポート先カテゴ リインポート先カテゴ リインポート先カテゴ リインポート先カテゴ リ ] フ ィールドをク リ ッ ク して、 [ カテゴ リ をカテゴ リ をカテゴ リ をカテゴ リ を選択選択選択選択 ] ダイアログボッ クスを開きます。 [ 現在のカテゴ リ現在のカテゴ リ現在のカテゴ リ現在のカテゴ リ ] フ ィールドでデフォルトのカテゴ リが表示されます。 COBOL FDCOBOL FDCOBOL FDCOBOL FD¥¥¥¥SalesSalesSalesSales と タイプ入力してこのデフォルト を置き換えます。

[OKOKOKOK] ボタンをク リ ッ ク して、 [ メ タデータのインポート (CFD)メ タデータのインポート (CFD)メ タデータのインポート (CFD)メ タデータのインポート (CFD)] ダイアログボッ クスに戻り ます。

7. [ すべて選択すべて選択すべて選択すべて選択 ] ボタンをク リ ッ ク して [ テーブルテーブルテーブルテーブル ] リ ス ト の全ファイルを選択してから、 [ インポートインポートインポートインポート ] ボタンをク リ ッ ク します。

3-6 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 43: Datastage_8Mainframe Job Tutorial

DataStage がメ タデータをインポート し、 リポジ ト リにテーブル定義を自動的に作成してくれます。

8. インポート した 4 つの各テーブル定義を見てみまし ょ う。

DataStage は以下のよ うにプロジェク ト ツ リーを展開して、 [ テーブテーブテーブテーブル定義ル定義ル定義ル定義 ] [COBOL FDCOBOL FDCOBOL FDCOBOL FD] から [SalesSalesSalesSales] ブランチを表示しています。

9. CUST_ADDRESS テーブルをダブルク リ ッ ク して、 [ テーブル定義テーブル定義テーブル定義テーブル定義 ]ダイアログボッ クスを表示させます。 このダイアログボッ クスには大で 5 種類のページがあ り ますが、 メ インフレームジ ョブでは [

全般全般全般全般 ] ページと [ 列列列列 ] ページだけが利用できます。 [ 全般全般全般全般 ] ページに表示されるフ ィールドに目を通して ください。 これらのフ ィールドについて知りたければ、 [ ヘルプヘルプヘルプヘルプ ] をク リ ッ ク します。

10. [ 列列列列 ] ページをク リ ッ ク して、 列定義を表示します。

11. 列グ リ ッ ドを右ク リ ッ ク し、 シ ョート カッ ト メニューで [ 行を編集行を編集行を編集行を編集............] を選択します。 以下の [ 列メ タデータ編集列メ タデータ編集列メ タデータ編集列メ タデータ編集 ] ダイアログボッ クスが表示されます。

テーブル定義のインポート 3-7

Page 44: Datastage_8Mainframe Job Tutorial

このダイアログボッ クスの上部は、 DataStage 表示の列を示しています。 [COBOLCOBOLCOBOLCOBOL] タブをク リ ッ クすれば、 COBOL 表示の列を見るこ とができます。 ただし、 このダイアログボッ クスはデータソースで異なり ます。

12. [ 閉じる閉じる閉じる閉じる ] ボタンをク リ ッ ク してから、 [OKOKOKOK] ボタンをク リ ッ ク します。 [ テーブル定義テーブル定義テーブル定義テーブル定義 ] ダイアログボッ クスが閉じます。

この操作を繰り返して、 CUSTOMER および PRODUCTS のテーブル定義を調べてください。

13. 前に説明した手順で、 Salesord.cfd ファ イルから SALES_ORDERSテーブル定義をインポート します。 定義情報を COBOL FD\SalesCOBOL FD\SalesCOBOL FD\SalesCOBOL FD\Sales カテゴ リに保存します。 [ メ タデータのインポート (CFD)メ タデータのインポート (CFD)メ タデータのインポート (CFD)メ タデータのインポート (CFD)] ダイアログボッ クスの [ 詳細詳細詳細詳細 ] ボタンをク リ ッ ク して、 インポート前のファイル内容を調べてください。

これで、 2 つの CFD ソースに対する メ タデータの定義が終わり ました。

3-8 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 45: Datastage_8Mainframe Job Tutorial

DCLGen ファイルをインポートするDCLGen ファイルをインポートするDCLGen ファイルをインポートするDCLGen ファイルをインポートする

次に、 Salesrep.dfd および Saleterr.dfd ファ イルのテーブル定義をインポート します。 各 DCLGen ファ イルには 1つのテーブル定義しかあ り ません。

DCLGen ファ イルのインポート手順を次に示します。

1. DataStage マネージャから [ インポートインポートインポートインポート ] → [ テーブル定義テーブル定義テーブル定義テーブル定義 ] → [ DCLGen ファ イル定義 ...DCLGen ファ イル定義 ...DCLGen ファ イル定義 ...DCLGen ファ イル定義 ...] を選択します。 以下の [ メ タデータのインメ タデータのインメ タデータのインメ タデータのインポート (DCLGen)ポート (DCLGen)ポート (DCLGen)ポート (DCLGen)] ダイアログボッ クスが表示されます。

2. [DCLGen パス名DCLGen パス名DCLGen パス名DCLGen パス名 ] フ ィールドで、 チュート リ アル CD の Salesrep.dfd ファ イルを見つけます。

3. [ 開始位置開始位置開始位置開始位置 ] フ ィールドのデフォルト設定値はそのままにしておきます。 これは、 DCLGen ファ イルで EXEC SQL DECLARE 文の始まる位置を示しています。

4. [ インポート先カテゴ リインポート先カテゴ リインポート先カテゴ リインポート先カテゴ リ ] フ ィールドで、 DB2 Dclgen の下に置くSales サブカテゴ リ を作成します。

5. [ テーブルテーブルテーブルテーブル ] リ ス トの SALESREP をク リ ッ ク してから、 [ インポートインポートインポートインポート] をク リ ッ ク します。

6. Saleterr.dfd ファ イルに対して手順 1 ~ 4 を繰り返します。

7. SALESREP および SALESTERR のテーブル定義を開き、 列定義を調べます。

これで、 DB2 ソースに対する メ タデータの定義が終わり ました。

テーブル定義のインポート 3-9

Page 46: Datastage_8Mainframe Job Tutorial

まとめまとめまとめまとめこの章では、 メ インフレームデータソースから DataStage リ ポジ ト リにメ タデータをインポートする方法の基礎について学びました。 インポート したものは、 CFD ファ イルと DCLGen ファ イルのテーブル定義です。

次に、 DataStage デザイナでメ インフレームジ ョブを作成する方法を説明します。

3-10 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 47: Datastage_8Mainframe Job Tutorial

4メインフレームジ ョブ

の設計

この章では、 DataStage デザイナでメ インフレームジ ョブを設計する方法について説明します。 こ こでは、 フラ ッ ト ファ イルからデータを抽出し、 変換し、 フラ ッ ト ファ イルにロードする という簡単なジ ョブを作成します。 この章では、 個々のステージエディ タの機能を理解するこ とで、 DataStage デザイナの特長に慣れるこ との方に重点を置いています。メ インフレームステージエディ タについての詳しい説明は、 後の章を参照して ください。

Exercise3 では、 メ インフレームジ ョブの DataStage デザイナオプシ ョ ンの指定方法について学びます。 Exercise4 では、 以下のステージから成るジ ョブを作成します。

・ ソースファ イルからデータを抽出する固定幅フラ ッ ト ファ イルソースステージ

・ 入力列と出力列を リ ンクする ト ランスフォーマステージ

・ ターゲッ ト ファ イルにデータを書き込む固定幅フラ ッ ト ファ イルターゲッ ト ステージ

このジ ョブを設計する と き、 各ステージの構成を確認します。 DataStageデザイナでジ ョブの構造を作成してから、 ジ ョブに特定のファ イルをバインドする作業がいかに簡単であるかがわかり ます。 後に、 このジ ョブのコードを生成します。

このジ ョブは非常に基本的なものですが、 DataStage の概要を理解する上で非常に役立ちます。 このチュート リ アルの後半では、 この章で学んだこ とを生かして、 もっ と高度なジ ョブを作成します。

メ インフレームジ ョ ブの設計 4-1

Page 48: Datastage_8Mainframe Job Tutorial

DataStage デザイナDataStage デザイナDataStage デザイナDataStage デザイナDataStage デザイナを使ってジ ョブを設計する場合、 データソースからターゲッ トのデータウェアハウスまでのデータの流れをモデル化してデータを変換する、 ビジュアルな設計を作成します。 デザイナのグラフ ィカルインタフェースで、 ステージアイコンを選択し、 デザイナキャンバスにド ロ ップし、 リ ンクを張るこ とができます。 次に、 個々のステージエディ タを使って、 各ステージと各リ ンクで必要なアクシ ョ ンとプロセスを定義します。 後にコードを生成します。

大部分の課題を始める前に、DataStageデザイナを実行してデザイナウィンドウのことをよく知っておく必要があります。このチュート リ アルでは、 少なく と もエクササイズする上で情報不足とならないよ うに、DataStage デザイナの主な特長などについて説明します。 詳し くは、『DataStage デザイナ ガイ ド』 を参照して ください。

DataStage デザイナを起動するDataStage デザイナを起動するDataStage デザイナを起動するDataStage デザイナを起動する

[ ツールツールツールツール ] メニューを使えば、 DataStage マネージャ と DataStage デザイナの間で切り替えるこ とができます。 一番最後の課題からマネジャが開いたままならば、[ツールツールツールツール ] → [デザイナの実行デザイナの実行デザイナの実行デザイナの実行 ]を選択してデザイナを起動してください。前回のプロジェク ト とはまだ接続された状態です。

マネージャが閉じている と きは、 [ スタートスタートスタートスタート ] → [ プログラムプログラムプログラムプログラム ] →[Ascential DataStageAscential DataStageAscential DataStageAscential DataStage] → [ DataStage デザイナDataStage デザイナDataStage デザイナDataStage デザイナ ] を選択してデザイナを起動します。 [ プロジェク トへ接続プロジェク トへ接続プロジェク トへ接続プロジェク トへ接続 ] ダイアログボッ クスが表示されるので、自分のログオン情報を入力するこ とでプロジェク トに接続します。

DataStage デザイナウ ィ ンド ウが表示されます。 新規にメ インフレームジ ョブを作成するには、 デザイナメニューから [ ファ イルファ イルファ イルファ イル ] → [ 新規新規新規新規 ] を選択します。 する と次の [ 新規新規新規新規 ] ダイアログボッ クスが表示されます。

4-2 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 49: Datastage_8Mainframe Job Tutorial

新規のメ インフレームジ ョブを作成するには、 [ 新規サーバージ ョブ新規サーバージ ョブ新規サーバージ ョブ新規サーバージ ョブ ]を選択して [OKOKOKOK] をク リ ッ ク します。

ダイアグラムウ ィンド ウはデザイナの右ペインに現れ、 メ インフレームジ ョブのツールパレッ トは左下ペインで利用できるよ うにな り ます。

メ インフレームジ ョ ブの設計 4-3

Page 50: Datastage_8Mainframe Job Tutorial

DataStage デザイナウィンドウDataStage デザイナウィンドウDataStage デザイナウィンドウDataStage デザイナウィンドウ

DataStageデザイナウィンドウは 3 つのペインに分割されており、プロパティブラウザ、リポジトリ、および複数のジョブを 1つのウィンドウ内に表示できます。このウィンドウは、ペインを 1 つ、2 つ、または 3つ全部表示するようにカスタマイズできます。ウィンドウ内の別々の位置にペインをドラッグ&ドロップできますし、分割バーを使って、各ペインを互いに関連させてサイズ変更できます。

ダイアグラムペインでジョブを設計したり、ツールパレットからジョブコンポーネントを選択したりできます。ダイアグラムペインのグリッド線を使えば、ステージを正確に位置づけできます。デザイナウ ィンド ウの一番下にあるステータスバーには、 ウ ィンド ウコンポーネン トのオンラインヘルプと、 ジ ョブ処理の現状が表示されます。

プルダウン メニューやシ ョート カッ ト メニューの機能など、 デザイナウ ィンド ウの詳細については、 『DataStage デザイナ ガイ ド』 を参照してください。

ツールバーツールバーツールバーツールバー

以下に示すデザイナツールバーのボタンがメインフレームジョブ用に使えます。

ツールバーのボタンにカーソルを合わせる と、 そのボタンの機能について短い説明が表示されます。 ステータスバーでは、 さ らに詳しい説明が表示されます。

デフォルトでは、 ツールバーはメニューバーの下に表示されます。 ツールバーは画面上のどこにでも ド ラ ッグ&ド ロ ップできます。 ツールバー

グリッドに合わせる

ヘルプ

ジョブを保存

ジョブプロパティ新規

ジョブ

コード生成

グリッド線 注釈の

切り替え

印刷ズームアウト

ズームイン

ジョブを開く

新規ジョブの種類

現在のジョブをすべて保存

リンクマーカー

切り取り コピー 貼り付け 取り消し

やり直し

4-4 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 51: Datastage_8Mainframe Job Tutorial

をデザイナウ ィンド ウの枠に移動する と、 ツールバーはウ ィ ンド ウの片側に貼り付けられます。

ツールパレッ トツールパレッ トツールパレッ トツールパレッ ト

ツールパレッ トには、 ジ ョブ設計に追加可能なコンポーネン トに対応するボタンが含まれています。 サーバージ ョブ、 メ インフレームジ ョブ、パラレルジ ョブ、 およびジ ョブシーケンスには、 それぞれ別個のツールパレッ トがあ り ます。 表示されるパレッ トは、 現在デザイナでアクティブになっているジ ョブのタイプによって異な り ます。 ツールパレッ トは自分の必要に合わせて、 ボタンの追加や削除、 グループの作成、 削除、名前の変更、 またアイコンサイズの変更や、 新しいシ ョート カッ トの作成によって、 カスタマイズできます。 また、 自分の設定をプロジェク トデフォルト と して保存できます。 パレッ トのカスタマイズの詳細については、 『DataStage デザイナ ガイ ド』 を参照して ください。

パレッ トは [ ダイアグラム ] ウ ィ ンド ウ内にあ り ますが、 これを画面上の任意の場所にド ラ ッグアンド ド ロ ップできます。 サイズを変更すること も可能です。 ツールチップスを表示させるには、 カーソルをツールパレッ トの中に置いた状態にしておきます。 する と、 ステータスバーでもボタンの機能の説明を表示します。

メ インフレームジ ョ ブの設計 4-5

Page 52: Datastage_8Mainframe Job Tutorial

デフォルトでは、 メ インフレームジ ョブのツールパレッ トは、 次のボタンを含む4つのグループに分かれます。

4-6 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 53: Datastage_8Mainframe Job Tutorial

次のボタンは、 メ インフレームジ ョブで利用可能な、 ファ イル、 データベース、 処理ステージタイプを表しています。

・アグ リゲータアグ リゲータアグ リゲータアグ リゲータ。 入力データをグループ化し、 合計関数やその他の要約関数を実行し、 得られたデータをジ ョブの別のステージに渡します。 これはアクティブステージです。

・ビジネスルールビジネスルールビジネスルールビジネスルール。 複雑なデータ変換を実行する SQL ビジネスルールロジッ クを適用します。 これはアクティブステージです。

・コンプレッ クスフラ ッ ト ファイルコンプレッ クスフラ ッ ト ファイルコンプレッ クスフラ ッ ト ファイルコンプレッ クスフラ ッ ト ファイル。 コンプレッ クスフラ ッ トファ イルのデータ構造体からデータを読み取り ます。 これはパッシブステージです。

・DB2 ロードレディフラ ッ ト ファ イルDB2 ロードレディフラ ッ ト ファ イルDB2 ロードレディフラ ッ ト ファ イルDB2 ロードレディフラ ッ ト ファ イル。 DB2 バルクローダ機能に適したフォーマッ トの順ファイルにデータを書き込みます。 これはパッシブステージです。

・区切り文字付きフラ ッ ト ファイル区切り文字付きフラ ッ ト ファイル区切り文字付きフラ ッ ト ファイル区切り文字付きフラ ッ ト ファイル。 区切り文字付きフラ ッ トファ イルからデータを読み取ったり、 このファイルにデータを書き込みます。 これはパッシブステージです。

・外部ルーチン外部ルーチン外部ルーチン外部ルーチン。 入力行に対する外部 COBOL ルーチンの呼び出しを定義し、 得られたデータをジ ョブの別のステージに渡します。 これはアクティブステージです。

・外部ソース外部ソース外部ソース外部ソース。 ユーザー定義プログラムへの呼び出しを定義する と外部ソースからデータを読み取り ます。 これはパッシブステージです。

・外部ターゲット外部ターゲット外部ターゲット外部ターゲット ユーザー作成プログラムへの呼び出しを定義すると、外部ターゲットにデータを書き込みます。これは受動ステージです。

・固定幅フラ ッ ト ファイル固定幅フラ ッ ト ファイル固定幅フラ ッ ト ファイル固定幅フラ ッ ト ファイル . シンプルフラ ッ ト ファ イルからリードまたはシンプルフラ ッ ト ファ イルへロードするステージです。 このステージは、 パッシブステージです。

・FTPFTPFTPFTP。 ファ イルを別のマシンに転送します。 これはパッシブステージです。

メ インフレームジ ョ ブの設計 4-7

Page 54: Datastage_8Mainframe Job Tutorial

・IMSIMSIMSIMS。 IMS データベースからデータを読み出します。 これはパッシブステージです。

・ジ ョ インジ ョ インジ ョ インジ ョ イン。 2 つの入力データス ト リームをジ ョ インし、 その結果をジ ョブの別のステージに渡します。 これはアクティブステージです。

・ リ ンクコレクタリ ンクコレクタリ ンクコレクタリ ンクコレクタ。 複数の入力リ ンクからのデータを結合して、1つの出力リ ンクに渡します。 これはアクティブステージです。

・ルッ クアップルッ クアップルッ クアップルッ クアップ。 テーブルルッ クアップでデータをマージし、その結果をジ ョブの別のステージに渡します。 これはアクティブステージです。

・マルチフォーマットフラットファイルマルチフォーマットフラットファイルマルチフォーマットフラットファイルマルチフォーマットフラットファイル 複数のレコードタイプが入っているファイルからデータをリードします。これはパッシブステージです。

・ リ レーシ ョナルリ レーシ ョナルリ レーシ ョナルリ レーシ ョナル。 OS/390 プラ ッ ト フォームの DB2 テーブルでデータのリード / ロードをします。 これはパッシブステージです。

・ソートソートソートソート。 昇順または降順の列値で入力データをソート し、 その結果をジ ョブの別のステージに渡します。 これはアクティブステージです。

・・・・Teradata エクスポートTeradata エクスポートTeradata エクスポートTeradata エクスポート。 Teradata FastExport ユーティ リティを使って、 OS/390 プラ ッ ト フォームの Teradata データベーステーブルからデータを読み取り ます。 これはパッシブステージです。

・・・・Teradata ロードTeradata ロードTeradata ロードTeradata ロード。 Teradata ロードユーティ リティで使用するために、 互換性のあるフォーマッ トでシーケンシャルファイルにデータを書き込みます。 これはパッシブステージです。

4-8 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 55: Datastage_8Mainframe Job Tutorial

・・・・Teradata リ レーシ ョナルTeradata リ レーシ ョナルTeradata リ レーシ ョナルTeradata リ レーシ ョナル。 OS/390 プラ ッ ト フォームのTeradata データベーステーブルからデータを読み取ったり、このテーブルにデータを書き込みます。 これはパッシブステージです。

・ ト ランスフォーマト ランスフォーマト ランスフォーマト ランスフォーマ。 入力データをフ ィルタ リ ングして変換し、その結果をジ ョブの別のステージに渡します。 これはアクティブステージです。

ツールパレッ トの全般グループには、 3 つの追加的なアイコンがあ り ます。

・注釈注釈注釈注釈。 ジ ョブ内のステージまたはリ ンクを説明するために入力した注釈を格納しています。

・説明注釈説明注釈説明注釈説明注釈。 ジ ョブプロパティから取り出した説明 (略記または全て) を表示します。 必要であれば注釈の中でこれを編集ができます。 ジ ョブごとに 1つのみです。

・ リ ンクリ ンクリ ンクリ ンク。 ジ ョブ内のステージを結合します。

Exercise3 : デザイナオプシ ョ ンを指定するExercise3 : デザイナオプシ ョ ンを指定するExercise3 : デザイナオプシ ョ ンを指定するExercise3 : デザイナオプシ ョ ンを指定するジ ョブを設計する前に、 すべてのメ インフレームジ ョブに適用されるデザイナオプシ ョ ンのデフォルト を指定します。 その他のデザイナのデフォルト を設定する方法については、 『DataStage デザイナ ガイ ド』 を参照して ください。

メ インフレームジ ョブのデザイナのデフォルト を設定する手順を次に示します。

1. デザイナメニューで [ ツールツールツールツール ] → [ オプシ ョ ンオプシ ョ ンオプシ ョ ンオプシ ョ ン ] を選択します。 以下の [ オプシ ョ ンオプシ ョ ンオプシ ョ ンオプシ ョ ン ] ダイアログボッ クスが表示されます。 このダイアログボッ クスには左のペインに 8 つのブランチを持つツ リーがあ ります。 それぞれのブランチにデザイナの個々の領域の設定が含まれています。

2. [ デフォルトデフォルトデフォルトデフォルト ] ブランチを選択して、 デザイナの起動時の動作を指定します。 [ デザイナ開始時デザイナ開始時デザイナ開始時デザイナ開始時 ] 領域で、 [ 新規新規新規新規 ] をク リ ッ ク し、 ド ロ ップダウン リ ス トから [ メ インフレームメ インフレームメ インフレームメ インフレーム ] を選択します。 今後、 デザイナを起動するたびに、 新しい空のメ インフレームジ ョブが自動的に作成されます。

メ インフレームジ ョ ブの設計 4-9

Page 56: Datastage_8Mainframe Job Tutorial

3. [ デフォルトデフォルトデフォル トデフォルト ] ブランチの [ メ インフレームメ インフレームメ インフレームメ インフレーム ] ページを選択します。

a. [デフォルトデフォルトデフォルトデフォルト ]オプション下の [メインフレームメインフレームメインフレームメインフレーム ]ブランチを選択し、[作成されたコードのためのベース位置作成されたコードのためのベース位置作成されたコードのためのベース位置作成されたコードのためのベース位置 ]フィールドに注目してください。これは、 作成されたメ インフレームジ ョブのコード と JCL のファイルが DataStage ク ラ イアン トで保存される場所です。 デフォルトでは、 C:¥Program Files¥Ascential¥DataStage です。 こ こで指定するルートは作成されたファイルの絶対パスの一部とな り ます。 これについては、後でコードを生成する と きにも触れるこ とにします。

b. [ ソースビューワーソースビューワーソースビューワーソースビューワー ] フ ィールドを使って、 DataStage 生成コードを参照する と きに使う アプリ ケーシ ョ ンを指定できます。Windows Notepad のデフォルト設定のまま使って ください。

c. デフォルトで [ 列プッシュオプシ ョ ン列プッシュオプシ ョ ン列プッシュオプシ ョ ン列プッシュオプシ ョ ン ] チェッ クボッ クスが選択されているこ とに注意して ください。 すなわち、 メ インフレームソースステージにロード されたすべての列が自動的に選択され、 出力リ ンクに送られるため、 [ 出力出力出力出力 ] ページで手動で列を選択する必要がなくな り ます。 [ ステージステージステージステージ ] ページで必要な情報を定義して、 [OKOKOKOK] をク リ ッ クするだけでかまいません。

同様に、 メ インフレームアクティブステージでも、 [ ステージステージステージステージ ]ページで [OKOKOKOK] をク リ ッ クする と、 入力列が自動的に出力リ ンクにマップされます。 出力列が存在しなければ、 列が作成されてからマッピングが定義されます。

4-10 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 57: Datastage_8Mainframe Job Tutorial

上記のチェ ッ クマークをク リ アする と、 手操作で列の選択とマッピングをするこ とにな り ます。 場合によっては、 そちらの方が都合がよいこ と もあ り ます。

列プッシュオプシ ョ ンは、 IMS ステージ、 マルチフォーマッ トフラ ッ ト ファ イルステージ、 およびト ランスフォーマステージでは機能しません。

4. [ プロンプ トプロンプ トプロンプ トプロンプ ト ] ブランチを選択します。 このページは、 ジ ョブデザイン時にする自動処理を決定します。 また、 変更をしたと きに表示するプロンプ トのレベルも決定します。

5. デフォルトで [ コンパイル前に自動保存コンパイル前に自動保存コンパイル前に自動保存コンパイル前に自動保存 ] が選択されているこ とに注意して ください。 これは、 コード生成前にメ インフレームジ ョブが自動的に保存されるこ とを指定します。

6. [OKOKOKOK] ボタンをク リ ッ ク します。 今までの設定値が保存され、 [ オプオプオプオプシ ョ ンシ ョ ンシ ョ ンシ ョ ン ] ダイアログボッ クスが閉じます。

メ インフレームジ ョ ブの設計 4-11

Page 58: Datastage_8Mainframe Job Tutorial

Exercise4 : メ インフレームジ ョブを作成するExercise4 : メ インフレームジ ョブを作成するExercise4 : メ インフレームジ ョブを作成するExercise4 : メ インフレームジ ョブを作成するこれで、 簡単なメ インフレームジ ョブを作成する準備ができました。 まず、 ステージと リ ンクをダイアグラムエ リ アに与えます。 次に、 それらの名前を変えて、 ジ ョブの流れをわかりやすく します。 後の手順では、 ジ ョブステージを構成します。

ジ ョ ブを設計するジ ョ ブを設計するジ ョ ブを設計するジ ョ ブを設計する

DataStage デザイナでメ インフレームジ ョブを設計する手順を次に示します。

1. 空きのメ インフレームジ ョブに名前を付けて、 そのジ ョブを保存します。

a. [ ファ イルファ イルファ イルファ イル ] → [ 名前を付けて保存名前を付けて保存名前を付けて保存名前を付けて保存 ] を選択します。 以下の [ 新新新新規ジ ョブ作成規ジ ョブ作成規ジ ョブ作成規ジ ョブ作成 ] ダイアログボッ クスが表示されます。

b. [ ジ ョブ名ジ ョブ名ジ ョブ名ジ ョブ名 ] フ ィールドに Exercise4Exercise4Exercise4Exercise4 と入力します。 サーバージ ョブのチュート リ アルを終了しているならば、 ジ ョブ名はすでに Exercise4 となっているはずです。 その場合、 名前の後に“_DS390_DS390_DS390_DS390” を付けてジ ョブを分けておいてください。

c. [ カテゴ リカテゴ リカテゴ リカテゴ リ ] フ ィールドに、 新しいジ ョブを入れるカテゴ リの名前を入力します。 例えば、 TutorialTutorialTutorialTutorial と入力します。

d. [OKOKOKOK] ボタンをク リ ッ ク します。 ジ ョブが作成され、 リポジ ト リに保存されます。

4-12 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 59: Datastage_8Mainframe Job Tutorial

2. ツールパレッ トから新規ジ ョブのコンポーネン ト を選択して、 ダイアグラムエ リ アに入れます。

a. [ 固定幅フラ ッ ト ファ イル固定幅フラ ッ ト ファ イル固定幅フラ ッ ト ファ イル固定幅フラ ッ ト ファ イル ] アイコンをク リ ッ ク してから、 [ ダダダダイアグラムイアグラムイアグラムイアグラム ] ウ ィンド ウの左側でク リ ッ ク して固定幅フラ ッ トファ イルステージを配置します。 アイコンを直接 [ ダイアグラダイアグラダイアグラダイアグラムムムム ] ウ ィンド ウにド ラ ッグするこ と もできます。

b. [ ト ランスフォーマト ランスフォーマト ランスフォーマト ランスフォーマ ] アイコンをク リ ッ クまたはド ラ ッグして、ト ランスフォーマステージを固定幅フラ ッ ト ファ イルステージの右側に配置します。

c. [ 固定幅フラ ッ ト ファ イル固定幅フラ ッ ト ファ イル固定幅フラ ッ ト ファ イル固定幅フラ ッ ト ファ イル ] アイコンをク リ ッ クまたはド ラ ッグして、 固定幅フラ ッ ト ファ イルステージを ト ランスフォーマステージの右側に配置します。

3. 以下のよ うに、 ジ ョブコンポーネン ト間に リ ンクを張って、 ジ ョブでデータの流れを定義します。

a. ツールパレッ トの [ リ ンクリ ンクリ ンクリ ンク ] ボタンをク リ ッ ク します。 マウスボタンを押しながら、 ダイアグラムウ ィンド ウの左側にある固定幅フラ ッ ト ファ イルステージと ト ランスフォーマステージの間をド ラ ッグします。 マウスボタンを離せば、 2 つのステージがリンク されます。

b. 同様に、 ト ランスフォーマステージをダイアグラムウ ィンド ウの右側にある固定幅フラ ッ ト ファ イルステージに リ ンク します。

ダイアグラムウ ィンド ウは次のよ うにな り ます。

メ インフレームジ ョ ブの設計 4-13

Page 60: Datastage_8Mainframe Job Tutorial

ステージ名を変更するステージ名を変更するステージ名を変更するステージ名を変更する

ジ ョブの流れを識別しやすくするには、 ステージと リ ンクの名前を変更します。 こ う した処理は、 列の集ま り を複数扱う よ うな複雑なジ ョブの場合では特に大切です。 すべての列名はリ ンク名で修飾されるので、 意味のある名前が付いていればステージエディ タでの作業は楽にな り ます。

ステージまたはリ ンクの名前を変えるには、 その名前をク リ ッ ク して新しい名前を入力するだけです。 入力を開始する と、 現在の名前にエディ ッ ト ボッ クスが現れ、 入力文字を表示します。 名前では英数字と下線だけ入力できます。 名前を変更したら、 [EnterEnterEnterEnter] を押すか、 または画面のどこかをク リ ッ クする と、 変更後の名前が有効とな り ます。

ステージの名前は、 そのステージエディ タ内でも変更できます。

ジ ョブのステージと リ ンクの名前を変更する手順を次に示します。

1. 一番左側の固定幅フラ ッ ト ファ イルステージ(Fixed_width_Flat_File_0) をク リ ッ ク して Customers と入力します。

2. ソースステージと ト ランスフォーマステージのリ ンクの名前をCustomersOut に変えます。

3. ト ランスフォーマステージの名前を xCustomers に変えます。

4-14 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 61: Datastage_8Mainframe Job Tutorial

4. ト ランスフォーマステージと ターゲッ ト ステージの リ ンクの名前をActiveCustomersOut に変えます。

5. 出力ステージの名前を ActiveCustomers に変えます。

リ ンク名が部分的に隠れている場合、 ステージ間でリ ンク名を中央にド ラ ッグすれば完全に見えるよ うにな り ます。 ダイアグラムウ ィンド ウは次のよ うにな り ます。

注意 :注意 :注意 :注意 : ジョブタイトルの隣に星印(*)がついている場合、そのジョブが、最後に保存された時から変更されたことを示します。

ジ ョ ブステージを構成するジ ョ ブステージを構成するジ ョ ブステージを構成するジ ョ ブステージを構成する

以上でジ ョブの基本的な構造の設計を終えました。 次に、 各ステージを構成します。 その作業は、 各ステージを特定のファイルにバインド し、適切なメ タデータをロード し、 必要なデータ処理を定義するこ とです。

ソースの固定幅フラッ ト フ ァイルステージソースの固定幅フラッ ト フ ァイルステージソースの固定幅フラッ ト フ ァイルステージソースの固定幅フラッ ト フ ァイルステージ

まず、左端のステージから始めます。これは、SLS.CUSTOMERという名前の COBOLファイルからデータを読み出すステージです。

メ インフレームジ ョ ブの設計 4-15

Page 62: Datastage_8Mainframe Job Tutorial

1. Customers 固定幅フラ ッ ト ファ イルステージをダブルク リ ッ ク します。 以下の [Fixed-Width Flat FileFixed-Width Flat FileFixed-Width Flat FileFixed-Width Flat File ステージステージステージステージ ] ダイアログボッ クスが表示されます。

2. [ ファ イル名ファイル名ファイル名ファイル名 ] フ ィールドに SLS.CUSTOMERSLS.CUSTOMERSLS.CUSTOMERSLS.CUSTOMER と入力して、 データを読み出すメ インフレームファ イルを指定します。

3. ファ イルのデータ定義名 (JCL) を指定するために、 [DD 名DD 名DD 名DD 名 ] フ ィールドに CUSTOMERCUSTOMERCUSTOMERCUSTOMER と入力します。

4. [ 終了行終了行終了行終了行 ] 領域で [ 行番号行番号行番号行番号 ] をク リ ッ ク し、 テキス トボッ クスで 3000300030003000と入力します。 初の 3000 件のレコードだけが抽出されます。

5. 以下のよ うに、 DataStage リ ポジ ト リから SLS.CUSTOMER のテーブル定義をロード します。

a. [ 列列列列 ] タブをク リ ッ ク して、 [ 列列列列 ] グ リ ッ ドを表示します。

b. [ ロードロードロードロード ] ボタンをク リ ッ ク します。 [ テーブル定義テーブル定義テーブル定義テーブル定義 ] ダイアログボッ クスが表示されます。

c. [COBOL FDCOBOL FDCOBOL FDCOBOL FD] ブランチの下に Sales という フォルダがあ り ます。これは、 Exercise2 で CFD ファ イルをインポート したと き作成したカテゴ リです。 このフォルダを展開し、 CUSTOMER のテーブル定義を選択します。 [OKOKOKOK] ボタンをク リ ッ ク します。 以下の [列を選択列を選択列を選択列を選択 ] ダイアログボッ クスが表示されます。

4-16 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 63: Datastage_8Mainframe Job Tutorial

デフォルトでは、 [ 選択列選択列選択列選択列 ] リ ス トにはテーブル定義のすべての列があ り ます。 これは、DataStageでは、[ 列列列列 ]タブにロードされた列は、ソースファイルの実際の配置を反映していなければならないからです。すべての列をステージから出力するつもりがない場合でも、DataStageが正確にソースファイルを読み込めるよう、すべての列をロードしなければなりません。

d. [ フィラーを生成フィラーを生成フィラーを生成フィラーを生成 ]チェックボックスを選択します。このオプションを使えば、選択していない一連の列をたたんで適切なサイズの FILLER 列にできます。メインフレームのテーブル定義には数百もの列が入っていることが多いので、これで格納スペースと処理時間を大幅に節約できます。

e. CUSTOMER_ID から DATA_NOT_NEEDED までのすべての列を選択して、 [>>>>] をク リ ッ ク してこれを [ 選択列選択列選択列選択列 ] リ ス トに移動します。

f. [OKOKOKOK]をクリックして列定義をロードし、[ 列を選択列を選択列を選択列を選択 ]ダイアログボックスを閉じます。列メタデータが [列列列列 ]グリッドに表示されます。作成された FILLER列に注目してください。名前が示すように、 バイ ト 178 で始ま り、 バイ ト 277 で終わる FILLER 列が作成されているこ とに注意して ください。

メ インフレームジ ョ ブの設計 4-17

Page 64: Datastage_8Mainframe Job Tutorial

6. [ ファ イル参照ファイル参照ファイル参照ファイル参照 ] をク リ ッ ク して、 列定義の COBOL PICTURE 句とファ イルの正確なス ト レージレイアウ ト を確認します。 このタブの任意の場所で右ク リ ッ ク して [HTML ファ イルと して保存HTML ファ イルと して保存HTML ファ イルと して保存HTML ファ イルと して保存 ] を選択します。 これによって、 ジ ョブのドキュ メン トが作成されます。 このドキュ メン トは後で参照できます。 ファ イルの名前を入力して、 覚えておきやすい場所にこれを保存します。

7. 以下のよ うに、 ステージから出力するデータを指定します。

a. [ 出力出力出力出力 ] ページをク リ ッ ク します。 [ 制約制約制約制約 ] タブがデフォルトで選択されています。 [ 選択選択選択選択 ] タブをク リ ッ ク して、 そのページを一番手前に移動します。

列プッシュオプシ ョ ンがオンとなっているので、 すべての列を出力する場合は、 この手順を省く こ とができます。 ただし、 この場合は列のサブセッ トだけを出力しよ う と しています。

b. [>>>>>>>>] ボタンをク リ ッ ク して、 [ 使用可能な列使用可能な列使用可能な列使用可能な列 ] リ ス トの列をすべて [ 選択した列選択した列選択した列選択した列 ] リ ス ト に移動します。

c. [ 選択した列選択した列選択した列選択した列 ]リストから DATA_NOT_NEEDEDとFILLER_178_277を選択し、[<<<<]をクリックします。これらの列はステージから出力されません。

d. [OKOKOKOK] ボタンをク リ ッ ク して、 [Fixed-Width Flat File ステージFixed-Width Flat File ステージFixed-Width Flat File ステージFixed-Width Flat File ステージ ] ダイアログボッ クスを閉じます。

4-18 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 65: Datastage_8Mainframe Job Tutorial

e. ジ ョブウ ィンド ウでは、 CustomersOut リ ンクに接続された小さいアイコンに注意して ください。 この リ ンクマーカーは、 そのリ ンクでメ タデータが定義されているこ とを示します。 リ ンクマーカーはデフォルトでオンになっていますが、 デザイナツールバーのリ ンクマーカーボタンをク リ ッ クする とオフにできます。

ジ ョブの入力ステージの定義が終わり ました。 デザイナを使えば、 ジ ョブの構造を構築し、 そのジ ョブに特定のファイルをバインドする作業は簡単です。

ターゲッ トの固定幅フラッ ト フ ァイルステージターゲッ トの固定幅フラッ ト フ ァイルステージターゲッ トの固定幅フラッ ト フ ァイルステージターゲッ トの固定幅フラッ ト フ ァイルステージ

次に、 ジ ョブの出力ステージを定義します。

1. ActiveCustomers 固定幅フラ ッ ト ファ イルステージをダブルク リ ッ クします。 [Fixed-Width Flat FileFixed-Width Flat FileFixed-Width Flat FileFixed-Width Flat File ステージステージステージステージ ] ダイアログボッ クスが表示されます。 注意してほしいのは、 このステージのダイアログボッ クスには [ 出力出力出力出力 ] ページがなく、 [ 入力入力入力入力 ] ページしかないこ とです。 このステージはジ ョブの 後のステージなので、 ほかのステージへの出力を持たず、 前のステージから入力を受け付けるだけなのです。

2. 以下のよ うに、 ターゲッ ト ファ イルの名前と書き込みオプシ ョ ンを指定します。

a. [ ファ イル名ファイル名ファイル名ファイル名 ] フ ィールドに SLS.ACTCUSTSLS.ACTCUSTSLS.ACTCUSTSLS.ACTCUST と入力します。

b. [DD 名DD 名DD 名DD 名 ] フ ィールドに ACTCUSTACTCUSTACTCUSTACTCUST と入力します。

c. [ 書き込みオプシ ョ ン書き込みオプシ ョ ン書き込みオプシ ョ ン書き込みオプシ ョ ン ] ド ロ ップダウン リ ス トで [ 既存ファイル既存ファイル既存ファイル既存ファイルを上書きを上書きを上書きを上書き ] を選択します。 その結果、 SLS.ACTCUST とい う既存のファイルのデータに上書きするこ とにな り ます。

3. 入力ステージの場合と同様に、 リポジ ト リからテーブル定義をロードするこ とで ActiveCustomers でデータを定義します。 フ ィールドフォーマッ ト を変えないで ト ランスフォーマステージで簡単なマッピングをするので、 以下のよ うに入力ステージで使われたものと同じ列定義をロードできます。

a. [ 列列列列 ] タブをク リ ッ ク します。

b. [ ロードロードロードロード ] をク リ ッ ク してから、 [ テーブル定義テーブル定義テーブル定義テーブル定義 ] ダイアログボッ クスの [COBOLCOBOLCOBOLCOBOL FDFDFDFD¥¥¥¥SalesSalesSalesSales] ブランチで CUSTOMER を選択し、 [OKOKOKOK] をク リ ッ ク します。

メ インフレームジ ョ ブの設計 4-19

Page 66: Datastage_8Mainframe Job Tutorial

c. DATA_NOT_NEEDEDから MISC_10までの列を [ 列を選択列を選択列を選択列を選択 ]ダイアログボックスの [ 選択列選択列選択列選択列 ]リストから削除し、[OKOKOKOK]をクリックします。

4. [OKOKOKOK] ボタンをク リ ッ ク して、 [ 固定幅フラ ッ ト ファ イルステージ固定幅フラ ッ ト ファ イルステージ固定幅フラ ッ ト ファ イルステージ固定幅フラ ッ ト ファ イルステージ ]ダイアログボッ クスを閉じます。 これで、 ジ ョブの出力ステージの作成が終わり ました。 リ ンクマーカーがジ ョブウ ィンド ウに表示されて、 ActiveCustomersOut リ ンクにメ タデータが定義されていることを示します。

ト ランスフォーマステージト ランスフォーマステージト ランスフォーマステージト ランスフォーマステージ

ジ ョブの入力ステージと出力ステージを定義したので、 次の手順と してト ランスフォーマステージを定義します。 これは、 ターゲッ ト ファ イルに出力する前のデータをどのよ うに変換するかを指定するステージです。

1. xCustomers ト ランスフォーマステージをダブルク リ ッ ク します。 以下の ト ランスフォーマエディ タが表示されます。

4-20 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 67: Datastage_8Mainframe Job Tutorial

ト ランスフォーマエディ タの上部は リ ンク領域と呼ばれます。 これは、 2 つのペインに分割されています。

・ 左のペインは 入力リ ンクの列が表示されます。・ 右側ペインには、 出力リ ンクの列と定義済みのステージ変数を表

示します。

出力リ ンクの [ 出力仕様出力仕様出力仕様出力仕様 ] セルでは、 データの変換方法を指定します。 仕様を定義する と き、 出力列名は赤から黒に変化し、 入力列と出力列の間に関係線が引かれます。

リ ンク領域の下に メ タデータ領域があ り ます。 これも 2 つのペインに分割されています。

・ 左側ペインには、 入力リ ンクの読み取り専用のメ タデータを表示します。

・ 右側ペインには、 出力リ ンクの編集可能なメ タデータを表示します。

これらのペインの内容は、 前のエクササイズでソース と ターゲッ トの [Fixed-Width Flat File ステージFixed-Width Flat File ステージFixed-Width Flat File ステージFixed-Width Flat File ステージ ] ダイアログボッ クスの [ 列列列列 ] ページで参照した列定義です。

注意 :注意 :注意 :注意 : DataStage デザイナの大きな特徴は、 1つのリ ンクの終わりで何かを定義したり編集した りするだけで済むこ とです。 リ ンクを通って、 その両端のステージの間を情報が自動的に “流れる” からです。 列定義を Customers ステージとActiveCustomers ステージにロード してあるため、 この列定義はト ランスフォーマステージで自動的に表示されます。

ト ランスフォーマエディ タのツールバーには以下のボタンがあ り ます。

ツールバーのボタンにカーソルを合わせる と、 そのボタンの短い説明が表示されます。

ステージ変数表示/非表示

ステージプロパティ

出力条件

すべてまたは指定のリレーションを表示

切り取り コピー

貼り付け

検索 /置換

列定義のロード

列自動マッチ

列定義の保存 出力リンク実行順序

入力リンク出力順序

メ インフレームジ ョ ブの設計 4-21

Page 68: Datastage_8Mainframe Job Tutorial

ト ランスフォーマエディ タの詳細については、 『DataStage メ インフレーム ジ ョブ開発者ガイ ド』 を参照して ください。 ただし、 ト ランスフォーマエディ タのエクササイズをするのに必要な情報ならば、このチュート リ アルの各手順で得られます。

2. 入力列と出力列の間にリ ンクを張り、 データの変換方法を指定します。 この簡単な例の場合、 入力リ ンクの各列を出力リ ンクの対応する列にマッピングします。

入力列を出力列にド ラ ッグ&ド ロ ップした り、 DataStage の列自動マッチ機能で列を自動的にマッピングした りできます。

列自動マッチ機能の実行手順を次に示します。

a. ト ランスフォーマエディ タのツールバーで [ 列自動マッチ列自動マッチ列自動マッチ列自動マッチ ] ボタンをク リ ッ ク します。 以下の [ 列自動マッチ列自動マッチ列自動マッチ列自動マッチ ] ダイアログボッ クスが表示されます。

b. [ 名前マッチ名前マッチ名前マッチ名前マッチ ] と [ 全列マッチ全列マッチ全列マッチ全列マッチ ] のデフォルト設定は、 そのままにしておきます。

c. [OKOKOKOK] ボタンをク リ ッ ク します。

任意の列を [リンクリンクリンクリンク ]エリアから選択して、関係線が入力列と出力列を接続し、出力列と入力列の仕様が同じであると示していることに注目してください。矢印は、選択された列の関係線を強調します。

一番上のペインは次のよ うになっています。

4-22 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 69: Datastage_8Mainframe Job Tutorial

3. [OKOKOKOK] ボタンをク リ ッ ク して、 ト ランスフォーマステージの設定を保存し、 ト ランスフォーマエディ タを閉じます。

これで ト ランスフォーマステージが完成したので、 ジ ョブのコードを生成できます。 デザイナオプシ ョ ンで [ コンパイル前に自動保存コンパイル前に自動保存コンパイル前に自動保存コンパイル前に自動保存 ] が選択されているため、 DataStage はコード生成前に自動的にジ ョブを保存します。

処理を続行する前に、 ソースステージで作成した HTML ファ イルを調べてください。 このファ イルを開いて、 DataStage バージ ョ ン番号、 ジ ョブ名、 ユーザー名、 プロジェク ト名、 サーバー名、 ステージ名、 および書き込みの日付などの取得情報と、 列および格納長を示したファ イルビューレイアウ トのコピーを見直します。 これはジ ョブの参照情報と して役に立ちます。

コードを生成するコードを生成するコードを生成するコードを生成する

コードを生成する手順を次に示します。

1. ツールバーで [ ファ イルファ イルファ イルファ イル ] → [ コード生成コード生成コード生成コード生成 ] を選択するか、 [ コードコードコードコード生成生成生成生成 ] ボタンをク リ ッ ク します。 以下の [ コード生成コード生成コード生成コード生成 ] ダイアログボッ クスが表示されます。

メ インフレームジ ョ ブの設計 4-23

Page 70: Datastage_8Mainframe Job Tutorial

2. [ コード生成パスコード生成パスコード生成パスコード生成パス ] フ ィールドに注目して ください。 こ こにあるのは絶対パスであ り、 [ オプシ ョ ンオプシ ョ ンオプシ ョ ンオプシ ョ ン ] ダイアログボッ クスで指定したデフォルトのルートパスの後にサーバー名、 プロジェク ト名、 ジ ョブ名が続いています。

3. [CCCCOBOLOBOLOBOLOBOL プログラムファ イル名プログラムファ イル名プログラムファ イル名プログラムファ イル名 ]、 [ コンパイル JCL ファ イル名コンパイル JCL ファ イル名コンパイル JCL ファ イル名コンパイル JCL ファ イル名 ]、 [実行 JCL ファ イル名実行 JCL ファ イル名実行 JCL ファ イル名実行 JCL ファ イル名 ] の各フ ィールドにある名前に注目してください。 これらはメンバ名です。 ジ ョブのアップロード時、 これらのメンバ名はアップロード用のマシンプロファ イルで指定したメ インフレームライブラ リにロード されます。 詳細については、 後ほど説明します。

注意 :注意 :注意 :注意 : あるジ ョブのコードを生成する と、 [ コード生成パラ メータコード生成パラ メータコード生成パラ メータコード生成パラ メータ ] 領域で指定した情報を DataStage が記憶します。 ジ ョブを修正し、その名前を変更しても、 元のパス名とファ イル名が [ コード生成コード生成コード生成コード生成] ダイアログボッ クスで表示されます。 以前に作成したファイルを上書きしないならば、 これらのパラ メータは必ず変更してください。

4. [ 生成生成生成生成 ] ボタンをク リ ッ ク します。 する と、 ジ ョブ設計の検証とCOBOL プログラムファ イルと JCL ファ イルの生成が行われます。

4-24 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 71: Datastage_8Mainframe Job Tutorial

進行状況が [ 経過経過経過経過 ] バーで示され、 [ 状態状態状態状態 ] ウ ィンド ウにはステータス メ ッセージが表示されます。

5. [ 表示表示表示表示 ] ボタンをク リ ッ ク し、 生成されたファイルを調べてください。 終わったら、 [ 閉じる閉じる閉じる閉じる ] ボタンをク リ ッ ク して [ コード生成コード生成コード生成コード生成 ] ダイアログボッ クスを閉じます

このエクササイズで得られた知識は、 後続の章でもっと複雑なジ ョブを扱うための基礎とな り ます。 このエクササイズでは、 かな りの時間をさいて、 ジ ョブ設計とステージ構成の方法について詳し く説明しました。

まとめまとめまとめまとめこの章では、 簡単なジ ョブを設計する方法について学びました。 ソースと ターゲッ トのそれぞれの固定幅フラ ッ ト ファ イルステージと、 ト ランスフォーマステージを作成し、 入力列と出力列を リ ンク しました。DataStage デザイナを使って、 ジ ョブのコードを設計、 保存、 生成するプロセスを体験しました。

次に、 もっ と高度なテクニッ クを試してみます。 メ インフレーム式エディ タを使って、 仕様の式と制約条件を作成します。 以降のエクササイズでは、 すでに経験した手順について詳し く説明しません。 読者はデザイナとマネージャのインタフェースについてよ く理解しており、 ジ ョブ設計とステージ編集の基礎的な知識を持っているものと見なします。 ただし、 新しいタスクについては詳し く説明します。

メ インフレームジ ョ ブの設計 4-25

Page 72: Datastage_8Mainframe Job Tutorial

4-26 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 73: Datastage_8Mainframe Job Tutorial

5制約条件と仕様の定義

この章では、 式エディ タでメ インフレームジ ョブの制約条件と列仕様を定義する方法を説明します。 ジ ョブパラ メータ と ステージ変数を指定し、 それらを制約式と仕様式に組み込む方法についても取り上げます。

Exercise5 では、 出力データをフ ィルタ リ ングするための制約条件を定義します。 Exercise4 で作成したジ ョブに 2 つのターゲッ ト ステージを追加します。 そして、 定義した制約条件に従って、 リ ジェク ト リ ンクなどのさまざまな出力リ ンクでデータを送り ます。 リ ンク実行順序も定義します。

Exercise6 では、 カスタマアカウン ト情報を取得するためのステージ変数を指定します。 各出力リ ンクに新しい列を挿入してから、 出力列仕様でステージ変数を使います。 これで、 2 つのターゲッ ト ステージの構成を終了します。

Exercise7 では、 カスタマ信用等級に関するジ ョブパラ メータを定義して使います。 Exercise5 で設定した制約条件を修正して、 選択された信用等級のカスタマだけが出力リ ンクに書き込まれるよ うにします。

Exercise5 : 制約条件を定義するExercise5 : 制約条件を定義するExercise5 : 制約条件を定義するExercise5 : 制約条件を定義するこのエクササイズでは、 ト ランスフォーマステージで制約条件を定義する方法について学びます。 式エディ タを使って、 制約式の作成で必要な項目と演算子を選択します。 制約条件は、 TRUE または FALSE を返すブール式です。

ジ ョ ブを定義するジ ョ ブを定義するジ ョ ブを定義するジ ョ ブを定義する

Exercise4 で作成したジ ョブを拡張する手順を次に示します。

1. 以下のよ うにジ ョブの名前を変えます。

制約条件と仕様の定義 5-1

Page 74: Datastage_8Mainframe Job Tutorial

a. Exercise4 で使ったデザイナが開いたままであれば、 [ ファ イルファ イルファ イルファ イル ]→→→→ [ 名前を付けて保存名前を付けて保存名前を付けて保存名前を付けて保存 ...] を選択します。 以下の [ ジ ョブを保存ジ ョブを保存ジ ョブを保存ジ ョブを保存] ダイアログボッ クスが表示されます。

b. [ ジ ョブ名ジ ョブ名ジ ョブ名ジ ョブ名 ] フ ィールドで Exercise5Exercise5Exercise5Exercise5 と入力します。

c. [Tutorial]が [カテゴリカテゴリカテゴリカテゴリ ]フィールドに表示されていることを確認します。

d. [OKOKOKOK] ボタンをク リ ッ ク します。 ジ ョブがリポジ ト リに保存されます。

2. ト ランスフォーマステージの右側に 2 つの固定幅フラ ッ ト ファ イルステージを追加します。

3. ト ランスフォーマステージと新しい固定幅フラ ッ ト ファ イルステージの間に出力リ ンクを張り ます。

4. 2 つの新しいステージの名前を InactiveCustomers とRejectedCustomers に変更します。 2 つのリ ンクの名前をInactiveCustomersOut と RejectedCustomersOut に変更します。

5-2 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 75: Datastage_8Mainframe Job Tutorial

5. ト ランスフォーマステージを開き、 CustomersOut 入力リ ンクの列をすべて InactiveCustomersOut 出力リ ンク と RejectedCustomersOut 出力リ ンクにマッピングします。 DataStage では、 1つの入力列を 1つのステージ内にある複数の出力列にマッピングできます。 この時点で、 ターゲッ ト ステージに列定義がロード されている必要はあ り ません。 入力列を各出力リ ンクにド ラ ッグ&ド ロ ップするこ とで、 出力列を作成します。

ダイアグラムウ ィンド ウは次のよ うにな り ます。

制約条件と仕様の定義 5-3

Page 76: Datastage_8Mainframe Job Tutorial

出力条件を指定する出力条件を指定する出力条件を指定する出力条件を指定する

次に、 3 つの出力リ ンクで送るデータをフ ィルタ リ ングするための制約条件を指定します。 手順を次に示します。

1. ト ランスフォーマステージを開き、 ト ランスフォーマツールバーの [出力条件出力条件出力条件出力条件 ] ボタンをク リ ッ ク します。 以下の [ 出力条件出力条件出力条件出力条件 ] ダイアログボッ クスが表示されます。

5-4 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 77: Datastage_8Mainframe Job Tutorial

2. ActiveCustomersOut リ ンクの隣にある [ 出力条件出力条件出力条件出力条件 ] フ ィールドをダブルク リ ッ ク します。 以下のよ うに式 エディ タが開きます。

式エディ タで式を定義するには 2 つの方法があ り ます。

・ 一番上の [ 式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス ] テキス トボッ クスで直接定義します。

・ 一番下に表示される項目と演算子から必要なものを選択して定義します。

メ インフレーム式で使えるプログラ ミ ングコンポーネン トの詳細については、 『DataStage メ インフレーム ジ ョブ開発者ガイ ド』 を参照して ください。

式エディ タは作成された式を検証します。 文法エラーが見つかれば、赤いメ ッセージが表示され、 [ 式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス ] テキス ト ボッ クスではエラー個所に下線が施されます。 第 2 章で学んだよ うに、 式でセマンティ ッ クチェ ッ クを実行するよ うに選択するこ と もできます。ジ ョブプロパティ またはプロジェク トプロパティで [ 式のセマン式のセマン式のセマン式のセマンティ ッ ク チェッ クを実行ティ ッ ク チェッ クを実行ティ ッ ク チェッ クを実行ティ ッ ク チェッ クを実行 ] を選択する と、 式エディ タで [ 検証検証検証検証 ] ボタンを使用できるよ うにな り ます。 このオプシ ョ ンについてはこの章の後半で扱います。

制約条件と仕様の定義 5-5

Page 78: Datastage_8Mainframe Job Tutorial

3. 以下のよ うに、 アクティブカスタマの制約式を作成します。

a. [ 項目タイプ項目タイプ項目タイプ項目タイプ ] リ ス トの [ 列列列列 ] ブランチをク リ ッ ク して、 利用可能な列を表示します。

b. [ 項目プロパティ項目プロパティ項目プロパティ項目プロパティ ] リ ス トの CUSTOMER_STATUS をダブルクリ ッ ク します。 その情報が [ 式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス ] ボッ クスで表示されます。

c. = 演算子をク リ ッ ク して、 この演算子を [ 式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス ] ボックスに入れます。

d. [ 式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス ] テキス ト ボッ クスの式の終わりに ‘A’‘A’‘A’‘A’ と入力します。 アクティブカスタマとは、 ステータスが大文字または小文字の ‘A’ で示されるカスタマです。

e. OROROROR 演算子をク リ ッ ク します。

f. も う一度、 CUSTOMER_STATUS をダブルク リ ッ ク します。

g. ==== 演算子をク リ ッ ク します。

h. 式の終わりに ‘‘‘‘aaaa’’’’ と入力します。 [ 式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス ] テキス トボッ クスは次のよ うにな り ます。

i. [OKOKOKOK] ボタンをク リ ッ ク して式を保存します。

4. 手順 3 を繰り返して、 非アクティブカスタマについて制約式を作成します。 非アクティブカスタマとは、 ステータスが大文字または小文字の‘I’ で示されるカスタマです。 この種のカスタマは、InactiveCustomersOut リ ンクで出力されます。

これで、 アクティブカスタマと非アクティブカスタマを別々の出力リ ンクで送信するために、 2 つの制約条件が定義できました。

5-6 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 79: Datastage_8Mainframe Job Tutorial

リジェク ト リンクを定義するリジェク ト リンクを定義するリジェク ト リンクを定義するリジェク ト リンクを定義する

メ インフレームジ ョブの リジェク ト リ ンクは、 サーバージ ョブのものとは違ったやり方で定義します。 メ インフレームジ ョブでは、 制約条件を使って特定のリ ンクを リ ジェク ト リ ンク と します。 ト ランスフォーマステージからほかの出力リ ンクに書き込まれない出力行は、 リ ジェク ト リンクに書き込まれます。

RejectedCustomersOut リ ンクを リ ジェク ト リ ンクにするには、 以下のように制約条件を定義します。

1. RejectedCustomersOut リ ンクの隣にある [ 出力条件出力条件出力条件出力条件 ] フ ィールドをダブルク リ ッ ク します。

2. 以下のよ うに、 変数 REJECTEDCODE で上記の各リ ンクで書き込み拒否の有無を調べる制約式を作成します。

a. [ 項目タイプ項目タイプ項目タイプ項目タイプ ] リ ス トの [ 変数変数変数変数 ] ブランチをク リ ッ ク します。

b. [ 項目プロパティ項目プロパティ項目プロパティ項目プロパティ ] リ ス トのActiveCustomersOut.REJECTEDCODE をダブルク リ ッ ク します。

c. ==== 演算子をク リ ッ ク します。

d. [ 項目タイプ項目タイプ項目タイプ項目タイプ ] リ ス トの [ 定数定数定数定数 ] ブランチをク リ ッ ク します。

e. DSE_TRXCONSTRAINT をダブルク リ ッ ク します。 この定数は、リ ンク制約条件が満たされなかったため行がリジェク ト されたこ とを示します。

f. ANDANDANDAND 演算子をク リ ッ ク します。

g. InactiveCustomersOut リ ンクについて手順 a ~ e を繰り返します。 終わる と、 式は次のよ うにな り ます。

ActiveCustomersOut.REJECTEDCODE = DSE_TRXCONSTRAINT AND InactiveCustomersOut.REJECTEDCODE = DSE_TRXCONSTRAINT

h. [OKOKOKOK] ボタンをク リ ッ ク して、 式を保存して式エディ タを閉じます。

i. [OKOKOKOK] ボタンをクリックして、[ ト ランスフォーマステージ出力ト ランスフォーマステージ出力ト ランスフォーマステージ出力ト ランスフォーマステージ出力条件条件条件条件 ]ダイアログボックスを閉じます。

これで、 RejectedCustomersOut リ ンクは、 アクティブでも非アクティブでもないカスタマを扱う よ うにな り ます。

制約条件と仕様の定義 5-7

Page 80: Datastage_8Mainframe Job Tutorial

リンク実行順序を指定するリンク実行順序を指定するリンク実行順序を指定するリンク実行順序を指定する

RejectedCustomersOut リ ンクは 後に実行する必要があ り ます。 なぜならば、 これは ActiveCustomersOut および InactiveCustomersOut リ ンクの結果を調べるものだからです。 リ ンク実行順序を正し くする手順を次に示します。

1. ト ランスフォーマエディ タのツールバーにある [ 出力リ ンク実行順出力リ ンク実行順出力リ ンク実行順出力リ ンク実行順序序序序 ] ボタンをク リ ッ ク します。

[ リ ンク順序リ ンク順序リ ンク順序リ ンク順序 ] タブを表示した [ ト ランスフォーマステージプロパト ランスフォーマステージプロパト ランスフォーマステージプロパト ランスフォーマステージプロパティティティティ ] ダイアログボッ クスが表示されます。

左側ペインには入力リ ンクの順序、 右側ペインには出力リ ンクの順序を示します。 ト ランスフォーマステージでは、 メ インフレームジ ョブには入力リ ンクが 1 つしかないので、 出力リ ンクの順序だけが適用されます。

2. 表示された出力リ ンク順序を見てください。 RejectedCustomersOutの実行順序は 後であるこ と。 そ うでなければ、 右側の矢印ボタンを使って順序を訂正します。

3. [OKOKOKOK] ボタンをク リ ッ ク して、 設定を保存してダイアログボッ クスを閉じます。

5-8 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 81: Datastage_8Mainframe Job Tutorial

4. [OKOKOKOK] ボタンをク リ ッ ク して、 ト ランスフォーマステージの設定を保存して ト ランスフォーマエディ タを閉じます。

5. ジ ョブを保存します。

Exercise6 : ステージ変数を指定するExercise6 : ステージ変数を指定するExercise6 : ステージ変数を指定するExercise6 : ステージ変数を指定するこのエクササイズでは、 ステージ変数の定義方法と使い方を説明します。 ステージ変数は、 それを定義した ト ランスフォーマステージでしか使えません。 一般にステージ変数の目的は次のとおりです。

・ コーディングの重複を避ける。・ 複雑な仕様を分割するこ とで単純化する。・ 現在の値と前回読み出した値を比較する。

ステージ変数を指定するステージ変数を指定するステージ変数を指定するステージ変数を指定する

まず、 カスタマアカウン ト情報を取得するのに使われるステージ変数を指定します。 手順を次に示します。

1. デザイナで Exercise5 という ジ ョブを開きます。 そして、 Exercise6と して Tutorial という ジ ョブカテゴ リに保存します。

2. ト ランスフォーマステージを開き、 ツールバーの [ ステージプロパステージプロパステージプロパステージプロパティティティティ ] ボタンをク リ ッ ク します。 [ ト ランスフォーマステージプロパト ランスフォーマステージプロパト ランスフォーマステージプロパト ランスフォーマステージプロパ

制約条件と仕様の定義 5-9

Page 82: Datastage_8Mainframe Job Tutorial

ティティティティ ] ダイアログボッ クスが表示されます。 [ 変数変数変数変数 ] タブをク リ ッ クして、 このページを一番手前に移動します。

3. 以下のよ うに、 グ リ ッ ドを使ってステージ変数プロパティ を定義します。

a. [ 名前名前名前名前 ] 列に AcctDescriptionAcctDescriptionAcctDescriptionAcctDescription と入力します。

b. [ 初期値初期値初期値初期値 ] 列に ‘‘‘‘Unknown’Unknown’Unknown’Unknown’ と入力します。

c. [SQL タイプSQL タイプSQL タイプSQL タイプ ] ド ロ ップダウン リ ス トで [CharCharCharChar] を選択します。 .

d. [ 精度精度精度精度 ] 列に 10101010 と入力します。

e. [ スケールスケールスケールスケール ] 列に 0 と入力します。

f. 必要なら、 [ 説明説明説明説明 ] 列で説明を入力します。

4. [OKOKOKOK] ボタンをク リ ッ ク して変更内容を保存します。 これで、 ステージ変数の指定が終わり ました。

指定したステージ変数は、 リ ンク領域の右のペインにあるテーブルで表示されます。 このテーブルが隠れていれば、 ト ランスフォーマのツールバーの [ ステージ変数ステージ変数ステージ変数ステージ変数 表示/非表示表示/非表示表示/非表示表示/非表示 ] ボタンをク リ ッ クする と見るこ とができます。

5-10 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 83: Datastage_8Mainframe Job Tutorial

仕様を作成する仕様を作成する仕様を作成する仕様を作成する

次に、 AcctDescription の仕様を作成します。 手順を次に示します。

1. [AcctDescriptionAcctDescriptionAcctDescriptionAcctDescription] 出力仕様セルをダブルク リ ッ ク して、 式エディ タを開きます。

2. 以下のよ うに、 AcctDescription の式を作成します。

IF CustomersOut.ACCOUNT_TYPE = ‘B’ THEN ‘BUSINESS’

ELSE IF CustomersOut.ACCOUNT_TYPE = ‘I’ THEN

‘INDIVIDUAL’ ELSE

IF CustomersOut.ACCOUNT_TYPE = ‘N’ THEN ‘INTERNAL’

ELSE ‘UNKNOWN’

END END

END

[ 式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス ] ボッ クスに式を直接入力しても よいし、 IF THEN ELSE 関数を使って式を作成してもかまいません。 この関数は、 [ ビビビビルド インルーチンルド インルーチンルド インルーチンルド インルーチン ] の下にある [LogicalLogicalLogicalLogical] フォルダに入っています。以下のよ うに、 3 つの IF THEN ELSE 文をネス ト して、 3 つのアカウン ト種別についてアカウン ト情報を指定する必要があ り ます。

a. IF THEN ELSE をダブルク リ ッ ク して、 この関数を [ 式シンタ ッ式シンタ ッ式シンタ ッ式シンタ ックスクスクスクス ] ボッ クスに入れます。

b. <BooleanExpression> を ACCOUNT_TYPE 列に置き換えます。

c. 列名の後に = 演算子を置き、 ‘BBBB’ と入力します。

d. <Expression1> を ‘BUSINESSBUSINESSBUSINESSBUSINESS’ に置き換えます。

e. <Expression2> を次の IF THEN ELSE 関数に置き換えます。

f. ‘I’ ( ‘INDIVIDUAL’ ) のアカウン トについて手順 b ~ e を繰り返します。

g. ‘N’ ( ‘INTERNAL’ ) のアカウン トについて手順 b ~ d を繰り返します。 そして、 <Expression2> を ‘UNKNOWNUNKNOWNUNKNOWNUNKNOWN’ に置き換えます。

3. [OKOKOKOK] ボタンをク リ ッ ク して、 式エディ タを閉じます。 これで、 ステージ変数の仕様が作成できました。

制約条件と仕様の定義 5-11

Page 84: Datastage_8Mainframe Job Tutorial

出力リンクに列を挿入する出力リンクに列を挿入する出力リンクに列を挿入する出力リンクに列を挿入する

次に、 ACCOUNT_DESCRIPTION という名前の新しい列を 2 つの出力リンクに挿入します。 手順を次に示します。

1. [ リ ンクリ ンクリ ンクリ ンク ]領域の ActiveCustomersOutリンクを右クリックして、トランスフォーマエディタショートカットメニューを表示します。[ActiveCustomersOut]ショートカットメニューから[新規列を挿入新規列を挿入新規列を挿入新規列を挿入]を選択します。

2. ト ランスフォーマエディ タのメ タデータ領域で、 以下のよ うに 列を定義します。

a. [ 列名列名列名列名 ] フ ィールドに ACCOUNT_DESCRIPTIONACCOUNT_DESCRIPTIONACCOUNT_DESCRIPTIONACCOUNT_DESCRIPTION と入力します。

b. [SQL タイプSQL タイプSQL タイプSQL タイプ ] ド ロ ップダウン リ ス トで [CharCharCharChar] を選択します。

c. [ 長さ長さ長さ長さ ] フ ィールドに 10101010 と入力します。

3. リ ンク領域で、 ステージ変数 AcctDescription を列の [ 出力仕様出力仕様出力仕様出力仕様 ] セルにド ラ ッグ&ド ロ ップします。

4. ActiveCustomersOut テーブルの新しい列を ACCOUNT_TYPE の直後に移動します。 その際、 ド ラ ッグ&ド ロ ップを使ってください。ACCOUNT_DESCRIPTION の [ 列名列名列名列名 ] セルをク リ ッ ク し、 マウスポインタを ACCOUNT_TYPE セルの下に置きます。 列の移動先を示す挿入ポイン トが表示されます。

5. 手順 1 ~ 4 を繰り返し、 InactiveCustomersOut リ ンクで同じ列を定義します。

6. [OKOKOKOK] ボタンをク リ ッ ク して、 設定を保存して ト ランスフォーマエディ タを閉じます。

ターゲッ トステージを構成するターゲッ トステージを構成するターゲッ トステージを構成するターゲッ トステージを構成する

後に、 2 つの新しいターゲッ ト ステージと して 固定幅フラ ッ ト ファ イルステージを構成します。

1. 以下のよ うに、 InactiveCustomers ターゲッ ト ステージを定義します。

a. [ ファ イル名ファイル名ファイル名ファイル名 ] フ ィールドに SLS.IACTCUSTSLS.IACTCUSTSLS.IACTCUSTSLS.IACTCUST と入力します。

b. [DD 名DD 名DD 名DD 名 ] フ ィールドに IACTCUSTIACTCUSTIACTCUSTIACTCUST と入力します。

c. 書き込みオプシ ョ ンと して [ 既存ファイルを削除して再作成既存ファイルを削除して再作成既存ファイルを削除して再作成既存ファイルを削除して再作成 ] を選択します。 これは、 そのジ ョブを 1 回以上実行する と、 すでにカタログに入れられている既存のファイルを削除するために必要な JCL を DataStage が作成するこ とを意味します。

5-12 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 85: Datastage_8Mainframe Job Tutorial

d. [ 列列列列 ] グ リ ッ ドで表示された列定義が正しいこ とを確認します。

2. 以下のよ うに、 RejectedCustomers ターゲッ ト ステージを定義します。

a. [ ファ イル名ファイル名ファイル名ファイル名 ] フ ィールドに SLS.REJCUSTSLS.REJCUSTSLS.REJCUSTSLS.REJCUST と入力します。

b. [DD 名DD 名DD 名DD 名 ] フ ィールドに REJCUSTREJCUSTREJCUSTREJCUST と入力します。

c. 書き込みオプシ ョ ンと して [ 既存ファイルを削除して再作成既存ファイルを削除して再作成既存ファイルを削除して再作成既存ファイルを削除して再作成 ] を選択します。

d. [ 列列列列 ] グ リ ッ ドで表示された列定義が正しいこ とを確認します。

3. ジ ョブを保存します。

これで、 ステージ変数を定義し、 それを出力列仕様で使い、 ターゲッ トステージを構成する作業が終わり ました。

Exercise7 : ジ ョ ブパラ メータを定義するExercise7 : ジ ョ ブパラ メータを定義するExercise7 : ジ ョ ブパラ メータを定義するExercise7 : ジ ョ ブパラ メータを定義するこの章の 後のエクササイズではジ ョブパラ メータを定義します。 ジ ョブパラ メータ とは、 制約条件と列仕様で使う処理変数です。 ジ ョブパラメータを使えば、 ジ ョブをカスタマイズする と きにステージの再編集やコードの再生成が不要なので、 時間の節約とな り ます。 例えば、 パラメータでさまざまな場所や日付を指定するだけで、 地域レポートや季刊レポート を作成するジ ョブのために行をフ ィルタ リ ングできます。 次のエクササイズでは、 ジ ョブを実行するたびに異なる信用等級をジ ョブパラ メータで指定します。

[ ジ ョブプロパティジ ョブプロパティジ ョブプロパティジ ョブプロパティ ] ダイアログボッ クスでジ ョブパラ メータを指定し、その値を メ インフレームのフラ ッ ト ファ イルに格納します。 このファ イルは、 ジ ョブの実行時にアクセスされます。

ジ ョ ブパラ メータを指定するジ ョ ブパラ メータを指定するジ ョ ブパラ メータを指定するジ ョ ブパラ メータを指定する

まず、 以下のよ うにジ ョブプロパティでジ ョブパラ メータを指定します。

1. 現在のジ ョブを Exercise7 と して Tutorial カテゴ リに保存します。

制約条件と仕様の定義 5-13

Page 86: Datastage_8Mainframe Job Tutorial

2. [ 編集編集編集編集 ] → [ ジ ョブプロパティジ ョブプロパティジ ョブプロパティジ ョブプロパティ ] を選択します。 [ 全般全般全般全般 ] ページを表示した [ ジ ョブプロパティジ ョブプロパティジ ョブプロパティジ ョブプロパティ ] ダイアログボッ クスが表示されます。

3. [ 式のセマンティ ッ ク チェ ッ クを実行式のセマンティ ッ ク チェ ッ クを実行式のセマンティ ッ ク チェ ッ クを実行式のセマンティ ッ ク チェ ッ クを実行 ] を選択します。 式エディ タが式のセマンティ ッ クエラーとシンタ ッ クスエラーをチェ ッ ク します。 エラーが見つかる と、 [ 式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス ] テキス ト ボッ クスでは、 エラーの原因となった要因に下線が引かれます。

注意 : セマンティ ッ クチェッ クによ り、 多数の派生を含んでいるジ ョブのパフォーマンスが下がるこ とがあ り ます。

4. [ パラ メータパラ メータパラ メータパラ メータ ] をク リ ッ ク して、 このページを前面に移動させて、ジ ョブパラ メータを定義します。

a. [ パラ メータファ イル名パラ メータファ イル名パラ メータファ イル名パラ メータファ イル名 ] および [COBOL DD 名COBOL DD 名COBOL DD 名COBOL DD 名 ] フ ィールドでPRMCUSTPRMCUSTPRMCUSTPRMCUST と入力します。 パラ メータファ イルの DD 文は、 ジ ョブのコードを生成する と きに実行 JCL に追加されます。 プログラムの実行時、 プログラムはパラ メータファ イルでルッ クアップを行って値を取り出します。

b. [ パラ メータ名パラ メータ名パラ メータ名パラ メータ名 ] 列に CustCredit を入力します。

c. [SQL タイプSQL タイプSQL タイプSQL タイプ ] ド ロ ップダウン リ ス トから [CharCharCharChar] を選択します。

d. [ 長さ長さ長さ長さ ] 列に 10101010 を入力します。

5-14 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 87: Datastage_8Mainframe Job Tutorial

[ パラ メータパラ メータパラ メータパラ メータ ] ページは次のよ うに表示されるはずです。

5. [OKOKOKOK] ボタンをク リ ッ ク して変更内容を保存します。 これで、 ジ ョブパラ メータの指定ができました。

制約条件の修正制約条件の修正制約条件の修正制約条件の修正

次に、 ジ ョブパラ メータを制約条件に組み込みます。 手順を次に示します。

1. ト ランスフォーマステージを開き、 ツールバーの [ 出力条件出力条件出力条件出力条件 ] ボタンをク リ ッ ク します。 [ ト ランスフォーマステージ出力条件ト ランスフォーマステージ出力条件ト ランスフォーマステージ出力条件ト ランスフォーマステージ出力条件 ] ダイアログボッ クスが表示されます。

2. ActiveCustomersOut リ ンクの隣にある [ 出力条件出力条件出力条件出力条件 ] フ ィールドをダブルク リ ッ ク します。

3. 選択された信用等級の顧客だけがリ ンクで出力されるよ うに、 以下のよ うに式を変更します。

a. 既存の式をカッ コで囲みます。

b. ANDANDANDAND 演算子をク リ ッ ク します。

c. CREDIT_RATING 列を挿入します。

d. ==== 演算子をク リ ッ ク します。

制約条件と仕様の定義 5-15

Page 88: Datastage_8Mainframe Job Tutorial

e. [ 項目タイプ項目タイプ項目タイプ項目タイプ ]リストの [ パラ メータパラ メータパラ メータパラ メータ ] ブランチをク リ ッ ク します。

f. [ 項目プロパティ項目プロパティ項目プロパティ項目プロパティ ]リストの JobParam.CustCreditをダブルクリックします。[ 式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス ] ボッ クスは次のよ うにな り ます。

4. 手順 2 ~ 4 を繰り返して、 InactiveCustomersOut リ ンクの制約条件を変更します。

5. [OKOKOKOK] ボタンをク リ ッ ク して、 [ ト ランスフォーマステージ出力条件ト ランスフォーマステージ出力条件ト ランスフォーマステージ出力条件ト ランスフォーマステージ出力条件 ]ダイアログボッ クスを閉じて ト ランスフォーマステージを終了します。

6. ジ ョブを保存します。

これで、 ジ ョブパラ メータを指定し、 制約式に組み込む作業が終わり ました。

まとめまとめまとめまとめこの章では、 メ インフレームの式エディ タについて学びました。 制約条件と仕様式を定義する方法を習得しました。 また、 ステージ変数とジ ョブパラ メータを指定する方法と使用する方法も習得しました。

次に、 幾つかの種類のフラ ッ ト ファ イルを処理します。 これらのファ イルの特性と メ インフレームジ ョブでの使い方について学びます。 また、各種のフラ ッ ト ファ イルステージエディ タの違いを理解します。

5-16 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 89: Datastage_8Mainframe Job Tutorial

6シンプルフラッ ト ファ

イルの処理

この章では、 メ インフレームジ ョブでのシンプルフラ ッ ト ファ イルの処理について取り上げます。 よ り高度な機能を固定幅フラ ッ ト ファ イルステージで扱う こ とで、 前章で習得したこ とをも とに進めていきます。 また、 区切り文字付きフラ ッ ト ファ イルや DB2 ロードレディ フラ ッ ト ファイルの各ステージの独自の機能についてもよ くわかるよ うにな り ます。

Exercise 8 では、 賞与の対象となる従業員を選択して、 その賞与の金額を計算するジ ョブを作成します。 このジ ョブは、 区切り文字付きフラ ット ファ イルからデータを読み取り、 このデータを変換して固定幅フラ ット ファ イルにロード します。 3 種類のステージを設定して、 制約条件を指定し、 出力列仕様を定義して、 今まで習得したこ とをテス ト してみます。 また、 列定義をテーブル定義と して リポジ ト リに保存するこ とがどれほど簡単なこ とかがわかるでし ょ う。

Exercise 9 では、 このジ ョブを修正して新入社員への支度金を計算します。 ソースステージに制約条件を追加して、 ト ランスフォーマステージでステージ変数を定義して使用する練習をします。 また、 DB2 ロードレディ フラ ッ ト ファ イルのターゲッ ト ステージの設定方法も学びます。後に、 Exercise 10 ではターゲッ ト ファ イルを別のマシンに転送するために、 FTP ステージをジ ョブデザインに追加します。

シンプルフラ ッ ト ファイルの処理 6-1

Page 90: Datastage_8Mainframe Job Tutorial

シンプルフラッ ト ファイルステージの種類シンプルフラッ ト ファイルステージの種類シンプルフラッ ト ファイルステージの種類シンプルフラッ ト ファイルステージの種類メ インフレームファ イルは、 シンプルデータ構造体と コンプレッ クスデータ構造体を扱う こ とができます。 コンプレッ クスデータ構造体には、 GROUP 句、 REDEFINES 句、 OCCURS 句、 および OCCURS DEPENDING ON 句が含まれます。 シンプルフラ ッ ト ファ イルには上記の句は含まれません。DataStage Enterprise MVS Edition は下記の 3 種類のシンプルフラ ッ ト ファ イルステージを用意しています。

・ 固定幅フラ ッ ト ファ イル・ 区切り文字付きフラ ッ ト ファ イル・ DB2 ロード レディ フラ ッ ト ファ イル

次に、 この 3 種類のステージの特徴を簡単に説明します。

固定幅フラッ ト ファイルステージ固定幅フラッ ト ファイルステージ固定幅フラッ ト ファイルステージ固定幅フラッ ト ファイルステージ

固定幅フラ ッ ト ファ イルステージは、 シンプルフラ ッ ト ファ イルからのデータの抽出や、 このファ イルへのデータの書き込むと きに使います。このステージは、 ソースまたはターゲッ トのどちらかと して使用されます。 Exercise 4 で見たよ うに、 ステージが読み取る行は開始行と終了行を指定する と制限できます。 また、 後の行が処理されてから特殊なデータ処理タスクを行う場合には EOD (データの終わり) インジケータをファ イルに追加するこ と もできます。 さ らに、 ジ ョブデザインの次のステージにソースファ イルを送る前にそのファイルを 事前にソートできます。 また、 データを複数の出力リ ンクに書き込んだり、 制約条件を定義して各リ ンクに出力するデータを制限するこ と もできます。

区切り文字付きフラッ ト ファイルステージ区切り文字付きフラッ ト ファイルステージ区切り文字付きフラッ ト ファイルステージ区切り文字付きフラッ ト ファイルステージ

区切り文字付きフラ ッ ト ファ イルステージは、 ソースまたはターゲッ トのどちらでも使えます。 このステージは区切り文字付きフラ ッ ト ファ イルからデータを読み取った り、 このファ イルにデータを書き込みます。このタイプのフラ ッ ト ファ イルデータを処理する場合は、 使用する列のタイプと文字列の区切り文字を指定します。 区切り文字付きフラ ッ トファ イルステージをソース と して使用する場合、 開始行と終了行を指定できます。 また、 EOD インジケータをファ イルに追加できます。 ターゲッ ト と して使用する場合、 一般に別のプラ ッ ト フォーム (OS/390 プラ ッ ト フォームの DB2 を除く) のデータベースにデータを書き込むと きに区切り文字付きフラ ッ ト ファ イルステージを使います。 たいていの場合、 ジ ョブデザインでは区切り文字付きフラ ッ ト ファ イルステージの後には、 区切り文字付きフラ ッ ト ファ イルを目的のマシンに転送する と きに必要な情報を指定するために FTP ステージが行われます。

6-2 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 91: Datastage_8Mainframe Job Tutorial

DB2 ロードレディ フラッ ト ファイルステージDB2 ロードレディ フラッ ト ファイルステージDB2 ロードレディ フラッ ト ファイルステージDB2 ロードレディ フラッ ト ファイルステージ

DB2 ロード レディ フラ ッ ト ファ イルステージは、 ターゲッ ト ステージとしてだけ使用されます。 このステージは固定幅フラ ッ ト ファ イルにデータを書き込みます。 このファ イルは DB2 5.1 以降にロード されます。DB2 バルクローダーユーティ リ ティを実行するために必要なパラ メータを指定して、 必要な制御ファイルを生成します。 DataStage は、 実行 JCLに手順を追加して、 プログラムを実行しているマシンで DB2 バルクローダー機能を起動します。 FTP ステージを DB2 ロードレディ フラ ッ ト ファイルステージと併用して、 ファ イルを転送できます。

Exercise 8: 区切り文字付きフラ ッ ト ファイルソースExercise 8: 区切り文字付きフラ ッ ト ファイルソースExercise 8: 区切り文字付きフラ ッ ト ファイルソースExercise 8: 区切り文字付きフラ ッ ト ファイルソースデータを読み取るデータを読み取るデータを読み取るデータを読み取る

前回のエクササイズで固定幅フラ ッ ト ファ イルステージの処理をすでにしたので、 こ こでは区切り文字付きフラ ッ ト ファ イルソースステージと固定幅フラ ッ ト ファ イルターゲッ ト ステージを使ってジ ョブを作成します。 手作業で列定義を入力して、 これをテーブル定義と して リポジ ト リに保存します。 ソースファ イルの区切り文字を指定して、 出力データをフ ィルタ リ ングするための制約条件を定義します。 また、 ト ランスフォーマステージで出力列仕様を定義する練習もします。

ジ ョ ブを作成するジ ョ ブを作成するジ ョ ブを作成するジ ョ ブを作成する

まず、 以下のよ うにジ ョブを作成します。

1. DataStage デザイナを開いて、 チュート リ アルカテゴ リに Exercise8という ジ ョブを新規作成します。

2. 区切り文字付きフラ ッ ト ファ イルソースステージ、 ト ランスフォーマステージ、 および固定幅フラ ッ ト ファ イルターゲッ ト ステージをダイアグラムウ ィンド ウに追加します。 これらのステージを リ ンクして、 下記のよ うに名前を変更します。

シンプルフラ ッ ト ファイルの処理 6-3

Page 92: Datastage_8Mainframe Job Tutorial

区切り文字付きフラッ ト ファイルソースステージを設定する区切り文字付きフラッ ト ファイルソースステージを設定する区切り文字付きフラッ ト ファイルソースステージを設定する区切り文字付きフラッ ト ファイルソースステージを設定する

次に、 従業員ソースステージを編集します。

1. 区切り文字付きフラ ッ ト ファ イルステージを開いて、 下記のとおり名前を指定します。

a. ファ イル名 : HR.EMPLOYEEHR.EMPLOYEEHR.EMPLOYEEHR.EMPLOYEE

b. DD 名 : EMPLOYEEEMPLOYEEEMPLOYEEEMPLOYEE

2. [ 列列列列 ] をク リ ッ ク して、 [ 列列列列 ] グ リ ッ ドで下記の列定義を作成します。

列名列名列名列名 SQL タイプSQL タイプSQL タイプSQL タイプ 長さ長さ長さ長さ スケールスケールスケールスケール

FIRST_NAME CHAR 10 0

LAST_NAME CHAR 20 0

HIRE_DATE CHAR 10 0

DEPARTMENT CHAR 15 0

JOB_TITLE CHAR 25 0

SALARY DECIMAL 8 2

BONUS_TYPE CHAR 1 0

BONUS_PERCENT DECIMAL 2 2

6-4 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 93: Datastage_8Mainframe Job Tutorial

3. HIRE_DATE 列で右ク リ ッ ク して、 シ ョート カッ ト メニューから [ 行行行行を編集を編集を編集を編集 ...] を選択して [ 列メ タデータ編集列メ タデータ編集列メ タデータ編集列メ タデータ編集 ] ダイアログボッ クスを開きます。 [ 日付フォーマッ ト日付フォーマッ ト日付フォーマッ ト日付フォーマッ ト ] ド ロ ップダウン リ ス トで [CCYY-MM-CCYY-MM-CCYY-MM-CCYY-MM-DDDDDDDD] を選択します。 [ 適用適用適用適用 ] ボタンをク リ ッ ク してから、 [ 閉じる閉じる閉じる閉じる ]をク リ ッ ク して続行します。

4. [ 保存保存保存保存 ...] ボタンをク リ ッ ク して、 [ テーブル定義を保存テーブル定義を保存テーブル定義を保存テーブル定義を保存 ] ダイアログボッ クスを開きます。

これで、 ステージエディ タで手作業で入力した列を、 リポジ ト リ内のテーブル定義、 CFD ファ イル、 または DCLGen ファ イルと して保存できます。

a. 上部ペインでは、 デフォルトのオプシ ョ ンである [ テーブルとテーブルとテーブルとテーブルとして保存して保存して保存して保存 ] のままにしておきます。

b. [ データソース名データソース名データソース名データソース名 ] フ ィールドの値を [HR] に変更します。

c. その他のフ ィールドはデフォルト設定のままにしておきます。

d. [OKOKOKOK] をク リ ッ ク して、 Employees とい う新しいテーブルと して列を リポジ ト リに保存します。

シンプルフラ ッ ト ファイルの処理 6-5

Page 94: Datastage_8Mainframe Job Tutorial

5. [ フォーマッ トフォーマッ トフォーマッ トフォーマッ ト ] タブをク リ ッ ク して、 このページを前面に表示します。

区切り文字と してカンマ、 文字列を表すために引用符を使用するものと仮定するので、 [ 区切り文字区切り文字区切り文字区切り文字 ] エリ アはデフォルト設定のままにしておく こ とができます。 [ 初の行は列名初の行は列名初の行は列名初の行は列名 ] チェ ッ クボッ クスを選択して、 ファ イルの第 1行が列名を含むよ うに指定します。

6. [ 出力出力出力出力 ] をク リ ッ ク します。 デフォルトで [ 制約制約制約制約 ] タブがアクテ ィブになり ます。 2003 年 1 月 1 日前に雇用された従業員で、 賞与の対象者だけを選択するよ う制約条件を定義します。 これは、 下記のよ うに [BONUS_TYPEBONUS_TYPEBONUS_TYPEBONUS_TYPE] フ ィールドに 「A」 を指定して定義します。

6-6 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 95: Datastage_8Mainframe Job Tutorial

[ 列 / 値列 / 値列 / 値列 / 値 ] フ ィールドに雇用された日付を正しい形式で入力するこ とが重要です。 これが正し くないと、 DataStage は入力データを日付として認識しません。 正しい形式は、 雇用された日付の前に 「DATE」とい う語を入れて、 日付の値を一重引用符で囲んだものです。 また、日付の値を処理する場合は、 DataStage の内部日付フォーマッ ト を使用する必要があ り ます。 内部日付フォーマッ トは ISO 形式 (CCYY-MM-DD) です。

7. [OKOKOKOK] をク リ ッ ク して設定を受け付けます。 これでソースステージが完了しました。

[ 選択選択選択選択 ] タブで出力列を選択しなかった理由がわからないでし ょ う。 それは、 デザイナのオプシ ョ ンで 列プッシュオプシ ョ ンが選択されているからです。 その結果、 [ ステージステージステージステージ ] ページで [OK[OK[OK[OK] をク リ ッ クする と、 [列列列列 ] タブで定義したすべての列が自動的に出力用に選択されます。 従業員ステージを再び開いて、 [ 選択選択選択選択 ] タブでク リ ッ ク してこれを確認してください。

また、 新しいテーブルがリポジ ト リに保存されているこ とを確認したい場合もあるでし ょ う。 その場合、 デザイナの リポジ ト リ ウ ィ ンド ウで [テーブル定義テーブル定義テーブル定義テーブル定義 ] ブランチを展開して [ 保存済み保存済み保存済み保存済み ] カテゴ リでそのテーブルを検索して ください。

シンプルフラ ッ ト ファイルの処理 6-7

Page 96: Datastage_8Mainframe Job Tutorial

ト ランスフォーマステージを設定するト ランスフォーマステージを設定するト ランスフォーマステージを設定するト ランスフォーマステージを設定する

次に、 ト ランスフォーマステージを設定して賞与の金額を計算します。

1. ト ランスフォーマステージを開いて、 入力列を出力リ ンクに 直接マッピングします。 その簡単な方法は、 シ ョート カッ ト メニューを使って EmployeesOut 入力リ ンクのすべての列を選択し、 それらをxEmployeesOut 出力リ ンクで 初にある空いている [ 出力仕様出力仕様出力仕様出力仕様 ] セルにド ラ ッグするこ とです。

2. Exercise 6 で学んだよ うに、 BONUS_AMOUNT という新しい列を出力リ ンクに入れます。 これを長さが 10 の Char データ型と して定義します。

3. SALARY と BONUS_PERCENT の結果である BONUS_AMOUNT の仕様を作成します。 LPAD 関数を使って、 賞与の金額を 10 文字の長さで右寄せにします。 仕様は下記のよ うに作成します。

a. 式エディ タを開いて、 [ ビルト インルーチンビルト インルーチンビルト インルーチンビルト インルーチン ] 下の String 関数のリ ス トに LPAD を入れます。 2 つの LPAD 関数の 2 番目の関数を[ 式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス ] ボッ クスに入れます。

b. <String1> を、 賞与の金額を計算する式と置き換えます。 式は括弧で囲みます。

c. <StringLength> を 10101010 と置き換えます。

d. <String2> を ‘0000’ と置き換えます。 これで、 0 を埋め込み文字に指定します。 2 つの LPAD 関数の 初の関数を使用する と、 埋め込み文字はデフォルトで空白になり ます。

これが終わる と、 式エディ タは下記のよ うに表示されるはずです。

6-8 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 97: Datastage_8Mainframe Job Tutorial

4. [OKOKOKOK] をク リ ッ ク して、 ト ランスフォーマエディ タを閉じます。

固定幅フラッ ト ファイルターゲッ トステージを設定する固定幅フラッ ト ファイルターゲッ トステージを設定する固定幅フラッ ト ファイルターゲッ トステージを設定する固定幅フラッ ト ファイルターゲッ トステージを設定する

後に、 固定幅フラ ッ ト ファ イルターゲッ ト ステージを編集します。

1. 賞与ステージを開いて、 下記のよ うに指定します。

a. ファ イル名 : HR.EMPLOYEE.BONUSESHR.EMPLOYEE.BONUSESHR.EMPLOYEE.BONUSESHR.EMPLOYEE.BONUSES

b. DD 名 : BONUSAMTBONUSAMTBONUSAMTBONUSAMT

c. 書き込みオプシ ョ ン : [ 新規ファイル作成新規ファイル作成新規ファイル作成新規ファイル作成 ]

2. [ オプシ ョ ンオプシ ョ ンオプシ ョ ンオプシ ョ ン ] タブをク リ ッ ク します。 このタブは [ 書き込みオプ書き込みオプ書き込みオプ書き込みオプシ ョ ンシ ョ ンシ ョ ンシ ョ ン ] フ ィールドで新規ファイル作成、 または既存ファイルを削除して再作成を選択する と使えます。 こ こでは、 ジ ョブの終わりの配置、 およびメ インフレームファ イルの新規作成に必要な格納域の割り当てなどの JCL パラ メータを指定します。 また、 データセッ トの期日または保存期間も指定できます。

シンプルフラ ッ ト ファイルの処理 6-9

Page 98: Datastage_8Mainframe Job Tutorial

a. [ ボ リ ューム通し番号ボ リ ューム通し番号ボ リ ューム通し番号ボ リ ューム通し番号 ] フ ィールドに MVS123 を入力します。 これは、 ファ イルの格納領域が割り当てられているディ スクのボリ ューム通し番号です。

b. [ 保持期限保持期限保持期限保持期限 ] フ ィールドのデフォルト値を削除します。 こ こで、 [有効期限有効期限有効期限有効期限 ] フ ィールドが使用できるこ とに注意して ください。

c. [ 有効期限有効期限有効期限有効期限 ] フ ィールドに 2003/365 を入力します。 これは、2003 年の 後の日にデータセッ トの期限が切れるこ とを示します。 こ こで、 [ 保存期限保存期限保存期限保存期限 ] フ ィールドが使用できな くなるこ とに注意して ください。 これは、 期日、 または保存期間のどちらか 1つを入力できるからです。 両方には入力できません。

d. その他のフ ィールドは、 デフォルトの設定のままにしておきます。

3. [OKOKOKOK] をク リ ッ ク して、 固定幅フラ ッ ト ファ イルステージの変更内容を保存してからジ ョブを保存します。

4. [ コード生成コード生成コード生成コード生成 ] をク リ ッ ク して、 3 つの生成ファイルすべてのメンバ名と して BONUS0BONUS0BONUS0BONUS02222 を入力します。

5. ジ ョブのコードを生成してから、 [ ビュービュービュービュー ] をク リ ッ ク して生成されたファイルを表示させます。 実行 JCL ファ イルで、 ターゲッ ト ステージの [ オプシ ョ ンオプシ ョ ンオプシ ョ ンオプシ ョ ン ] タブでの指定がコードのどの部分に表示されているかを調べます。

これで、 区切り文字付きフラ ッ ト ファ イルと固定幅フラ ッ ト ファ イルの各ステージの設定方法を理解しました。 また、 手作業で入力した列をテーブル定義と して保存する方法や、 ターゲッ ト ファ イルの期日を指定する方法も学習しました。

Exercise 9: データを DB2 ロードレディ ファイルに書Exercise 9: データを DB2 ロードレディ ファイルに書Exercise 9: データを DB2 ロードレディ ファイルに書Exercise 9: データを DB2 ロードレディ ファイルに書き込むき込むき込むき込む

このエクササイズでは、 前回のジ ョブを修正して、 2003 年 1 月 1日以降に雇用された従業員を含めます。 この従業員は 2002 年の賞与の対象ではあ り ませんが、 入社時支度金の対象とな り ます。 ステージ変数を使って、 部署によって異なるこの支度金の計算をします。

区切り文字付きフラ ッ ト ファ イルソースステージからの別の出力リ ンクを追加して、 別の ト ランスフォーマステージで支度金の金額を導き出して、 その結果を DB2 ロードレディ フラ ッ ト ファ イルステージへロード します。

6-10 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 99: Datastage_8Mainframe Job Tutorial

1. 現在のジ ョブを Exercise9 と して保存します。

2. ト ランスフォーマステージと DB2 ロードレディ フラ ッ ト ファ イルステージをジ ョブに追加します。 下記のよ うに、 これらのステージの名前を変更して、 リ ンク します。

3. 区切り文字付きフラ ッ ト ファ イルソースステージを開いて、NewEmployeesOut リ ンクの制約条件を指定します。

a. [ 出力出力出力出力 ] をク リ ッ ク します。

b. [ 制約制約制約制約 ] タブで、 [ 出力名出力名出力名出力名 ] ド ロ ップダウン リ ス トから[NewEmployeesOutNewEmployeesOutNewEmployeesOutNewEmployeesOut] を選択します。

c. [ すべて消去すべて消去すべて消去すべて消去 ] をク リ ッ ク して、 [ConstraintConstraintConstraintConstraint] グ リ ッ ドの内容を消去します。

d. 雇用の日付が 2003 年 1 月 1日以降の従業員を選択する新しい制約条件を定義します。

e. [OKOKOKOK] をク リ ッ ク してそのステージへの変更を保存します。

シンプルフラ ッ ト ファイルの処理 6-11

Page 100: Datastage_8Mainframe Job Tutorial

4. xNewEmployees ステージを開いて編集します。

a. 入力列を HiringBonusesOut リ ンクに直接マッピングします。

b. HiringBonus とい う ステージ変数を作成します。 この変数は、 初期値が 0 の Decimal データ型であ り、 長さは 5、 スケールは 2 です。

c. 第 5 章で学んだよ うに、 下記のよ う な HiringBonus の仕様を作成します。

IF NewEmployeesOut.DEPARTMENT = ‘ENGINEERING’ THEN 1000

ELSE IF NewEmployeesOut.DEPARTMENT = ‘MARKETING’ THEN

500 ELSE

300

END END

d. HIRING_BONUS という名前の出力列を新規作成します。 これは、Decimal データ型で、 長さが 5、 スケールは 2 です。

e. ステージ変数 HiringBonus を HIRING_BONUS の [ 出力仕様出力仕様出力仕様出力仕様 ] セルにド ラ ッグ&ド ロ ップします。

6-12 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 101: Datastage_8Mainframe Job Tutorial

ト ランスフォーマエディ タは下記のよ うに表示されるはずです。

f. [OKOKOKOK] をク リ ッ ク します。

5. DB2 ロード レディ フラ ッ ト ファ イルターゲッ ト ステージを開いて、 [全般全般全般全般 ] タブで下記のよ うに指定します。

a. ファ イル名 : HR.HIRING.BONUSHR.HIRING.BONUSHR.HIRING.BONUSHR.HIRING.BONUS

b. DD 名 : NEWBONUSNEWBONUSNEWBONUSNEWBONUS

c. 書き込みオプシ ョ ン : [ 新規ファイル作成新規ファイル作成新規ファイル作成新規ファイル作成 ]

6. [ バルクローダバルクローダバルクローダバルクローダ ] タブをク リ ッ ク します。 こ こで、 DB2 バルクローダーユーティ リ ティ を実行するパラ メータを設定して、 制御ファイルを生成します。

a. ユーザー名 : dstagedstagedstagedstage

b. DB2 サブシステム ID : DB2DDB2DDB2DDB2D

c. テーブル名 : BONUSBONUSBONUSBONUS

d. テーブルオーナー : DB2OWNDB2OWNDB2OWNDB2OWN

シンプルフラ ッ ト ファイルの処理 6-13

Page 102: Datastage_8Mainframe Job Tutorial

7. [ オプシ ョ ンオプシ ョ ンオプシ ョ ンオプシ ョ ン ] タブで、 下記のよ うに指定します。

a. ボ リ ューム通し番号 : MVS123MVS123MVS123MVS123

b. データベースバージ ョ ン : 6.16.16.16.1

c. 有効期限 : 2003/3652003/3652003/3652003/365

8. [OKOKOKOK] をク リ ッ ク して変更内容を保存します。

9. [ コード生成コード生成コード生成コード生成 ] をク リ ッ ク して、 3 つの生成ファイルすべてのメンバ名と して BONUS0BONUS0BONUS0BONUS03333 を入力します。 ジ ョブのコードを生成して、 実行 JCL を表示させて前回のエクササイズとの違いを調べます。

Exercise 10: FTP ステージを使用するExercise 10: FTP ステージを使用するExercise 10: FTP ステージを使用するExercise 10: FTP ステージを使用する次の手順では、 ジ ョブに FTP ステージを追加して DB2 ロード レディファ イルを別のマシンに転送できるよ うにします。 FTP ステージは、ファ イルの転送で使用する JCL を生成するために必要な情報を収集します。 このステージは、 区切り文字付きフラ ッ ト ファ イルステージ、 DB2ロードレディ フラ ッ ト ファ イルステージ、 および固定幅フラ ッ ト ファ イルステージからの入力を受け付けます。 ファ イル転送には、 FTP、 または Connect:Direct のどちらかを使います。

1. 現在のジ ョブを Exercise10 と して保存します。

2. FTP ステージをジ ョブに追加して、 これを DB2 ロードレディ フラ ット ファ イルステージにリ ンク します。 このステージの名前を変更して、 下記のよ うに リ ンク します。

6-14 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 103: Datastage_8Mainframe Job Tutorial

3. FTP ステージを開きます。 [ 全般全般全般全般 ] ページの [ マシンプロファ イルマシンプロファ イルマシンプロファ イルマシンプロファ イル ]フ ィールドが空であるこ とに注意して ください。 これは、 マネージャでマシンプロファ イルを作成していないからです。 下記のよ うに、 このステージ内から目的のマシンの属性を指定できます。

a. ホス ト名 : RikerRikerRikerRiker

b. ファ イル変換方式 : FTPFTPFTPFTP FTP ステージはファイル変換方式として接続 : 直接もサポート しているこ とに注意して ください。

c. ユーザー名およびパスワード : dstagedstagedstagedstage

d. 転送モード : StreamStreamStreamStream

e. 転送種別 : ASCIIASCIIASCIIASCII

f. その他のフ ィールドはデフォルト設定のままにしておきます。[FTP ステージFTP ステージFTP ステージFTP ステージ ] ダイアログボッ クスは下記のよ うに表示されるはずです。

シンプルフラ ッ ト ファイルの処理 6-15

Page 104: Datastage_8Mainframe Job Tutorial

4. [ 入力入力入力入力 ] をク リ ッ ク して下記のよ うに指定します。

a. [ 転送先ファイル名転送先ファイル名転送先ファイル名転送先ファイル名 ] フ ィールドにc:\HR\Employees\HiringBonus.txtc:\HR\Employees\HiringBonus.txtc:\HR\Employees\HiringBonus.txtc:\HR\Employees\HiringBonus.txt を入力します。

b. [ 移動移動移動移動 ] エリ アの [ メ インフレームメ インフレームメ インフレームメ インフレーム ] は、 デフォルトの設定のままにしておきます。

5. ジ ョブを保存して、 コードを生成します。 [ コード生成パスコード生成パスコード生成パスコード生成パス ] フ ィールドでジ ョブ名を必ず変更して、 前回のエクササイズで生成したCOBOL ファ イルと JCL ファ イルを上書きしないよ うにして ください。 実行 JCL を参照して、 目的のマシンのパラ メータがコードのどの部分に表示されているかを調べます。

これで、 DB2 ロードレディ フラ ッ ト ファ イルを目的のマシンへ転送するための FTP ステージが設定できました。

6-16 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 105: Datastage_8Mainframe Job Tutorial

まとめまとめまとめまとめこの章では、 各種のシンプルフラ ッ ト ファ イルの処理法方を学びました。 区切り文字付きフラ ッ ト ファ イルからデータを読み取り、 列をテーブル定義と して リポジ ト リに保存しました。 固定幅フラ ッ ト ファ イルとDB2 ロード レディ フラ ッ ト ファ イルの両方にデータを書き込みました。ボ リ ューム通し番号やテープの期日などのターゲッ ト ファ イルのパラメータを指定しました。 また、 FTP ステージを使ってターゲッ ト ファ イルを別のマシンに転送しました。 この章でのエクササイズでは、 制約条件の定義、 ステージ変数の宣言、 出力列仕様の作成について習得したことをテス トする機会も与えました。

シンプルフラ ッ ト ファイルの処理 6-17

Page 106: Datastage_8Mainframe Job Tutorial

6-18 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 107: Datastage_8Mainframe Job Tutorial

7コンプレックスフラッ

ト ファイルの処理

メ インフレームジ ョブ内でシンプルフラ ッ ト ファ イルの処理をしました。 こ こで、 コンプレッ クスフラ ッ ト ファ イルからのデータの読み取り方法を説明します。 DataStage Enterprise MVS Edition には、 コンプレッ クスフラ ッ ト ファ イルステージとマルチフォーマッ ト フラ ッ ト ファ イルステージの 2 種類のコンプレッ クスフラ ッ ト ファ イルステージがあ り ます。 この章のエクササイズでは、 これらのステージをソース と して設定して、 そのコンプレッ クスデータ構造体を処理する方法を示します。

Exercise 11 では、 1 つの製品ラインの複数の製品についての情報を提供するジ ョブを作成します。 このジ ョブはコンプレッ クスフラ ッ ト ファ イルからデータを抽出して、 そのデータを変換し、 これを区切り文字付きフラ ッ ト ファ イルにロード します。 この 3 つのステージを設定し、 ジ ョブパラ メータを指定し、 制約条件を定義して、 これまでに習得したこ とを練習します。 また、 あるフォーマッ トから別のフォーマッ トにデータを変換するこ とがどれほど簡単なこ とかがわかるでし ょ う。

Exercise 12 では、 配列をフラ ッ ト化して、 コンプレッ クスフラ ッ ト ファイルでの処理をさ らに一歩前進させます。 フラ ッ ト化したデータを処理して出力ファイルを作成します。 このファ イルには製品の色の一覧があり ます。 それぞれのエクササイズの終わりで、 ジ ョブのコードを生成してその結果を調べます。

Exercise 13 では、 OCCURS DEPENDING ON 句について学びます。 製品の値引き情報を含む配列をフラ ッ ト化するジ ョブを作成します。 そして、 現在の日付の時点で製品の値引きが行われているかど うかを示す出力ファイルを作成します。 この部分で、 ステージ変数を定義して使います。

コンプレッ クスフラ ッ ト ファイルの処理 7-1

Page 108: Datastage_8Mainframe Job Tutorial

Exercise 14 で、 マルチフォーマッ ト フラ ッ ト ファ イルについて説明します。 注文書ファイルから可変長レコードを読み取り、 このレコードを 3つの DB2 ロードレディ ターゲッ ト ファ イルに書き込むジ ョブを作成します。 また、 マネージャでテーブル定義をインポートする練習もします。 Exercise 15 では、 複数のレコード タイプをマージして 1 つの出力リ ンクに渡す方法を示します。

コンプレックスフラ ッ ト ファイルステージの種類コンプレックスフラ ッ ト ファイルステージの種類コンプレックスフラ ッ ト ファイルステージの種類コンプレックスフラ ッ ト ファイルステージの種類コンプレッ クスフラ ッ ト ファ イルには、 GROUP 句、 REDEFINES 句、OCCURS 句、 または OCCURS DEPENDING ON 句などの COBOL 句が含まれます。 これらの句は、 固定長レコード、 または可変長レコードを扱う こ とができます。 下記のステージタイプを使ってコンプレッ クスフラ ッ ト ファ イルデータ構造体からデータを抽出できます。

・ コンプレッ クスフラ ッ ト ファ イル・ マルチフォーマッ ト フラ ッ ト ファ イル

エクササイズを始める前に、 ステージの違いとその使用方法を理解しておく と良いでし ょ う。

コンプレックスフラッ ト ファイルステージコンプレックスフラッ ト ファイルステージコンプレックスフラッ ト ファイルステージコンプレックスフラッ ト ファイルステージ

コンプレッ クスフラ ッ ト ファ イルステージは、 下記のコンプレッ クスフラ ッ ト ファ イルを読み取るこ とができます。

・ QSAM_SEQ_COMPLEXQSAM_SEQ_COMPLEXQSAM_SEQ_COMPLEXQSAM_SEQ_COMPLEX。 QSAM ファ イル構造

・ VSAM_ESDSVSAM_ESDSVSAM_ESDSVSAM_ESDS。 VSAM 入力順データセッ ト ファ イル構造。 このファイル構造からレコードが順次読み取られます。

・ VSAM_KSDSVSAM_KSDSVSAM_KSDSVSAM_KSDS。 VSAM キー順データセッ ト ファイル構造。 このファイル構造からキーを使ってレコードが読み取られます。

・ VSAM_RRDSVSAM_RRDSVSAM_RRDSVSAM_RRDS。 VSAM 相対レコードデータセッ ト ファ イル構造。 このファイル構造から相対数を使ってレコードが読み取られます。

コンプレッ クスフラ ッ ト ファ イルステージは、 固定長レコードや可変長レコードを含むファイルからデータを読み取る と きに使います。 配列を含む CFD をロードする場合、 その配列を正規化するか、 フラ ッ ト化するか、 あるいは選択的にフラ ッ ト化するかを選ぶこ とができます。 配列の処理についてはこの章で後述します。

固定幅フラ ッ ト ファ イルステージと同様、 ステージが読み取る行を制限し、 EOD インジケータを追加し、 ソースファ イルを事前にソートできま

7-2 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 109: Datastage_8Mainframe Job Tutorial

す。 また、 出力データを制限する制約条件を定義した り、 複数の出力リンクにデータを書き込むこ と もできます。

マルチフォーマッ ト フラ ッ ト ファイルステージマルチフォーマッ ト フラ ッ ト ファイルステージマルチフォーマッ ト フラ ッ ト ファイルステージマルチフォーマッ ト フラ ッ ト ファイルステージ

マルチフォーマッ ト フラ ッ ト ファ イルステージは、 一般的に、 複数のレコード タイプに基づいてレコード長が異なるファ イルからデータを抽出する と きに使います。 ただし、 固定長レコードを含むファイルからデータを読み取るこ と もできます。 このステージはコンプレッ クスフラ ッ トファ イルステージと同じ 4 種類のファイル構造を読み取るこ とができます。 ソースデータには、 レコード タイプごとに 1つ以上の GROUP 句、REDEFINES 句、 OCCURS 句、 または OCCURS DEPENDING ON 句を含むこ とができます。

マルチフォーマッ ト フラ ッ ト ファ イルステージを処理する場合、 ステージが読み取るデータのレコード タイプを定義します。 ソースファ イルにほかのレコードがあっても、 ジ ョブが必要とするレコードだけを含める必要があ り ます。 各出力リ ンクには複数のレコード定義を書き込むこ とができます。 また、 同じレコード定義を複数の出力リ ンクに書き込むことができます。

Exercise 11: コンプレックスフラ ッ ト ファイルステーExercise 11: コンプレックスフラ ッ ト ファイルステーExercise 11: コンプレックスフラ ッ ト ファイルステーExercise 11: コンプレックスフラ ッ ト ファイルステージを使用するジを使用するジを使用するジを使用する

このエクササイズでは、 コンプレッ クスフラ ッ ト ファ イルソースステージと区切り文字付きフラ ッ ト ファ イルターゲッ ト ステージを使ってジ ョブを作成します。 ソースファ イルで配列を正規化して、 出力データをフ ィルタ リ ングするための制約条件を指定します。 ジ ョブパラ メータを定義して列メ タデータを編集して、 習得した知識をテス ト してみます。

ジ ョ ブを作成するジ ョ ブを作成するジ ョ ブを作成するジ ョ ブを作成する

まず、 ジ ョブを作成してジ ョブパラ メータを定義します。

1. DataStage デザイナを開いて、 チュート リ アルカテゴ リに Exercise11とい う ジ ョブを新規作成します。

2. コンプレッ クスフラ ッ ト ファ イルソースステージ、 ト ランスフォーマステージ、 区切り文字付きフラ ッ ト ファ イルターゲッ ト ステージをダイアログウ ィンド ウに追加します。 これらのステージを リ ンクして、 その名前を下記のよ うに変更します。

コンプレッ クスフラ ッ ト ファイルの処理 7-3

Page 110: Datastage_8Mainframe Job Tutorial

3. 製品ラインで ProdLine というジ ョブパラ メータを定義します。

a. パラ メータファ イル名と DD 名と して PRMPRODPRMPRODPRMPRODPRMPROD を使います。

b. これを、 長さが 4 の CharCharCharChar データ型と して定義します。

コンプレックスフラッ ト ファイルソースステージを設定するコンプレックスフラッ ト ファイルソースステージを設定するコンプレックスフラッ ト ファイルソースステージを設定するコンプレックスフラッ ト ファイルソースステージを設定する

次に、 製品ソースステージを編集してコンプレッ クスフラ ッ ト ファ イルデータを処理します。

1. コンプレッ クスフラ ッ ト ファ イルステージを開いて、 下記のよ うに名前を指定します。

a. ファ イル名 : SLS.PRODUCTSLS.PRODUCTSLS.PRODUCTSLS.PRODUCT

b. DD 名 : PRODUCTPRODUCTPRODUCTPRODUCT

c. ソースには配列があるのでブロ ッ ク タイプは、 [ 可変長ブロッ ク可変長ブロッ ク可変長ブロッ ク可変長ブロッ クファ イルファ イルファ イルファ イル ] と します。

2. Sales カテゴ リ内の PRODUCTS テーブルから列定義をロード します。

a. [ 列を選択列を選択列を選択列を選択 ] ダイアログボッ クスで [OKOKOKOK] をク リ ッ ク してすべての列をロード します。

7-4 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 111: Datastage_8Mainframe Job Tutorial

b. [ コンプレッ クスファ イルロードオプシ ョ ンコンプレッ クスファ イルロードオプシ ョ ンコンプレッ クスファ イルロードオプシ ョ ンコンプレッ クスファ イルロードオプシ ョ ン ] ダイアログボッ クスでは [ 全ての配列を正規化する全ての配列を正規化する全ての配列を正規化する全ての配列を正規化する ] はデフォルト設定のままにします。

配列を正規化 (または保存) する と、 配列のそれぞれの発生を個々のレコード と して処理できます。 この場合、 AVAILABLE_COLORS配列内の製品の色と PROD_DISCOUNTS 配列内の製品の値引きが個々のレコードにな り ます。 正規化された配列を出力と して選択する方法については、 『DataStage メ インフレーム ジ ョブ開発者ガイド』 を参照して ください。

c. [OKOKOKOK] をク リ ッ ク して続行します。

3. EFF_START_DATE 列で右ク リ ッ ク して、 シ ョー ト カッ ト メニューから [ 行を編集行を編集行を編集行を編集 ...] を選択して [ 列メ タデータ編集列メ タデータ編集列メ タデータ編集列メ タデータ編集 ] ダイアログボッ クスを開きます。 [ 日付フォーマッ ト日付フォーマッ ト日付フォーマッ ト日付フォーマッ ト ] ド ロ ップダウン リ ス トで [MM-MM-MM-MM-DD-YYDD-YYDD-YYDD-YY] を選択します。 [ 適用適用適用適用 ] をク リ ッ ク してから [ 閉じる閉じる閉じる閉じる ] をクリ ッ ク して続行します。

コンプレッ クスフラ ッ ト ファイルの処理 7-5

Page 112: Datastage_8Mainframe Job Tutorial

4. [ 出力出力出力出力 ] ページで [ 選択選択選択選択 ] タブをク リ ッ ク して、 PRODUCT_ID、PRODUCT_DESC、 COLOR_CODE、 COLOR_DESC、 UNIT_PRICE、 および EFF_START_DATE の列をこの順序で [ 選択した列選択した列選択した列選択した列 ] リ ス ト に移動します。

PROD_DISCOUNTS 列は選択できないこ とに注意して ください。 これは、 DECIMAL 型のサブレベル項目を持つグループ項目であるためです。 サブレベル項目が CHARACTER 型に含まれる場合だけグループ項目を選択できます。

5. ジ ョブパラ メータで指定した 製品ラインから専用の製品を選択するという制約条件を [ 制約制約制約制約 ] タブで定義します。

6. [OKOKOKOK] をク リ ッ ク して設定を受け付けます。 これでソースステージが完了しました。

区切り文字付きフラッ ト ファイルターゲッ トステージを設定する区切り文字付きフラッ ト ファイルターゲッ トステージを設定する区切り文字付きフラッ ト ファイルターゲッ トステージを設定する区切り文字付きフラッ ト ファイルターゲッ トステージを設定する

こ こで、 ト ランスフォーマステージで列を移動して、 区切り文字付きフラ ッ ト ファ イルターゲッ ト ステージを編集して、 ジ ョブの残りの部分を設定します。

1. ト ランスフォーマステージを開いて、 入力列を出力リ ンクに直接マッピングします。

7-6 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 113: Datastage_8Mainframe Job Tutorial

2. 区切り文字付きフラ ッ ト ファ イルターゲッ ト ステージを開いて、 [ 全全全全般般般般 ] タブで下記のよ うに指定します。

a. ファ イル名 : SLS.PRODUCT.COLORSSLS.PRODUCT.COLORSSLS.PRODUCT.COLORSSLS.PRODUCT.COLORS

b. DD 名 : PRODCOLSPRODCOLSPRODCOLSPRODCOLS

c. 書き込みオプシ ョ ン : [ 新規ファイル作成新規ファイル作成新規ファイル作成新規ファイル作成 ]

3. [ 列列列列 ] タブをク リ ッ ク して、 CCYYMMDDCCYYMMDDCCYYMMDDCCYYMMDD の日付フォーマッ ト を指定するために EFF_START_DATE のメ タデータを編集します。

DataStage Enterprise MVS Edition では、 データをソースからターゲットへ移動する と きに、 日付をある形式から別の形式に簡単に変換できます。 [ 列メ タデータ編集列メ タデータ編集列メ タデータ編集列メ タデータ編集 ] ダイアログボッ クスを使ってソースステージと ターゲッ ト ステージで該当する形式を選択します。 コード生成時に、 その日付が新しい形式に自動的に変換されます。

4. [ フォーマッ トフォーマッ トフォーマッ トフォーマッ ト ] タブをク リ ッ ク して、 列の区切り文字と してパイプ記号 (|) を指定します。

5. [ オプシ ョ ンオプシ ョ ンオプシ ョ ンオプシ ョ ン ] タブをク リ ッ ク して、 ボ リ ューム通し番号にMVS123MVS123MVS123MVS123、 保持期限に 180180180180 を指定します。

6. [OKOKOKOK] をク リ ッ ク して、 区切り文字フラ ッ ト ファ イルステージへの変更内容を保存してからこのジ ョブを保存します。

7. [ コード生成コード生成コード生成コード生成 ] をク リ ッ ク して、 3 つの生成ファイルすべてのメンバ名と して PRODCOL を入力します。

8. ジ ョブのコードを生成してから [ 表示表示表示表示 ] をク リ ッ ク して、 生成ファイルを表示させます。

この時点で、 コンプレッ クスフラ ッ ト ファ イルステージの設定方法をよくおわかりでし ょ う。 コンプレッ クスファ イル構造からのデータの読み取り方法、 および配列の正規化時の処理を理解し、 区切り文字付きフラ ッ ト ファ イルステージをターゲッ ト と して使用する方法も理解できたでし ょ う。

コンプレッ クスフラ ッ ト ファイルの処理 7-7

Page 114: Datastage_8Mainframe Job Tutorial

Exercise 12: 配列をフラッ ト化するExercise 12: 配列をフラッ ト化するExercise 12: 配列をフラッ ト化するExercise 12: 配列をフラッ ト化する配列をフラ ッ ト化して、 Exercise 11 で習得したこ とをさ らに展開してみまし ょ う。 配列をフラ ッ ト化する場合、 それぞれの発生は (入力ファ イルの OCCURS 句で述べたよ うに) 個々の列になり ます。 行がファイルから読み取られる と、 その配列の発生はすべて、 1 行にフラ ッ ト化されます。

1. Exercise11 を開いて、 これを Exercise12 と して保存します。

2. コンプレッ クスフラ ッ ト ファ イルステージを開いて、 そのステージを修正し、 各製品がその色のリ ス ト と と もに出力ファイルに一度だけ リ ス ト されるよ うにします。

a. [ 列列列列 ] タブの列定義を消去して、 PRODUCTS テーブルから列定義すべてを再ロード します。

b. [ コンプレッ クスファ イルロードオプシ ョ ンコンプレッ クスファ イルロードオプシ ョ ンコンプレッ クスファ イルロードオプシ ョ ンコンプレッ クスファ イルロードオプシ ョ ン ] ダイアログボッ クスで [ 選択した配列をフラ ッ トにする選択した配列をフラ ッ トにする選択した配列をフラ ッ トにする選択した配列をフラ ッ トにする ] をク リ ッ ク してから、AVAILABLE_COLORS 配列を右ク リ ッ ク して [ フラ ッ ト化フラ ッ ト化フラ ッ ト化フラ ッ ト化 ] を選択します。 配列アイコンが変わるこ とに注意して ください。AVAILABLE_COLORS のそれぞれの発生がこ こで個々の列になり ます。 [OKOKOKOK] をク リ ッ ク して続行します。

c. [ 出力出力出力出力 ] ページの [ 選択選択選択選択 ] タブをク リ ッ ク して [ 使用可能な列使用可能な列使用可能な列使用可能な列 ] リス ト をスクロールダウンします。 サフ ィ ッ クスに発生番号を示した AVAILABLE_COLORS が 4 回表示されるこ とに注意して ください。

d. 下記の列を含むよ うに [ 選択選択選択選択 ] タブの [ 選択した列選択した列選択した列選択した列 ] リ ス ト を修正します。 PRODUCT_ID、 PRODUCT_DESC、 COLOR_DESC、COLOR_DESC_2、 COLOR_DESC_3、 COLOR_DESC_4、UNIT_PRICE、 および EFF_START_DATE。 [ 選択した列選択した列選択した列選択した列 ] リ ス トの右にある矢印ボタンを使って上記の列をこの順序に並べ替えます。

e. [ 制約制約制約制約 ] タブで制約条件を変更してはいけません。

f. [OKOKOKOK] をク リ ッ ク してソースステージの変更内容を保存します。

3. 区切り文字付きフラ ッ ト ファ イルターゲッ ト ステージを開いて、 [ 全全全全般般般般 ] タブでファイル名を SLS.PRODUCT.COLORS.LIST に変更します。 [ 列列列列 ] タブで COLOR_CODE 列を削除します。

7-8 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 115: Datastage_8Mainframe Job Tutorial

4. ト ランスフォーマステージを開いて、 COLOR_DESC 列仕様を編集して下記の形式の文字列になるよ うにします。

‘This product comes in colors: <color1>, <color2>, <color3> and <color4>’

式を作成するには、 式エディ タで下記のよ うに色の説明入力列、 連結 (||) 演算子、 切り捨て関数を使います。

a. [ 式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス ] ボッ クスで、 既存の仕様を消去して下記を入力します。

‘This product comes in colors: ’

b. 連結 (||) 演算子をク リ ッ ク します。 これは、 式の初期テキス ト文字列と次のコンポーネン ト とを結合します。

c. 色の説明の長さはそれぞれ異なるので、 結果をよ り読みやすくするために空白スペースを切り捨てます。 [ 項目タイプ項目タイプ項目タイプ項目タイプ ] リ ス トの [ ビルト インルーチンビルト インルーチンビルト インルーチンビルト インルーチン ] ブランチを展開します。 [ 文字列文字列文字列文字列 ] をク リ ッ ク して文字列関数を表示します。 文字列から終了文字を削除する TRIM 関数をダブルク リ ッ ク します。

d. [ 式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス ] ボッ クスで、 < 文字 > を 「‘ ‘」 (一重引用符、 スペース、 一重引用符) に置き換えます。 これは、 色の説明からスペースを削除するよ う指定します。

e. [ 式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス ] ボッ クスで、 < 文字列 > を反転させて、 それを COLOR_DESC 列に置き換えます。 これによって 初の色が式に入り ます。

f. 連結 (||) 演算子を式の 後に入れます。

g. 初の色の後にカンマとスペースを入れるよ う 「‘, ’」 を入力します。

h. 連結 (||) 演算子を再びク リ ッ ク します。 こ こで式は下記のよ うに表示されるはずです。

‘This product comes in colors: ‘|| TRIM(TRAILING ‘ ‘ FROM ProductsOut.COLOR_ DESC)||‘, ‘||

i. 手順 c ~ h を繰り返して、 残りの色の説明を式に追加します。

コンプレッ クスフラ ッ ト ファイルの処理 7-9

Page 116: Datastage_8Mainframe Job Tutorial

これが終わったら、 [ 式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス式シンタ ッ クス ] ボッ クスは下記のよ うに表示されるはずです。

5. ト ランスフォーマエディ タのメ タデータエ リ アで、 COLOR_DESC 出力列の長さを 100 に変更します。 これによって、 色のリ ス ト全体が列仕様に表示されるよ うにな り ます。

6. ジ ョブを保存してから、 コードを生成してジ ョブの検証が成功するよ うにします。 必ず [ コード生成パスコード生成パスコード生成パスコード生成パス ] フ ィールドのジ ョブ名を変更して、 前回のエクササイズで生成した COBOL ファ イルや JCLファ イルを上書きしないよ うにして ください。

Exercise 13: OCCURS DEPENDING ON 句を処理するExercise 13: OCCURS DEPENDING ON 句を処理するExercise 13: OCCURS DEPENDING ON 句を処理するExercise 13: OCCURS DEPENDING ON 句を処理するOCCURS DEPENDING ON 句は、 可変長配列を指定する と きに使うOCCURS 句の特殊サブセッ トです。 OCCURS DEPENDING ON 文はフ ィールドの 小および 大発生回数、 および発生回数によって決まるフ ィールドを定義します。 例を下記に示します。

05 PROD-DISCOUNTS OCCURS 0 TO 2 TIMESDEPENDING ON DISCOUNT-CODE

OCCURS DEPENDING ON 句を含むデータを DataStage にインポートする場合、 可変長テーブル定義を作成します。 コンプレッ クスフラ ッ ト ファイルステージ、 マルチフォーマッ ト フラ ッ ト ファ イルステージ、 または外部ソースステージを使ってこのよ う なデータを読み取るこ とができます。 DataStage を使用する と、 1 つのテーブルで複数の OCCURS DEPENDING ON 句を扱う こ とができます。

OCCURS DEPENDING ON 句のあるテーブルをロードする場合に、 配列を正規化するオプシ ョ ン、 または配列をフラ ッ ト化するオプシ ョ ンを使えます。

・ 配列を正規化する場合、 その配列のそれぞれの発生を個々のレコード と して処理できます。 レコード数は、 発生回数によって決まるフ ィールドの値で決ま り ます。 上記の例では、DISCOUNT_CODE の値に応じて 2 つのレコードはゼロになり ます。

7-10 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 117: Datastage_8Mainframe Job Tutorial

・ 配列をフラ ッ ト化する と、 それぞれの発生は個々の列になり ます。列数は OCCURS DEPENDING ON 句で指定した 大数です。 上記の例で配列をフラ ッ ト化する と、 結果は 2 つの列になり ます。

現在、 DataStage は OCCURS DEPENDING ON 配列の処理で下記の制限を設けています。

・ コンプレッ クスフラ ッ ト ファ イルステージでは、 OCCURS DEPENDING ON の 1つの発生だけがフラ ッ ト化され、 これが 後の 1つになる必要があ り ます。 ソースファ イルに複数の OCCURS DEPENDING ON 句がある場合、 そのすべての句がデフォルトで正規化されます。

・ マルチフォーマッ ト フラ ッ ト ファイルステージでは、 OCCURS DEPENDING ON 句の発生はどれもフラ ッ ト化されません。

・ 外部ソースステージでは、 OCCURS DEPENDING ON 句の発生すべてがフラ ッ ト化されます。

Exercise 11 で作成したジ ョブを修正して、 どの製品が値引きされるかを調べます。 一年に 2 回セールになる製品や、 一年に 1 回だけしかセールにならない製品、 まったく値引き対象にならない製品があ り ます。DISCOUNT_CODE に応じて 2 回まで発生する PROD_ DISCOUNTS 配列をフラ ッ ト化します。 そして、 指定の製品がセールになるかど うかを調べるために、 現在の日付と値引きの日付とを照合する仕様を作成します。

1. Exercise11 を開いてこれを Exercise13 と して保存します。

2. 区切り文字付きフラ ッ ト ファ イルステージの名前を ProductDiscountsProductDiscountsProductDiscountsProductDiscountsに変更します。

3. コンプレッ クスフラ ッ ト ファ イルステージを開いて、 これを修正します。

a. [ 列列列列 ] タブで PRODUCTS テーブルから列定義すべてを再ロードします。

b. [ コンプレッ クスファ イルロードオプシ ョ ンコンプレッ クスファ イルロードオプシ ョ ンコンプレッ クスファ イルロードオプシ ョ ンコンプレッ クスファ イルロードオプシ ョ ン ] ダイアログボッ クスで [ 選択した配列をフラ ッ トにする選択した配列をフラ ッ トにする選択した配列をフラ ッ トにする選択した配列をフラ ッ トにする ] をク リ ッ ク します。PROD_DISCOUNTS で右ク リ ッ ク して [ フラ ッ ト化フラ ッ ト化フラ ッ ト化フラ ッ ト化 ] を選択します。

c. [ 選択選択選択選択 ] タブで [ 選択した列選択した列選択した列選択した列 ] リ ス ト を修正して下記の列を含めます。 PRODUCT_ID、 PRODUCT_DESC、 UNIT_PRICE、DISCOUNT_CODE、 DISC_FROM_DATE、 DISC_END_DATE、DISC_PCT、 DISC_FROM_DATE_2、 DISC_END_DATE_2、 およびDISC_PCT_2。

コンプレッ クスフラ ッ ト ファイルの処理 7-11

Page 118: Datastage_8Mainframe Job Tutorial

d. [ 制約制約制約制約 ] タブの制約条件はそのまま残します。

e. [OKOKOKOK] をク リ ッ ク して変更内容を保存します。

4. ト ランスフォーマステージを開いて、 これを修正します。

a. 出力リ ンクから COLOR_CODE 列、 COLOR_DESC 列、 およびEFF_START_DATE 列を削除します。

b. 出力リ ンクで DISCOUNT とい う新しい列を入れます。 この列を長さが 3、 スケールが 3 の Decimal データ型と して定義します。

c. 第 5 章で習得したよ うに、 DiscountStartDate1、DiscountEndDate1、 DiscountStartDate2、 およびDiscountEndDate2 という名前の 4 つのステージ変数を作成します。 各変数に対して日付 SQL タイプと精度 10 を指定します。

d. ステージ変数の仕様を作成して、 DISC_FROM_DATE 列、DISC_END_DATE 列、 DISC_FROM_DATE_2 列、 およびDISC_END_DATE_2 列を Char データ型から Date データ型に変換します (これは、 後で日付を比較する と きに必要とな り ます)。式を作成するには、 [ ビルト インルーチンビルト インルーチンビルト インルーチンビルト インルーチン ] リ ス ト の [ データ型 データ型 データ型 データ型 変換変換変換変換 ] ブランチから該当する CASTCASTCASTCAST 関数を選択します。 これをしたら、 ト ランスフォーマエディ タのステージ変数テーブルは下記のよ うに表示されるはずです。

e. 今日の日付と値引き対象となる日付を比較する DISCOUNT の仕様を作成し、 適用する値引き率がある場合はそれを返します。式を作成するには、 ネス ト した一連の IF THEN ELSE 文を使います。 まず、 DISCOUNT_CODE の値 (0、 1、 または 2 のどれか)をチェッ ク して、 製品がセールになる回数を調べます。PROD_DISCOUNTS 配列の発生回数が DISCOUNT_CODE の値に応じて異なるこ とを覚えておいてください。 製品がセールになる回数を調べたら、 今日の日付と値引き期間の一方または両方とをチェッ クするべきかど うかがわかり ます。

7-12 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 119: Datastage_8Mainframe Job Tutorial

例えば、 DISCOUNT_CODE が 0 であれば、 その製品がセールになるこ とはな く、 式は 0 の値を返します。 DISCOUNT_CODE が 1 の場合、 製品は 初のセール期間中値引きされます。 式は今日の日付がそのセールの日付の範囲内にあるかど うかをチェッ ク します。 日付が範囲内にあれば、 式は値引き率を返します。 範囲内になければ、 0の値を返します。 同様に、 DISCOUNT_CODE が 2 であれば、 製品は初と 2 番目の両方のセール期間中、 値引きされます。 式は現在の

日付と両方のセール期間とを比較して、 該当する値引き率を返します。 現在の日付がセール日付の範囲外であれば 0 を返します。

BETWEEN 関数を使って日付を比較します。 <Expression1> を、 [ 項項項項目タイプ目タイプ目タイプ目タイプ ] リ ス ト の [ 定数定数定数定数 ] ブランチの定数である CURRENT_DATEと置き換えます。 <Expression2> と <Expression3> は、 ステージ変数と置き換えます。 これが終わる と、 式は下記のよ うに表示されるはずです。

IF ProductsOut.DISCOUNT_CODE = 0 THEN 0

ELSEIF ProductsOut.DISCOUNT_CODE = 1 THEN

IF CURRENT_DATE BETWEEN DiscountStartDate1 AND DiscountEndDate1 THENProductsOut.DISC_PCT

ELSE 0

END

ELSEIF ProductsOut.DISCOUNT_CODE = 2 THEN

IF CURRENT_DATE BETWEEN DiscountStartDate1 AND DiscountEndDate1 THENProductsOut.DISC_PCT

ELSE IF CURRENT_DATE BETWEEN DiscountStartDate2 AND DiscountEndDate2THEN ProductsOut.DISC_PCT_2

ELSE 0

END END

ELSE0

END END

END

コンプレッ クスフラ ッ ト ファイルの処理 7-13

Page 120: Datastage_8Mainframe Job Tutorial

5. 区切り文字付きフラ ッ ト ファ イルステージを開いて、 ファ イル名をSLS.PRODUCT.DISCOUNTSLS.PRODUCT.DISCOUNTSLS.PRODUCT.DISCOUNTSLS.PRODUCT.DISCOUNT に、 DD 名を DISCOUNTDISCOUNTDISCOUNTDISCOUNT に変更します。DISCOUNT 列が [ 列列列列 ] タブに表示されているこ とを確認します。

6. ジ ョブを保存してコードを生成します。 ジ ョブ名をコード生成パスで Exercise13Exercise13Exercise13Exercise13 に変更して 3 つの生成ファイルすべてのメンバ名と して PRODDISCPRODDISCPRODDISCPRODDISC を入力します。 生成 COBOL プログラムで結果を調べます。

OCCURS DEPENDING ON 配列をフラ ッ ト化するジ ョブを作成しました。入力列のデータ型を Date に変換するステージ変数を定義しました。 そして、 式エディ タを使ってコンプレッ クス出力列仕様を作成しました。仕様は、 製品の値引き回数を調べてから、 現在の日付と値引き開始日と値引き終了日とを比較します。 製品がセール対象である場合はその値引き率を、 製品がセール対象でない場合はゼロを返します。

Exercise 14: マルチフォーマッ ト フラ ッ ト ファイルスExercise 14: マルチフォーマッ ト フラ ッ ト ファイルスExercise 14: マルチフォーマッ ト フラ ッ ト ファイルスExercise 14: マルチフォーマッ ト フラ ッ ト ファイルステージを使用するテージを使用するテージを使用するテージを使用する

このエクササイズでは、 複数のレコード タイプがあるファ イルからのデータの読み取り方法を示します。 発注書に使用するさまざまなレコードを含む CFD ファ イルをインポート します。 レコード タイプは顧客レコード、 発注レコード、 および納品書レコードの 3 つです。 マルチフォーマッ ト フラ ッ ト ファ イルステージを使ってソースデータを読み取るジ ョブを作成し、 3 つの DB2 ロード レディ ステージを使ってデータを目的の DB2 テーブルにバルクロードするジ ョブを作成します。

レコード定義をインポートするレコード定義をインポートするレコード定義をインポートするレコード定義をインポートする

まず、 マルチフォーマッ ト ファ イル定義をインポート してレコード タイプを調べます。

1. マネージャを開いて、 第 3 章で習得したよ うに MCUST_REC、MINV_REC、 および MORD_REC レコード定義をチュート リ アル CD内の PurchaseOrders.cfd ファ イルからインポート します。 レコード定義を COBOL FD\Sales カテゴ リ内に保存します。

2. 3 つのレコード定義をそれぞれ開いて、 列メ タデータを調べます。マルチフォーマッ ト ファ イル内のレコードの列メ タデータは、 ほかのソースファ イルタイプの列メ タデータ と同じです。 ただし、 ファイル内の一番大きいレコードをジ ョブで使っても使わなくても、 その格納長を知るこ とが重要です。 どのレコードが一番大きいかを調べてみまし ょ う。 この格納長の情報は後で使います。

7-14 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 121: Datastage_8Mainframe Job Tutorial

ジ ョ ブを作成するジ ョ ブを作成するジ ョ ブを作成するジ ョ ブを作成する

次に、 3 つの出力リ ンクがあるマルチフォーマッ ト フラ ッ ト ファ イルソースステージを使ってジ ョブを作成します。 それぞれの出力リ ンクはマルチフォーマッ ト ファ イルのレコード タイプの 1 つからのデータを扱います。 それぞれのリ ンクのデータは ト ランスフォーマステージを介して渡されて、 DB2 ロード レディ ターゲッ ト ステージに書き込まれます。

1. デザイナを開いて、 Tutorial カテゴ リに Exercise14 というジ ョブを新規作成します。

2. マルチフォーマッ ト フラ ッ ト ファ イルソースステージ、 3 つのト ランスフォーマステージ、 および 3 つの DB2 ロードレディ ターゲッ トステージをダイアグラムウ ィンド ウに追加します。 これらのステージを リ ンク してその名前を下記のよ うに変更します。

コンプレッ クスフラ ッ ト ファイルの処理 7-15

Page 122: Datastage_8Mainframe Job Tutorial

ソースステージを設定するソースステージを設定するソースステージを設定するソースステージを設定する

こ こで、 PurchaseOrders ソースステージを編集してマルチフォーマッ トデータを処理します。

1. マルチフォーマッ ト フラ ッ ト ファ イルステージを開いて、 [ 全般全般全般全般 ] タブで下記のよ うに指定します。

a. ファ イル名 : SLS.PURCHASE.ORDERSSLS.PURCHASE.ORDERSSLS.PURCHASE.ORDERSSLS.PURCHASE.ORDERS

b. DD 名 : PURCHORDPURCHORDPURCHORDPURCHORD

c. ブロ ッ ク タイプ : [ 可変長ブロ ッ クファ イル可変長ブロ ッ クファ イル可変長ブロ ッ クファ イル可変長ブロ ッ クファ イル ]  これはマルチフォーマッ ト フラ ッ ト ファ イルステージではデフォルトです。

d. [ 大ファイルレコードサイズ大ファイルレコードサイズ大ファイルレコードサイズ大ファイルレコードサイズ ] フ ィールドに注意して ください。 このフ ィールドの値はソースファ イルで一番大きいレコードをステージにロード してもしな くても、 その格納長以上でなければなり ません。 どのレコードが一番大きいかがわかっていますか。 覚えていなくても心配するこ とはあ り ません。 その場合は、 3 つのレコードすべてをステージにロード します。DataStage が自動的に、 ロード された中で一番大きいレコードの

大格納長にこのフ ィールドを設定します。

2. [ レコードレコードレコードレコード ] タブをク リ ッ ク してレコード メ タデータをインポート します。

e. [ 新規レコード新規レコード新規レコード新規レコード ] をク リ ッ ク して、 デフォル トのレコード名をORDERSORDERSORDERSORDERS に変更します。 レコード名は、 マネージャにインポート されたレコード定義の名前と一致する必要はあ り ません。ORDERS の隣の [ マスタマスタマスタマスタ ] チェッ クボッ クスにチェ ッ クマークを付けて、 これがマスターレコードであるこ とを指定します。

a. [ ロードロードロードロード ] をク リ ッ ク して MORD_REC レコード定義から列をロード します。 [ 列を選択列を選択列を選択列を選択 ] ダイアログボッ クスで、 [OKOKOKOK] をクリ ッ ク してすべての列をロード します。 ステージで正しいレコード定義を作成するには、 常にすべての列をロードする必要があ り ます。 これで、 [ 出力出力出力出力 ] ページで列のサブセッ ト を出力するよ う選択できます。

b. CUSTOMERS とい う名前のレコードを新規作成して、MCUST_REC レコード定義からすべての列定義をロード します。[ コンプレッ クスファ イルロードオプシ ョ ンコンプレッ クスファ イルロードオプシ ョ ンコンプレッ クスファ イルロードオプシ ョ ンコンプレッ クスファ イルロードオプシ ョ ン ] ダイアログボッ クスの [ 全ての配列を正規化する全ての配列を正規化する全ての配列を正規化する全ての配列を正規化する ] はデフォルトのままにしておきます。

7-16 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 123: Datastage_8Mainframe Job Tutorial

c. INVOICESINVOICESINVOICESINVOICES とい う 3 番目のレコードを作成して、 MINV_REC レコード定義からすべての列定義をロード します。 配列をフラ ット化してはいけません。 こ こで [ レコードレコードレコードレコード ] タブは下記のよ うに表示されるはずです。

3. [ レコード IDレコード IDレコード IDレコード ID] タブをク リ ッ ク します。 マルチフォーマッ ト フラ ッ トファ イルステージの各出力リ ンクのレコード ID を指定する必要があり ます。 レコード ID フ ィールドは各レコードで同じ位置になければなり ません。

a. ORDERS レコードでは、 [ 列列列列 ] フ ィールドでPurchaseOrders.ORDERS.MORD_TYPEPurchaseOrders.ORDERS.MORD_TYPEPurchaseOrders.ORDERS.MORD_TYPEPurchaseOrders.ORDERS.MORD_TYPE 列を選択して、 = 演算子を選び、 [ 列 / 値列 / 値列 / 値列 / 値 ] フ ィールドに ‘OOOO’ を入力します。 レコード IDがこのページの下部の [ 制約制約制約制約 ] ボッ クスに表示されるこ とに注意して ください。

b. CUSTOMERS レコードでは、 レコード ID を定義します。 こ こで、 PurchaseOrders.CUSTOMERS.MCUST_TYPEPurchaseOrders.CUSTOMERS.MCUST_TYPEPurchaseOrders.CUSTOMERS.MCUST_TYPEPurchaseOrders.CUSTOMERS.MCUST_TYPE は ‘CCCC’ です。

c. INVOICES レコードでは、 レコード ID を定義します。 こ こで、PurchaseOrders.INVOICES.MINV_TYPEPurchaseOrders.INVOICES.MINV_TYPEPurchaseOrders.INVOICES.MINV_TYPEPurchaseOrders.INVOICES.MINV_TYPE は ‘IIII’ です。

4. [ レコード参照レコード参照レコード参照レコード参照 ] タブをク リ ッ ク します。 選択したレコードの合計のファイルの長さがこのページの下部に表示されているこ とに注意して ください。 一番大きいレコードの長さを調べます。 後で [ 大大大大

コンプレッ クスフラ ッ ト ファイルの処理 7-17

Page 124: Datastage_8Mainframe Job Tutorial

ファ イルレコードサイズファ イルレコードサイズファ イルレコードサイズファ イルレコードサイズ ] フ ィールドで値を確認する と きにこの長さを使います。

5. [ 出力出力出力出力 ] ページをク リ ッ ク します。 [ 選択選択選択選択 ] タブがデフォルトで表示されます。 列プッシュオプシ ョ ンは、 デザイナオプシ ョ ンでこれを選択していてもマルチフォーマッ ト フラ ッ ト ファ イルステージでは使えません。 そのため、 ステージから出力する列を選択する必要があ り ます。

a. [ 出力名出力名出力名出力名 ] フ ィールドで OrdersOut リ ンクを選択します。 このすべての列を [ 選択した列選択した列選択した列選択した列 ] リ ス トに移動するには、 [ 使用可能な使用可能な使用可能な使用可能な列列列列 ] リ ス ト で ORDERS レコード名を反転させて [>>>>>>>>] をク リ ッ クします。

b. [ 出力名出力名出力名出力名 ] フ ィールドで CustomersOut リ ンクを選択して、CUSTOMERS レコードから [ 選択した列選択した列選択した列選択した列 ] リ ス トにすべての列を移動します。

c. InvoicesOut リ ンクを選択して、 INVOICES レコードから [ 選択し選択し選択し選択した列た列た列た列 ] リ ス トにすべての列を移動します。

6. [ 制約制約制約制約 ] タブをク リ ッ ク します。 オプシ ョ ンで、 [ 出力条件出力条件出力条件出力条件 ] グ リ ッドで制約条件を定義して、 出力データをフ ィルタ リ ングできます。OrdersOut リ ンクでは、 合計が $100.00 以上の注文だけを選択する制約条件を定義します。

7-18 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 125: Datastage_8Mainframe Job Tutorial

7. [OKOKOKOK] をク リ ッ ク して設定を受け付けて、 マルチフォーマッ ト フラ ット ファ イルステージエディ タを閉じます。

8. ステージエディ タを再び開いて、 DataStage が [ 大ファイルレコー大ファイルレコー大ファイルレコー大ファイルレコードサイズドサイズドサイズドサイズ ] フ ィールドで正しい値を計算したかど うかを確認します。

ソースステージがこれで完了しました。

ト ランスフォーマステージと ターゲッ トステージを設定するト ランスフォーマステージと ターゲッ トステージを設定するト ランスフォーマステージと ターゲッ トステージを設定するト ランスフォーマステージと ターゲッ トステージを設定する

次に、 ジ ョブの残りの部分を設定します。

1. 各ト ランスフォーマステージでは、 入力列を出力リ ンクに直接マッピングします。 これには、 ト ランスフォーマエディ タを開かないでする簡単な方法があ り ます。 単に、 ダイアグラムウ ィ ンド ウの ト ランスフォーマステージで右ク リ ッ ク して、 シ ョート カッ ト メニューから [ 列を転送列を転送列を転送列を転送 ] を選択します。 そして、 ステージへの入力リ ンクと、 列が入れられる目的の出力リ ンクを選択します。 列は自動的に入力リ ンクから出力リ ンクへ伝播されて、 列マッピングが定義されます。 処理が完了する と リ ンクマーカーが出力リ ンクに表示されます。

2. Orders ターゲッ ト ステージを開いて、 [ 全般全般全般全般 ]、 [ バルクローダーバルクローダーバルクローダーバルクローダー ]、および [ オプシ ョ ンオプシ ョ ンオプシ ョ ンオプシ ョ ン ] タブで下記のよ うに指定します。

a. ファ イル名 : SLS.ORDERSSLS.ORDERSSLS.ORDERSSLS.ORDERS

b. DD 名 : ORDTOTALORDTOTALORDTOTALORDTOTAL

c. 書き込みオプシ ョ ン : [ 新規ファイル作成新規ファイル作成新規ファイル作成新規ファイル作成 ]

d. ユーザー名 : dstagedstagedstagedstage

e. DB2 サブシステム ID : DB2DDB2DDB2DDB2D

f. テーブル名 : ORDERSORDERSORDERSORDERS

g. テーブルオーナー : DB2OWNDB2OWNDB2OWNDB2OWN

h. ボ リ ューム通し番号 : MVS123MVS123MVS123MVS123

i. 保持期限 : 30303030 日

3. [OKOKOKOK] をク リ ッ ク して変更内容を保存します。

4. Customers ターゲッ ト ステージで手順 2 ~ 5 を繰り返します。 ファイル名は SLS.CUSTOMER.INFOSLS.CUSTOMER.INFOSLS.CUSTOMER.INFOSLS.CUSTOMER.INFO、 DD 名は CUSTINFOCUSTINFOCUSTINFOCUSTINFO です。 テーブル名は CUSTOMERSCUSTOMERSCUSTOMERSCUSTOMERS です。 ほかのパラ メータは同じです。

コンプレッ クスフラ ッ ト ファイルの処理 7-19

Page 126: Datastage_8Mainframe Job Tutorial

5. Invoices ターゲッ ト ステージを設定します。 ファ イル名はSLS.INVOICESSLS.INVOICESSLS.INVOICESSLS.INVOICES、 DD 名は INVOICEINVOICEINVOICEINVOICE、 テーブル名は INVOICESINVOICESINVOICESINVOICES です。ほかのパラ メータは Order ステージと Customers ステージのパラメータ と同じである必要があ り ます。

6. ジ ョブを保存してコードを生成します。

マルチフォーマッ ト ソースファ イルからレコード読み取るジ ョブの作成に成功しました。 レコードの定義方法、 大ファ イルレコードサイズの調べ方、 レコード ID の指定方法も習得しました。 次に、 複数のレコード タイプのデータを 1つの出力リ ンクにマージする方法を説明します。

Exercise 15: マルチフォーマッ ト レコード タイプをExercise 15: マルチフォーマッ ト レコード タイプをExercise 15: マルチフォーマッ ト レコード タイプをExercise 15: マルチフォーマッ ト レコード タイプをマージするマージするマージするマージする

前回のエクササイズを作成し直して 3 つのレコード タイプのデータを、注文書情報をま とめる 1つの出力リ ンクへマージしてみまし ょ う。

1. Exercise14 を開いて、 これを Exercise15 と して保存します。

2. xCustomers および xInvoices ト ランスフォーマステージ、 Customersターゲッ ト ステージと Invoices ターゲッ ト ステージを削除します。

7-20 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 127: Datastage_8Mainframe Job Tutorial

残りの DB2 ロードレディ フラ ッ ト ファ イルステージの名前を下記のよ うに変更します。

3. ソースステージを開いて、 [ 選択選択選択選択 ] タブを編集して 3 つのレコードから MORD_TOTAL_AMT、 MORD_TOTAL_QTY、 MCUST_PART、MCUST_PART_AMT、 MINV_DATE、 および MINV_MISC_COMMENT の列を含めるよ うにします。

4. ト ランスフォーマステージを開いて、 既存の出力列を削除し、 入力列を出力リ ンクに直接マッピングします。

5. ターゲッ ト ステージを開いて、 ファ イル名を SLS.ORDERS.SUMSLS.ORDERS.SUMSLS.ORDERS.SUMSLS.ORDERS.SUM に、DD 名を SUMMARYSUMMARYSUMMARYSUMMARY に変更します。 [ 列列列列 ] タブの列を検証して [ バルバルバルバルクローダークローダークローダークローダー ] タブのテーブル名を SUMMARY に変更します。

6. ジ ョブを保存してコードを生成します。 まず、 ジ ョブ名をコード生成パスで Exercise15Exercise15Exercise15Exercise15 に変更します。

これで、 マルチフォーマッ ト フラ ッ ト ファ イルステージからの 1 つの出力リ ンクへ複数のレコード タイプのデータを送信する方法がわかり ました。 これは、 データがマルチフォーマッ ト フラ ッ ト ファ イルに階層構造で格納されている場合で、 そのデータを正規化して リ レーシ ョナルデータベースへ移動する必要があるよ うなビジネスの場で役に立ちます。

コンプレッ クスフラ ッ ト ファイルの処理 7-21

Page 128: Datastage_8Mainframe Job Tutorial

まとめまとめまとめまとめこの章では、 各種のフラ ッ ト ファ イルデータを処理するジ ョブを作成しました。 コンプレッ クスフラ ッ ト ファ イルとマルチフォーマッ ト フラ ット ファ イルからデータを読み取り、 配列を正規化してフラ ッ ト化する方法を学びました。 データを区切り文字付きフラ ッ ト ファ イルと DB2 ロードレディ フラ ッ ト ファ イルに書き込み、 ターゲッ ト ファ イルパラ メータを指定しました。 この章でのエクササイズは、 メ タデータのインポート、 ステージの設定、 制約条件とステージ変数の定義、 およびジ ョブパラ メータの指定について習得したこ とをテス トする機会を与えました。

7-22 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 129: Datastage_8Mainframe Job Tutorial

8IMS データの処理

メ インフレームジ ョブでの IMS ステージを紹介します。 IMS ステージを使って、 IMS バージ ョ ン 5 以降のデータベースからデータを読みます。この章のエクササイズでは、 IMS 定義から メ タデータをインポートする方法、 IMS ステージをジ ョブのソース と して構成する方法を示しています。

Exercise 16 では、IMS Data Base Description(DBD) ファ イルと IMS Program Specification Block(PSB) ファ イルから メ タデータをインポート します。DataStage の IMS DBD エディ タや IMS Viewset エディ タを使ってデータの詳細を見るこ とによ り、 インポート される メ タデータの構造に慣れることができます。

Exercise 17 では、 カーディーラーの在庫に関するデータを提供するジ ョブを作成します。 IMS ソースからデータを読み、 変換し、 フラ ッ ト ファイルターゲッ トに書き込みます。 IMS セグメン トパスや出力列を選択する方法を理解し、 出力データを限定する制約を定義します。

Exercise 16: IMS 定義をインポートするExercise 16: IMS 定義をインポートするExercise 16: IMS 定義をインポートするExercise 16: IMS 定義をインポートするIMS 定義を DBD ファ イルや PSB ファ イルから リポジ ト リにインポートできます。 DBD は IMS データベースの構造を、 PSB は IMS データベースのアプリ ケーシ ョ ンビューを定義します。 関連の PSB をインポートする前に DBD をインポート しなければなり ません。

DBD ファ イルをインポートするには、 次のよ うにします。

IMS データの処理 8-1

Page 130: Datastage_8Mainframe Job Tutorial

1. DataStage マネージャから、 [ インポートインポートインポートインポート ] → [IMS 定義IMS 定義IMS 定義IMS 定義 ] → [ データデータデータデータベースデスク リプシ ョ ン (DBD)...ベースデスク リプシ ョ ン (DBD)...ベースデスク リプシ ョ ン (DBD)...ベースデスク リプシ ョ ン (DBD)...] を選択します。 [IMS データベースIMS データベースIMS データベースIMS データベースをインポート (DBD)をインポート (DBD)をインポート (DBD)をインポート (DBD)] ダイアログボッ クスが現れます。

2. [IMS ファ イル説明パス名IMS ファ イル説明パス名IMS ファ イル説明パス名IMS ファ イル説明パス名 ] フ ィールドで、 チュート リ アル CD に入っている Dealer.dbd ファ イルをブラウズします。 DBD ファ イルのデータベースの名前が自動的に [ データベース名データベース名データベース名データベース名 ] リ ス ト に現れます。

3. [ インポート先カテゴ リインポート先カテゴ リインポート先カテゴ リインポート先カテゴ リ ] フ ィールドで、 Database の下に Sales サブカテゴ リ を作成します。

4. [ データベース名データベース名データベース名データベース名 ] リ ス トで DEALERDB を選択し、 [ インポートインポートインポートインポート ] をク リ ッ ク します。

DBD は、 マネージャプロジェク ト ツ リーの IMS Database(DBDs)\Database\Sales ブランチに保存されます。

これで、 PSB をインポートする用意ができました。

8-2 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 131: Datastage_8Mainframe Job Tutorial

1. [ インポートインポートインポートインポート ] → [IMS 定義IMS 定義IMS 定義IMS 定義 ] → [ プログラム詳細ブロ ッ クプログラム詳細ブロ ッ クプログラム詳細ブロ ッ クプログラム詳細ブロ ッ ク(PSB/PCB)...(PSB/PCB)...(PSB/PCB)...(PSB/PCB)...] を選択します。 [IMS 表示設定をインポートIMS 表示設定をインポートIMS 表示設定をインポートIMS 表示設定をインポート(PSB/PCB)(PSB/PCB)(PSB/PCB)(PSB/PCB)] ダイアログボッ クスが現れます。

2. [IMS ファ イル説明パス名IMS ファ イル説明パス名IMS ファ イル説明パス名IMS ファ イル説明パス名 ] フ ィールドで、 チュート リ アル CD に入っている Dealer.psb ファ イルをブラウズします。

3. デフォルトで選択されている [ 関連テーブルを作成関連テーブルを作成関連テーブルを作成関連テーブルを作成 ] フ ィールドに注目して ください。 これは、 PSB ファ イルの各重要セグメン トに対応している リポジ ト リのテーブル、 各重要フ ィールドに対応しているテーブルの列を DataStage に作成させます。 PSB に重要フ ィールドが存在しない場合、 作成される列は DBD のセグメン トに対応しています。 PSB で定義されているフ ィールドだけが列になり ます。 適切なフ ィールド配置とセグメン トサイズを保守するために、 必要なと ころにフ ィ ラーが作成されます。

関連テーブルは、 プロジェク ト ツ リーの Table Definitions ブランチ、Viewset と呼ばれるサブカテゴ リに保存されます。 後で説明するよ うに、 IMS Viewset エディ タにおいて各セグメン トの関連テーブルを変更できます。

4. [ インポート先カテゴ リインポート先カテゴ リインポート先カテゴ リインポート先カテゴ リ ] フ ィールドで、 Viewset の下に Sales サブカテゴ リ を作成します。

5. [ 表示設定名表示設定名表示設定名表示設定名 ] リ ス トにおいて DLERPSBR を選択し、 [ インポートインポートインポートインポート ]をク リ ッ ク します。

インポートが完了した後、 プロジェク ト ツ リーの IMS Viewsets(PSBs/PCBs) ブランチで PSB を、 そしてプロジェク ト ツ リーの

IMS データの処理 8-3

Page 132: Datastage_8Mainframe Job Tutorial

Table Definitions ブランチで関連テーブルを見つけます。 インポート されたメ タデータを見てみまし ょ う。

DBD を見るには次のよ うにします。

1. マネージャプロジェク ト ツ リーの IMS Databases(DBD) を展開して、Sales サブカテゴ リ を表示し、 右ペインの DEALERDB データベースをダブルク リ ッ ク します。 IMS データベースエディ タがオープンします。

このダイアログボッ クスは、 2 つのペインに分かれています。 左ペインは、 IMS データベース、 セグメン ト 、 ツ リー構造でのデータセッ ト を表示しています。 右ペインは、 選択したアイテムのプロパティ を表示しています。 データベースを選択する と、 右ペインに [全般全般全般全般 ] ページと [ 階層階層階層階層 ] ページが現れます。 [ 全般全般全般全般 ] ページは、 名前、バージ ョ ン番号、 アクセスタイプ、 組織、 カテゴ リ、 簡単な説明、詳しい説明を含む、 データベースの一般的プロパティ を説明しています。 説明を除き、 すべてのフ ィールドは読み取り専用になっています。

2. [ 階層階層階層階層 ] ページをク リ ッ ク します。 これによ り、 データベースのセグメン ト階層が表示されます。 ページの何処かを右ク リ ッ ク して、シ ョー ト カッ ト メニューから [ 詳細詳細詳細詳細 ] を選択し、 階層を詳細モードで表示します。

8-4 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 133: Datastage_8Mainframe Job Tutorial

3. 左ペインにおいて、 ツ リーの DEALER セグメン ト を選択します。 右ペインに [ 全般全般全般全般 ] ページと [FieldFieldFieldField] ページが現れます。 両方のページのフ ィールドにザッ と目を通します。

4. 次に左ペインの DLERDB データセッ ト をク リ ッ ク します。 データセッ トのプロパティが右ぺインに現れます。 これには、 ファ イルを読むために JCL で使われる DD 名が含まれています。

5. [OKOKOKOK] をク リ ッ ク して IMS データベースエディ タを閉じます。 これでIMS データベースのプロパティが理解できたと思います。

次に、 インポート される PSB のプロパティ を見てみまし ょ う。

PSB を見るには次のよ うにします。

IMS データの処理 8-5

Page 134: Datastage_8Mainframe Job Tutorial

1. マネージャプロジェク ト ツ リーの IMS Viewsets(PSBs/PCBs) を展開して、 Sales サブカテゴ リ を表示し、 右ペインの DLERPSBR をダブルクリ ッ ク します。 IMS Viewset エディ タがオープンします。

このダイアログボッ クスは 2 つのペインに分かれています。 IMSビューセッ ト (PSB)、 そのビュー (Program Communication Blocks :PCB)、 重要フ ィールドのための左ページと、 選択したアイテムのプロパティのための右ペインです。 右ペインの PSB プロパティ を見てみまし ょ う。

2. 左ペインで UNNAMED-PCB-1 を選択し、 PCB プロパティ を表示します。 このプロパティは、 [ 全般全般全般全般 ] ページと [ 階層階層階層階層 ] ページがあ り ます。 [ 全般全般全般全般 ] ページで、 [ セグメン ト / テーブルマッピングセグメン ト / テーブルマッピングセグメン ト / テーブルマッピングセグメン ト / テーブルマッピング ] ボタンをク リ ッ ク し、 [ セグメン ト / 関連テーブルマッピングセグメン ト / 関連テーブルマッピングセグメン ト / 関連テーブルマッピングセグメン ト / 関連テーブルマッピング ] ダイアログボッ クスをオープンします。 このダイアログボッ クスによって、PCB セグメン トの関連テーブルを作成または変更できます。 PSB インポート時に関連テーブルを作成しているので、 カレン トマッピングが表示されます。

8-6 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 135: Datastage_8Mainframe Job Tutorial

左ペインは、 そのタイプが QSAM_SEQ_COMPLEX である、 リ ポジ トリで利用可能なテーブルを表示しています。 右ペインは、 セグメント名と、 現在このセグメン ト名に関連づけられているテーブルを表示しています。 マウスの右ボタンを使って、 カレン ト テーブルマッピングの1つまたはすべてをク リ アできます。 セグメン トのテーブル関連を変更するには、 左ペインでテーブルを選択し、 それを右ペインのセグメン トにそってテーブルをド ラ ッグします。 終了したら、[OKOKOKOK] をク リ ッ ク します。 この場合、 カレン ト マッピングを保存し、[CancelCancelCancelCancel] をク リ ッ クする と IMS Viewset エディ タに戻り ます。

3. [ 階層階層階層階層 ] ページをク リ ッ ク し、 PCB セグメン ト階層を詳細モードで表示します。

4. DEALER のよ うな、 左ペインの 1 つの重要なセグメン ト を選択します。 そのプロパティが [ 全般全般全般全般 ] ページ、 [Sen FieldsSen FieldsSen FieldsSen Fields] ページ、 [ 列列列列 ]ページに表示されます。 [ 全般全般全般全般 ] ページの [Associate tableAssociate tableAssociate tableAssociate table] フ ィールドの隣にあるブラウズボタンに注目して ください。 このボタンをクリ ッ クする と、 必要に応じて、 特定のセグメン トに結び付けられたテーブルを変更できます。

5. [OKOKOKOK] をク リ ッ ク して IMS Viewset エディ タを閉じます。

こ こまでで、 IMS ソースのメ タデータを定義し、 そのプロパティ を表示しました。

IMS データの処理 8-7

Page 136: Datastage_8Mainframe Job Tutorial

Exercise 17: IMS ソースからデータを読み出すExercise 17: IMS ソースからデータを読み出すExercise 17: IMS ソースからデータを読み出すExercise 17: IMS ソースからデータを読み出すこのエクササイズでは、 カーディーラーに関する情報を持っている IMSソースからデータを読むジ ョブをデザインします。 ジ ョブは、 $25,000以下の価格の自動車の在庫を見つけます。 PSB と、 IMS データベースのビューを定義している関連の PCB を選択する方法を学びます。 また、 ステージからのデータを出力するセグメン トパスを選択する方法を学習します。 その後、 ト ランスフォーマステージを通してデータを渡し、 それをフラ ッ ト ファ イルターゲッ トに書き込みます。

ジ ョブをデザインするには次のよ うにします。

1. 新しいメ インフレームジ ョブを作成し、 それを Exercise17 と して保存します。

2. 左から右に、 IMS ステージ、 ト ランスフォーマステージ、 固定幅フラ ッ ト ファ イルステージを追加します。 これらのステージを リ ンクし、 次のよ うにステージと リ ンクを改名します。

3. IMS ソースステージをオープンします。 デフォルトでは [ ビュービュービュービュー ] タブが表示されます。 こ こで、 データを読も う と している IMS ソースファ イルに関する詳細を指定します。

a. IMS id フ ィールドに IMS1 と入力します。

8-8 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 137: Datastage_8Mainframe Job Tutorial

b. [PSBPSBPSBPSB] ド ロ ップダウン リ ス トから DLERPSBR を選択します。 これは、 IMS データベースのビューを定義します。

c. [PPPPCCCCBBBB] ド ロ ップダウン リ ス トで UNNAMED-PCB-1 を選択します。 ド ロ ップダウン リ ス トは、 IMS データベース検索に対応しているすべての PCB を表示します。

d. セグメン ト階層図をレビューします。 シ ョート カッ ト メニューから [ 詳細詳細詳細詳細 ] を選択して、 階層を詳細モードで表示できます。 詳細モードは、 関連テーブルの名前、 そのレコード長、 セグメント キーフ ィールドを表示します。

4. [ 出力出力出力出力 ] をク リ ッ ク します。 デフォルトで [ パスパスパスパス ] タブが表示されます。

こ こで、 データの出力元である、 セグメン トの階層パスを選択します。 図の各セグメン トは、 DataStage テーブルと関連の列を表しています。 図を詳細モードで表示するこ と もできます。

STOCK セグメン ト をク リ ッ ク して選択します。 DEALER セグメン トも選択され、 両方のセグメン トの背景色がブルーに変わるこ とに注意して ください。 子セグメン ト を選択する と、 その親セグメン ト もすべて選択されます。 再度ク リ ッ クすれば、 選択を解除できます。

IMS データの処理 8-9

Page 138: Datastage_8Mainframe Job Tutorial

[ プロセスパラレルパスプロセスパラレルパスプロセスパラレルパスプロセスパラレルパス ] チェ ッ クボッ クスは、 パスの処理方法を決めます。 デフォルトでは、 このボッ クスは選択されていません。 すなわち、 完全なパスだけが処理される という こ とです。 完全なパスとは、 パスのすべてのセグメン トが存在しているパスオカレンスです。 このボッ クスが選択されている場合、 子が欠けているパスオカレンス (パーシャルパス と呼ばれる) が処理されます。 完全パス処理では通常 1 つの IMS コールによってすべてのセグメン トが返り ますが、 パーシャルパス処理では別途データベースをコールする必要があ り ます。 完全パス処理が使われるよ うにデフォルト設定を保存します。

[ 配列をすべてフラ ッ ト化配列をすべてフラ ッ ト化配列をすべてフラ ッ ト化配列をすべてフラ ッ ト化 ] チェッ クボッ クスによって、 ソースファイルの配列を平坦化します。 このボッ クスが選択されていない場合、ソースファ イルの配列は正規化され、 データは配列の各列に対して1つの行をもって、 実行時に複数の行と して示されます。 このチェ ッ クボッ クスは非選択にしておきます。

5. [ セグメン ト参照セグメン ト参照セグメン ト参照セグメン ト参照 ] タブをク リ ッ ク して、 DEALER と STOCK セグメン トのセグメン ト ビューレイアウ ト を表示します。

6. [ 選択選択選択選択 ] タブをク リ ッ ク して、 2 つのフ ィ ラー列を除くすべてを[Selected columnsSelected columnsSelected columnsSelected columns] リ ス ト に移動します。

7. [ 制約条件制約条件制約条件制約条件 ] タブで、 価格が $25,000 未満のすべての車両を選択する制約を定義します。

8. [OKOKOKOK] をク リ ッ ク して設定を受け入れます。 これで IMS ソースステージが完成しました。

9. ト ランスフォーマステージで入力列を出力リ ンクに伝播します。

10. データを INSTOCK とい う名前のファイルに書き込めるよ うに、ターゲッ ト固定幅フラ ッ ト ファ イルステージを構成します。

11. ジ ョブを保存しコードを生成します。 [ コード生成コード生成コード生成コード生成 ] ダイアログボックスで、 [IMS Program TypeIMS Program TypeIMS Program TypeIMS Program Type] フ ィールドに注目します。 これは、 ジ ョブによって読まれる IMS プログラムのタイプを指定しています。DLI のデフォルト設定を保持します。

これで、 IMS ソースからデータを読みました。 また、 データを読むためのセグメン トパスを指定し、 ステージから出力される列を選択しました。

8-10 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 139: Datastage_8Mainframe Job Tutorial

まとめまとめまとめまとめこの章では、 IMS ソースからデータをインポート し、 ジ ョブで IMS ステージを使う方法を学びました。 また、 セグメン ト階層を含め、 インポート されたメ タデータの詳細を眺め、 各セグメン トでのテーブル関連がマネージャにおいてどのよ うに作成されるかを知り ました。 次に、 価格が $25,000 以下のカーディーラの車両在庫を見つけるジ ョブで、 IMSステージをソース と して構成しました。 データの読み取り元であるセグメン トパスを選択し、 出力データを限定する制約を定義しました。

次は、 リ レーシ ョナルステージを扱う方法を学びます。

IMS データの処理 8-11

Page 140: Datastage_8Mainframe Job Tutorial

8-12 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 141: Datastage_8Mainframe Job Tutorial

9リレーシ ョナルデータ

の処理

この章では、 メ インフレームジ ョブの リ レーシ ョナルステージの概要を説明します。 リ レーシ ョナルステージは、 OS/390 プラ ッ ト フォームのDB2 テーブルでデータの読み出し / 書き込みをするのに使われます。

Exercise18 では、 リ レーシ ョナルソースステージと固定幅フラ ッ ト ファイルターゲッ ト ステージを使ってジ ョブを作成します。 導出する列 (2つの入力列を連結したもの) を定義します。 次に、 2 つの DB2 テーブルのデータをジ ョ インし、 出力リ ンクへのデータの選択基準を指定するWHERE 句を作成します。

Exercise19 では、 リ レーシ ョナルソースステージと リ レーシ ョナルターゲッ ト ステージを使ってジ ョブを作成します。 テーブルで既存のレコードを更新した り新しいレコードを挿入したりするターゲッ ト ステージを定義します。

リレーシ ョナルステージリレーシ ョナルステージリレーシ ョナルステージリレーシ ョナルステージリ レーシ ョナルステージは、 DB2 UDB 5.1 以降のテーブルでデータの抽出と書き込みをします。 ソース となる リ レーシ ョナルステージでは、 さまざまなタブで SQL SELECT 文を定義します。 ソーステーブルを指定し、 ステージから出力する列を選択します。 さ らに、 WHERE、 GROUP BY、 HAVING、 ORDER BY の各句を作成するのに必要な条件を定義します。 コンプレッ クスジ ョ インや部分選択をする場合は、 独自の SQL 文を入力できます。 組み込みの構文解析系は、 SQL-92 標準に照らし合わせてシンタ ッ クスを検証して くれます。

ターゲッ ト となる リ レーシ ョナルステージは、 既存の DB2 テーブルにデータを書き込むためのさまざまなオプシ ョ ンを用意しています。 必要

リレーシ ョナルデータの処理 9-1

Page 142: Datastage_8Mainframe Job Tutorial

に応じて、 新しい行の挿入、 既存の行の更新、 行の削除のどれかを選択できます。 データを書き込むテーブルを指定し、 更新アクシ ョ ンと更新対象の列を選択し、 更新条件を設定して ください。

ExerciseExerciseExerciseExercise18181818: リレーシ ョナルソースからデータを読み: リレーシ ョナルソースからデータを読み: リレーシ ョナルソースからデータを読み: リレーシ ョナルソースからデータを読み出す出す出す出す

このエクササイズでは、 複数の DB2 テーブルからデータを読み出すソースステージを作成します。 この 2 つのテーブルから得たデータをジ ョ インし、 その結果を固定幅フラ ッ ト ファ イルステージに出力します。

1. デザイナを開きます。 新しいメ インフレームジ ョブを作成し、Exercise18 と して保存します。

2. リ レーシ ョナルステージ、 ト ランスフォーマステージ、 固定幅フラ ッ ト ファ イルステージを左から順に配置します。 これらのステージを リ ンク し、 ジ ョブチェーンを形成し、 以下のよ うにステージ名と リ ンク名を変更します。

3. [ 編集編集編集編集 ] → [ ジ ョブプロパティジ ョブプロパティジ ョブプロパティジ ョブプロパティ ] を選択し、 [ 環境環境環境環境 ] ページをク リ ッ クし、 以下のよ うに指定します。

9-2 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 143: Datastage_8Mainframe Job Tutorial

a. DB2 システム名を DB2SDB2SDB2SDB2S と します。

b. ユーザー名とパスワードを dstagedstagedstagedstage と します。

これらのプロパティは、 リ レーシ ョナルステージの DB2 データベースにアクセスするためにコードの生成時に使われます。 これらのプロパティを入力しないと、 アド ミ ニス ト レータで指定したプロジェク トデフォル トが使われます。

[ コ ミ ッ ト ごとの行数コ ミ ッ ト ごとの行数コ ミ ッ ト ごとの行数コ ミ ッ ト ごとの行数 ]ボックスはコミットが発生する前に DB2テーブルに書き込む行数を指定します。デフォルトは 0 です。 この場合、 すべての行を書き込んでから、 行の処理が行われます。 何らかの数値を入力すれば、 その指定された数の行を書き込んでから、行の処理が行われます。 挿入する場合は、 1 行だけが書き込まれます。 更新または削除の場合は、 複数の行を書き込むこ とがあ り ます。エラーが検出される と、 ロールバッ クが発生します。 こ こでは、 デフォルト設定のままにして [OKOKOKOK] をク リ ッ ク して ください。

4. リ レーシ ョナルソースステージを開きます。 デフォルトでは [ 出力出力出力出力 ]ページの [ テーブルテーブルテーブルテーブル ] タブが表示されます。 [使用可能なテーブル使用可能なテーブル使用可能なテーブル使用可能なテーブル ]リストには、アクセスタイプが DB2であるすべてのテーブル定義が含まれます。[DB2 DclgenDB2 DclgenDB2 DclgenDB2 Dclgen] の下にある [SalesSalesSalesSales] ブランチを展開し、SALESREP テーブルおよび SALESTERR テーブルを [ 選択したテーブ選択したテーブ選択したテーブ選択したテーブルルルル ] リ ス ト に移動します。

5. [SELECTSELECTSELECTSELECT] タブをク リ ッ ク し、 SALESREP テーブルからSLS_REP_LNAME、 SLS_REP_FNAME、 SLS_TERR_NBR、 TAX_ID を除くすべての列を選択します。 SALESTERR テーブルからすべての列を選択します。

6. 以下のよ うに、 導出する列を定義します。 これは、 販売員の名前と名字を連結したものと します。

a. [SELECTSELECTSELECTSELECT] タブの [ 新規新規新規新規 ] をク リ ッ ク します。 以下の [ 導出する導出する導出する導出する列列列列 ] ダイアログボッ クスが表示されます。

b. [AAAASSSS 句の名称句の名称句の名称句の名称 ] フ ィールドに FullNameFullNameFullNameFullName と入力します。

c. [ データ型データ型データ型データ型 ] フ ィールドのデフォルトである CHARACTERCHARACTERCHARACTERCHARACTER は、 そのままにしておきます。

d. [ 長さ長さ長さ長さ ] フ ィールドに 40404040 と入力します。

e. [ 関数関数関数関数 ] ボタンをク リ ッ ク し、 DB2 関数のリ ス トから連結関数(CONCAT) を選択します。 [ 式式式式 ] テキス ト ボッ クスで表示される式に注目してください。

リレーシ ョナルデータの処理 9-3

Page 144: Datastage_8Mainframe Job Tutorial

f. [ 式式式式 ] ボッ クスの <Operand1> を強調表示し、 [ 列列列列 ] ボタンをクリ ッ ク し、 SALESREP.SLS_REP_FNAME をダブルク リ ッ ク します。 [ 式式式式 ] ボッ クスの <Operand1> がこの項目に置き換わり ます。

g. 同じやり方で、 今度は <Operand2> がSALESREP.SLS_REP_LNAME に置き換わるよ うにします。 [ 導出導出導出導出する列する列する列する列 ]ダイアログボックスの内容は、現在以下のようになっているはずです。

h. [OKOKOKOK] ボタンをク リ ッ ク して列を保存します。 導出する列の名前、 データ型、 そして式が [ 選択した列選択した列選択した列選択した列 ] リ ス ト で表示されます。

7. [WWWWHEREHEREHEREHERE] タブをク リ ッ ク し、 WHERE 句で以下のジ ョ イン方法と選択条件を指定します。

a. 販売地区番号で 2 つのテーブルをジ ョ インします。

b. ‘NJ’ および ‘NY’ 販売地区から販売員を選択します。

9-4 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 145: Datastage_8Mainframe Job Tutorial

これが終わる と、 [WWWWHEREHEREHEREHERE] タブは次のよ うにな り ます。

8. [GGGGROUP BYROUP BYROUP BYROUP BY] タブをク リ ッ ク します。 GROUP BY 列と してSLS_REGION を選択します。 それに基づいてデータが分類されます。

9. [OOOORDER BYRDER BYRDER BYRDER BY] タブをク リ ッ ク します。 ORDER BY 列と してSLS_REP_NBR を選択します。 その順番でデータが並び替えられます。 [ORDER BY 列ORDER BY 列ORDER BY 列ORDER BY 列 ]リストの [ 順番順番順番順番 ]フィールドで [ 昇順昇順昇順昇順 ]を選択します。

リレーシ ョナルデータの処理 9-5

Page 146: Datastage_8Mainframe Job Tutorial

10. [SQLSQLSQLSQL] タブをク リ ッ ク します。 以下のよ うに、 [ テーブルテーブルテーブルテーブル ]、[SSSSELECTELECTELECTELECT]、 [WWWWHEREHEREHEREHERE]、 [GGGGROUP BYROUP BYROUP BYROUP BY]、 [OOOORDER BYRDER BYRDER BYRDER BY] の各タブで選択したもので構成される SQL 文が表示されます。

11. [OKOKOKOK] ボタンをク リ ッ ク して、 変更内容を保存して [Relational ステーRelational ステーRelational ステーRelational ステージジジジ ] ダイアログボッ クスを閉じます。

12. ダイアグラムウ ィンド ウから ト ランスフォーマステージシ ョートカッ ト メニューを使って、 入力列を出力リ ンクに伝播します。

13. 固定幅フラ ッ ト ファ イルステージを開き、 以下のよ うに指定します。

a. ファ イル名を SLS.SALESREPSLS.SALESREPSLS.SALESREPSLS.SALESREP と します。

b. DD名は SALESREPです。

c. 書き込みオプシ ョ ンを [ 既存ファイルを上書き既存ファイルを上書き既存ファイルを上書き既存ファイルを上書き ] と します。

14. ジ ョブを保存し、 コードを生成します。 ジ ョブの設計が有効であるこ とを確認して ください。

これで、 DB2 テーブルからデータを読み出し、 フラ ッ ト ファ イルにロードするジ ョブが設計できました。 導出する列を作成し、 リ レーシ ョナルステージエディ タのタブで SQL SELECT 文を作成しました。 次に、 ターゲッ ト と して リ レーシ ョナルステージを使う方法について学びます。

9-6 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 147: Datastage_8Mainframe Job Tutorial

ExerciseExerciseExerciseExercise19191919: リレーシ ョナルターゲッ トにデータを書: リレーシ ョナルターゲッ トにデータを書: リレーシ ョナルターゲッ トにデータを書: リレーシ ョナルターゲッ トにデータを書き込むき込むき込むき込む

このエクササイズでは、 DB2 テーブルでデータの読み出し / 書き込みをします。 既存の DB2 テーブルで行を挿入、 更新、 置換するための設定を習得します。

1. 新しいメ インフレームジ ョブを作成し、 それを Exercise19 と して保存します。

2. 以下のよ うにステージと リ ンクを追加します。

3. ジ ョブプロパティ を編集し、 DB2 システム名と して DB2SDB2SDB2SDB2S、 ユーザー名とパスワード と して dstagedstagedstagedstage を指定します。

4. マネージャで、 以下のよ うに NEWREPS とい う新しい テーブル定義名を作成します。

a. [ ツールツールツールツール ] →→→→ [ マネージャを実行マネージャを実行マネージャを実行マネージャを実行 ] を選択します。

b. プロジェクトツリーを開いて [ テーブル定義テーブル定義テーブル定義テーブル定義 ¥DB2 Dclgen]ブランチの内容を表示し、[Sales]フォルダをクリックします。

c. [ ファ イルファ イルファ イルファ イル ] →→→→ [ 新規テーブル定義 ...新規テーブル定義 ...新規テーブル定義 ...新規テーブル定義 ...] を選択します。 [ テーブルテーブルテーブルテーブル定義定義定義定義 ] ダイアログボッ クスが表示されます。

リレーシ ョナルデータの処理 9-7

Page 148: Datastage_8Mainframe Job Tutorial

d. [ 全般全般全般全般 ] ページの [ テーブル / ファ イル名テーブル / ファ イル名テーブル / ファ イル名テーブル / ファ イル名 ] フ ィールドにNEWREPSNEWREPSNEWREPSNEWREPS と入力します。 [ データソースタイプデータソースタイプデータソースタイプデータソースタイプ ] フ ィールド と [データソース名データソース名データソース名データソース名 ] フ ィールドは、 プロジェク ト ツ リーのどこで作業しているかに基づいてすでにデータが入力されています。

e. [ 所有者所有者所有者所有者 ] フ ィールドに XYZ03XYZ03XYZ03XYZ03 と入力します。 リ レーシ ョナルデータベースのテーブル定義を作成する と き、 このフ ィールドでデータベースの名前を入力する必要があ り ます。

f. [ メ インフレームプラ ッ ト フォームタイプメ インフレームプラ ッ ト フォームタイプメ インフレームプラ ッ ト フォームタイプメ インフレームプラ ッ ト フォームタイプ ] ド ロ ップダウン リ ストから [OS390OS390OS390OS390] を選択します。 [ メ インフレームアクセスタイプメ インフレームアクセスタイプメ インフレームアクセスタイプメ インフレームアクセスタイプ] フ ィールドの [DB2DB2DB2DB2] の設定をデフォルトのままにしておきます。 こ こで、 [ 全般全般全般全般 ] ページは下記のよ うに表示されるはずです。

g. [ 列列列列 ] タブをク リ ッ ク し、 SALESREP テーブル定義から列定義をロード します。

h. [OKOKOKOK] ボタンをク リ ッ ク してテーブル定義を保存します。

i. マネージャを閉じます。

5. SLS.NEWREPS テーブルからレコードを読み出すよ うに、 ソースのリレーシ ョナルステージを構成します

6. ト ランスフォーマステージで入力列を出力リ ンクに伝播します。

9-8 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 149: Datastage_8Mainframe Job Tutorial

7. SLS.SALESREP DB2 テーブルにデータを書き込むよ うに、 以下のようにターゲッ トの リ レーシ ョナルステージを構成します。

a. [ 更新アクシ ョ ン更新アクシ ョ ン更新アクシ ョ ン更新アクシ ョ ン ] ド ロ ップダウン リ ス トで [ 新規行の挿入また新規行の挿入また新規行の挿入また新規行の挿入または既存行の更新は既存行の更新は既存行の更新は既存行の更新 ] を選択します。 これで、 ターゲッ ト ファ イルの更新方法が指定されます。 利用可能なほかのオプシ ョ ンも見てください。

b. [ 列列列列 ] タブをク リ ッ ク し、 ト ランスフォーマステージから列定義が取り出されているのを確認します。

c. [ 列の更新列の更新列の更新列の更新 ] タブをク リ ッ ク し、 SLS_REP_NBR を除くすべての列を選択します。 選択された列は、 更新条件を満たしていれば更新されます。

d. [WWWWHEREHEREHEREHERE] タブをク リ ッ ク し、 SLS_REP_NBR 列の値が一致すれば既存の行を更新する という更新条件を設定します。 WHERE 句は次のよ うにな り ます。

e. [OKOKOKOK] ボタンをク リ ッ ク して変更内容を保存します。

8. ジ ョブを保存し、 コードを生成します。 作成された COBOL プログラムファ イルと JCL ファ イルを見て、 作業の結果を確認します。

これで、 行更新の条件を設定し、 更新対象の列を選択し、 既存の DB2テーブルにデータを書き込むこ とができました。

リレーシ ョナルデータの処理 9-9

Page 150: Datastage_8Mainframe Job Tutorial

まとめまとめまとめまとめこの章では、 ソース と ターゲッ トの リ レーシ ョナルステージを処理する方法について学びました。 2 つの入力テーブルのデータをジ ョ インし、導出する列を定義する方法や、 特定のデータに限って出力するためのSQL 文を作成する方法を習得しました。 さ らに、 リ レーシ ョナルステージがターゲッ トである と き、 既存の DB2 テーブルを更新するための条件の設定方法も習得しました。

次に、外部データソースとターゲットの扱い方を学びます。

9-10 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 151: Datastage_8Mainframe Job Tutorial

10外部ソースとターゲッ

トの取り扱い

これまで、 DataStage メ インフレーム ジ ョブでの各種フラ ッ ト ファ イルと リ レーシ ョナルデータベースの処理方法を説明しました。 この章では、 外部データソース と ターゲッ トの処理方法を説明します。 これらは、DataStage Enterprise MVS Edition 内でのビルト インサポート を持たないファイルタイプです。

外部ソースまたはターゲットを使ってジョブを設計する前に、まず外部ソースからデータを読み取ったり外部ターゲットにデータを書きこんだりする DataStage外のプログラムを作成する必要があります。COBOLから呼び出せる任意の言語でプログラムを作成できます。DataStageは自分の生成した COBOLプログラムから、プログラムを呼び出します。2 つのプログラム間の呼び出しインタフェースは 2 つのパラメータで構成されます。

・ 制御構造のアドレス・ レコード定義のアドレス

呼び出しインタフェースの定義の詳細については、『DataStage メ インフレーム ジョブ開発者ガイド』を参照してください

外部プログラムを作成したら、DataStageマネージャにルーチン定義を作成します。このルーチンはライブラリパス、呼び出し方式、ルーチン引数などを含む外部プログラムの属性を指定し、DataStageから呼び出せるようにします。最終手順として、外部ソースステージまたは外部ターゲットステージを使って外部プログラムを表すジョブを設計します。

Exercise 20 では、 メ インフレームジ ョブでの外部ソースプログラムの定義および呼び出し方法を習得します。 マネージャで外部ソースルーチン

外部ソースと ターゲッ トの取り扱い 10-1

Page 152: Datastage_8Mainframe Job Tutorial

を作成して、 外部ソースステージを使ってジ ョブを作成します。 また、出力列をテーブル定義と して リポジ ト リに保存する練習もします。

Exercise21 では、 同様の手順でマネージャに外部ターゲッ トルーチンを作成し、 外部ターゲッ ト ステージを使ってジ ョブを設計します。

ExerciseExerciseExerciseExercise20202020 : 外部ソースからのデータ読み取り: 外部ソースからのデータ読み取り: 外部ソースからのデータ読み取り: 外部ソースからのデータ読み取り外部データソースから発注書データを検索するプログラムを作成したとしましょう。これから、DataStageマネージャに外部ソースルーチンを作成してから、そのルーチンを呼び出すジョブを設計します。

また、 出力列を、 ジ ョブ設計の他ステージにロードできるよ うに、 リポジ ト リにテーブル定義と して保存する方法を学びます。

外部ソースルーチンメ タデータの定義外部ソースルーチンメ タデータの定義外部ソースルーチンメ タデータの定義外部ソースルーチンメ タデータの定義

初の手順では、 テーブル定義をインポート して、 外部ソースプログラムのルーチンメ タデータを定義します。 この処理は、 DataStage マネージャ、 または DataStage デザイナのリポジ ト リ ウ ィ ンド ウのどちらかで実行できます。

1. プロジェク ト ツ リーの [ テーブル定義テーブル定義テーブル定義テーブル定義 ] ブランチで右ク リ ッ ク して、[ インポートインポートインポートインポート ] → [COBOLCOBOLCOBOLCOBOL ファ イル定義ファイル定義ファイル定義ファイル定義 ...] を選択します。External.cfd ファ イルから EXT_ORDERS テーブル定義をインポートします。 COBOL FD\External という新しいカテゴ リにテーブルを保存します。

2. プロジェクトツリーの [ルーチンルーチンルーチンルーチン ]ブランチを右クリックし、[ 新規新規新規新規メ インフレームルーチンメ インフレームルーチンメ インフレームルーチンメ インフレームルーチン ...]をクリックして [メインフレームルーチメインフレームルーチメインフレームルーチメインフレームルーチンンンン ]ダイアログボックスを開きます。[全般全般全般全般 ]ページでルーチンの基本特性を指定します。

a. [ルーチン名ルーチン名ルーチン名ルーチン名 ]フィールドに PURCHORDとタイプ入力します。この名前が [ 外部サブルーチン名外部サブルーチン名外部サブルーチン名外部サブルーチン名 ]フィールドにも表示されることに注意してください。これは、呼び出し方式が動的(デフォルト)の場合、2 つの名前が一致していなければならないからです。

ルーチン名は、そのルーチンの DataStageでの呼び名であり、外部サブルーチン名は外部ルーチンの実際の名前です。呼び出し方式が静的の場合、この 2 つの名前は異なっていてもかまいません。これらの名前はプログラムがリンク編集されるときに解決できるからです。

b. [ タイプタイプタイプタイプ ]フィールドで [ 外部ソースルーチン外部ソースルーチン外部ソースルーチン外部ソースルーチン ]を選択します。

10-2 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 153: Datastage_8Mainframe Job Tutorial

c. [ カテゴ リカテゴ リカテゴ リカテゴ リ ]フィールドで External¥¥¥¥Salesとタイプ入力します。

d. [ 呼び出し メ ソ ッ ド呼び出し メ ソ ッ ド呼び出し メ ソ ッ ド呼び出し メ ソ ッ ド ]エリアで [ 静的静的静的静的 ]をクリックします。これはルーチンメンバを含むライブラリのパス名です。

e. [ ラ イブラ リパスライブラ リパスライブラ リパスライブラ リパス ] フ ィールドに UTILDS と入力します。 これは、 ルーチンメンバを含むライブラ リのパス名です。

f. [ 説明 (略記)説明 (略記)説明 (略記)説明 (略記) ]フィールドにルーチンの説明をタイプ入力します。

これができたら、 [ メ インフレームルーチンメ インフレームルーチンメ インフレームルーチンメ インフレームルーチン ] ダイアログボッ クスは下記のよ うに表示されるはずです。

3. [作成者作成者作成者作成者 ]ページをクリックし、このページのフィールドを調べます。ここで、オプションでベンダおよび製作者情報を入力できます。

4. [引数引数引数引数 ]をクリックしてルーチン引数を定義します。引数は、外部ソースプログラムに渡されるレコードのフィールドとして扱われます。EXT_ORDERSテーブルから引数をロードしてください。

外部ソースと ターゲッ トの取り扱い 10-3

Page 154: Datastage_8Mainframe Job Tutorial

これによって、[引数引数引数引数 ]ページの内容は以下のようになるはずです。

10-4 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 155: Datastage_8Mainframe Job Tutorial

5. [JCL]をクリックして外部ソースプログラムに対応する JCL文を入力します。ここで、プログラム実行に必要な DD名またはライブラリ名を指定します。このページに表示された JCLは、DataStageがジョブ用に生成した実行 JCLに含まれます。以下に示すように JCLをタイプ入力してください。

6. [ 保存保存保存保存 ]をクリックしてルーチン定義を保存し、[ 閉じる閉じる閉じる閉じる ]をクリックして [メインフレームルーチンメインフレームルーチンメインフレームルーチンメインフレームルーチン ]ダイアログボックスを閉じます。

外部ソースプログラム用のメ タデータ作成は終了しました。 これで、ジ ョブを設計する準備ができました。

外部ソースと ターゲッ トの取り扱い 10-5

Page 156: Datastage_8Mainframe Job Tutorial

ジ ョ ブのルーチンの呼び出しジ ョ ブのルーチンの呼び出しジ ョ ブのルーチンの呼び出しジ ョ ブのルーチンの呼び出し

外部ソースステージを使って、 ルーチンを表すジ ョブを設計します。

1. Exercise20という名前の新規メインフレームジョブを作成します。

2. 外部ソースステージ、トランスフォーマステージ、およびリレーショナルターゲットステージを追加します。これらのステージをリンクし、ステージとリンクの名前を以下のように変更します。

3. 外部ソースステージを定義します。

a. [ ステージステージステージステージ ] ページの [ ルーチンルーチンルーチンルーチン ] タブをク リ ッ ク します。 こ こで、 ステージが呼び出す外部ソースルーチンを指定します。 [ロードロードロードロード ] をク リ ッ ク して PURCHORD ルーチンを選択し、 その引数をロード します。 ステージでルーチン引数を編集できません。変更はリポジ ト リのルーチン定義でする必要があ り ます。

b. [JCL]をクリックし、マネージャで指定した JCLを参照します。ここで、JCLの入力と編集ができますし、必要ならば他ファイルから JCLをロードできます。

c. [出力出力出力出力 ]をクリックし、米国内の顧客からの注文だけ選択する制約条件を指定します。列プッシュオプションがオンになっているので、[ 選択選択選択選択 ]タブで列を選択する必要はありません。

4. デザイナウ ィ ンド ウから ト ランスフォーマステージのシ ョート カット メニューを使って、 入力列を出力リ ンクへ伝播します。

5. リ レーシ ョナルステージを下記のよ うに定義します。

10-6 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 157: Datastage_8Mainframe Job Tutorial

a. テーブル名 : SLS.ORDERSSLS.ORDERSSLS.ORDERSSLS.ORDERS

b. 更新アクション:[ 消去せずに行を挿入消去せずに行を挿入消去せずに行を挿入消去せずに行を挿入 ]

c. [ 列列列列 ] をク リ ッ ク して ト ランスフォーマステージからプッシュされた列定義を参照します。 [ 名前を付けて保存名前を付けて保存名前を付けて保存名前を付けて保存 ...] をク リ ッ ク して列をテーブル定義と して リポジ ト リに保存します。 [ テーブルテーブルテーブルテーブル定義を保存定義を保存定義を保存定義を保存 ] ダイアログボッ クスのすべてのフ ィールドの設定をデフォルトのままにしておきます。

6. シ ョート カッ ト メニューを使ってデザイナの リポジ ト リ ウ ィ ンド ウを更新します。 プロジェク ト ツ リーの [ テーブル定義テーブル定義テーブル定義テーブル定義 ] ブランチを展開して、 [relOrdersrelOrdersrelOrdersrelOrders] 下の [ 保存済み保存済み保存済み保存済み ] フォルダに ORDERS が表示されているこ とに注意します。

7. ジ ョブプロパティ を編集してプロジェク ト レベルで指定したデフォルトの日付フォーマッ ト を上書きします。 USA 形式(MM/DD/CCYYMM/DD/CCYYMM/DD/CCYYMM/DD/CCYY) を選択します。

8. ジ ョブを保存してコードを生成します。

このエクササイズでは、 外部データソースからデータを読み取る方法を説明しました。 マネージャでの外部ソースルーチンの定義方法と、 ジ ョブデザインでの外部ソースステージの設定方法を習得しました。 出力列のセッ ト をテーブル定義と して リポジ ト リに保存し、 ほかのジ ョブで使用しやすいよ うにしました。 また、 プロジェク ト レベルで設定されたデフォルトの日付フォーマッ ト を上書きする方法もわかり ました。 次に、データを外部ターゲッ トに書き込みます。

ExerciseExerciseExerciseExercise21212121 : 外部ターゲッ トへのデータ書き込み: 外部ターゲッ トへのデータ書き込み: 外部ターゲッ トへのデータ書き込み: 外部ターゲッ トへのデータ書き込みこ こで、 売り上げを分析するために、 注文書データを外部ターゲッ トに書き込みます。 外部ターゲッ トプログラムはすでに書き込みました。 前回と同じ手順を使って、 リポジ ト リでルーチンを定義して、 このルーチンを呼び出すジ ョブを作成します。

1. SALESORD とい う リ ポジ ト リでルーチン定義を作成します。

a. タイプとして [ 外部ターゲッ トルーチン外部ターゲッ トルーチン外部ターゲッ トルーチン外部ターゲッ トルーチン ]を選択します。

b. カテゴリは External¥¥¥¥Salesです。

c. 呼び出し方式は [ 静的静的静的静的 ]です。

d. ライブラリパスは UTILDSです。

e. EXT_ORDERS テーブル定義から引数をロードします。

外部ソースと ターゲッ トの取り扱い 10-7

Page 158: Datastage_8Mainframe Job Tutorial

f. [JCL]ページで以下の JCL文をタイプ入力します。

//POJCL DD DSN=POSYS.SALESORD.FWFF// DISP=(NEW,CATLG,DELETE),// UNIT=SYSDA,// SPACE=(TRK,(10,10),RLSE),// DCB=(LRECL=204,BLKSIZE=2040,RECFM=FB)

注意 :注意 :注意 :注意 : JCL文を入力するときはタブキーを使わないでください。タブキーを使うとメインフレームのアップロードが正常に行われません。

2. デザイナを開き、Exercise21というジョブを作成します。リレーショナルソースステージ、トランスフォーマステージ、および外部ターゲットステージを追加します。これらのステージをリンクして、名前を以下のように変更します。

3. 直前のエクササイズで保存した ORDERS テーブルからデータを読み込むよう、リレーショナルソースステージを定義します。販売員ごとに列をグループ化し、それを発注日ごとに順序付けます。

4. 外部ターゲットステージを定義します。

a. [ステージステージステージステージ ]ページの [ルーチンルーチンルーチンルーチン ]タブをクリックします。外部ソースステージでは編集できなかった [ 名前名前名前名前 ]フィールドが、ここでは編集できることに注意してください。これは、DataStage

10-8 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 159: Datastage_8Mainframe Job Tutorial

によって、ジョブ設計の前回のステージから外部ターゲットステージへ列をプッシュできるからです。このページでルーチン名を簡単に入力できます。ただし、ジョブの実行を成功させるためには、マネージャでのルーチン定義の作成が以前として必要です。

b. 定義済みの SALESORDルーチンから引数をロードします。

c. JCLが、マネージャに入力した内容と一致することを確認します。

5. トランスフォーマステージを開き、列自動マッチを使って列マッピングを定義します。

6. ジョブを保存し、コードを生成します。

外部ターゲッ トにデータを書き込むジ ョブの設計に成功しました。 これで、 経営分析者は自分たちが精通しているプラ ッ ト ホームを使って、 各販売員が出した発注書を見直すこ とができます。

まとめまとめまとめまとめこの章では、 メ インフレームジ ョブでの外部ソース と ターゲッ トの取り扱い方法を説明しました。 外部ソースおよびターゲッ トプログラムのルーチン定義の作成方法を学びました。 外部ソースから外部発注書データを読み取るジ ョブと、 分析用外部ターゲッ トに販売注文情報を書き込むジ ョブを設計しました。

これで、さまざまなファイルタイプのビルトインサポートを提供したり、外部ソースとターゲットを取り扱えるようにしたりするステージを含む、メインフレームジョブのすべての受動ステージに精通したことになります。次に、アクティブステージの取り扱いを始めましょう。データウェアハウスで効率良く構成できるように、DataStageがデータ操作用に提供するパワフルなオプションの説明をします。

外部ソースと ターゲッ トの取り扱い 10-9

Page 160: Datastage_8Mainframe Job Tutorial

10-10 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 161: Datastage_8Mainframe Job Tutorial

11ジ ョ インとルックアッ

プによるデータのマー

メ インフレームジ ョブでデータのソース と ターゲッ ト を扱う方法が分かったので、 データウェアハウスに入れるデータをアクティブステージで処理できます。 この章では、 ジ ョ インステージとルッ クアップステージの概要を説明します。

ジ ョ インステージは、 2 つのソースから得たデータをジ ョ インするために使われます。 ジ ョ インステージを使用して、 内部結合、 外部結合、 または完全結合を実行できます。

・ 内部結合は、 2 つの入力テーブルで一致する行だけを返します。

・ 外部結合は、 一致しなくても 外部テーブルの行をすべて返します(入力の 1つをアウターリ ンク と して指定します)。

・ 完全結合は、 結合条件に一致するすべての行を返し、 また両方の入力テーブルから一致しない行も返します。

ルッ クアップステージは、 参照情報を見つけるために使われます。 これを見つけるには、 一行ルッ クアップとカーソルルッ クアップとい う 2 つの方法があ り ます。

・ 一行ルッ クアップは、 一致する 1 つの行を返します。・ カーソルルッ クアップは、 一致するすべての行を返します。

また、 ルッ クアップが発生する前に一致しなければならないプレルッ クアップ条件に基づいた条件付きルッ クアップをするこ と もできます。

ジ ョ インとルックアップによるデータのマージ 11-1

Page 162: Datastage_8Mainframe Job Tutorial

Exercise22 では、 2 つのデータソースをジ ョ インします。 ジ ョ イン種別とジ ョ イン方法を指定し、 ジ ョ イン条件を設定し、 ジ ョ インされたデータを出力リ ンクにマッピングします。

Exercise23 では、 参照テーブルで情報を見つけます。 ルッ クアップ方法を指定し、 ルッ クアップが失敗した場合の処置も指定します。 次に、ルッ クアップ条件を設定し、 出力列に対するマッピングをします。 このエクササイズでは、 テーブル定義のインポート も習います。

ExerciseExerciseExerciseExercise22222222: ジ ョ インステージでデータをマージする: ジ ョ インステージでデータをマージする: ジ ョ インステージでデータをマージする: ジ ョ インステージでデータをマージするこのエクササイズでは、 販売員が出した発注伝票をすべて選択し、 フラ ッ ト ファ イルにロードするジ ョブを作成します。 販売員は SALESREP DB2 テーブルにあ り ます。 発注伝票は SLS.ORDERS とい う COBOL ファイルにあ り ます。 マージしたデータは、 SLS.REPS.ORDERS という フラ ッ ト ファ イルにロード します。

データをジ ョ インする手順を次に示します。

1. DataStage デザイナで、 新しいジ ョブを作成し、 Exercise22 と して保存します。

2. ソース と して リ レーシ ョナルステージと コンプレッ クスフラ ッ トファ イルステージを追加し、 ト ランスフォーマステージと固定幅フラ ッ ト ファ イルターゲッ ト ステージも追加します。 以下のよ うにステージ名と リ ンク名を変更します。

11-2 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 163: Datastage_8Mainframe Job Tutorial

3. リ レーシ ョナルソースステージを定義します。

a. SALESREP テーブルで販売員、 名前 ・名字、 地域番号の各列を選択します。

b. SALESTERR テーブルで地域名、 地域番号の各列を選択します。

c. 地域番号で 2 つのテーブルをジ ョ インします。

4. コンプレッ クスフラ ッ ト ファ イルのソースステージを定義します。

a. SLS.ORDERSSLS.ORDERSSLS.ORDERSSLS.ORDERS ファ イルからデータを読み出します。

b. SALES_ORDERS テーブル定義から列をロード します。 このテーブルには配列がないので、 [ コンプレッ クスファ イルロードオプコンプレッ クスファ イルロードオプコンプレッ クスファ イルロードオプコンプレッ クスファ イルロードオプシ ョ ンシ ョ ンシ ョ ンシ ョ ン ] ダイアログボッ クスは表示されません。

5. SalesReps ステージと SalesOrders ステージから得たデータをマージするよ うに、 ジ ョ インステージを定義します。 手順を次に示します。

a. [ 結合タイプ結合タイプ結合タイプ結合タイプ ] 領域の [ 内部結合内部結合内部結合内部結合 ] をク リ ッ ク します。

b. 外部リ ンク と して [SalesOrdersOutSalesOrdersOutSalesOrdersOutSalesOrdersOut] を選択します。

c. [ 結合方法結合方法結合方法結合方法 ] ド ロ ップダウン リ ス トのオプシ ョ ンを見てください。

[ 自動自動自動自動 ] は、 ステージで指定した情報に基づいて DataStage が適な方法を選択します。

ジ ョ インとルックアップによるデータのマージ 11-3

Page 164: Datastage_8Mainframe Job Tutorial

[ ハッシュハッシュハッシュハッシュ ] は、 内部リ ンクでメモ リ内ハッシュテーブルを作成します。

[ ネス トネス トネス トネス ト ] は、 内部テーブルの各行をスキャンして一致する値を探します。

[ 2つのファ イルを照合2つのファイルを照合2つのファイルを照合2つのファイルを照合 ] は、 2 つの入力テーブル (一致するキーでソート済み) を同時にスキャンし、 一致する値があるかど うかを調べます。

[ 自動自動自動自動 ] のデフォルト設定はそのままにしておきます。

d. [ 入力入力入力入力 ] ページをク リ ッ ク し、 2 つの入力リ ンクの列定義を表示します。 [ 入力名入力名入力名入力名 ] ド ロ ップダウン リ ス トで各リ ンクを選択します。 すべてのアクティブステージで、 入力列定義は読み出し専用です。

e. [ 出力出力出力出力 ] をク リ ッ ク します。 デフォルトで [ 結合条件結合条件結合条件結合条件 ] タブが表示されます。 こ こで、 2 つのテーブルのデータをマージする条件を設定します。 以下のよ うに、 一致する販売員番号に基づいて 2つのファイルをマージする式を作成します。

f. [ マッピングマッピングマッピングマッピング ] タブをク リ ッ ク します。 ド ラ ッグ&ド ロ ップで、すべての列を出力リ ンクにマッピングします。 1 つの入力リ ンクのタイ トルバーをク リ ッ ク し、 マウスボタンを押したまま、 マ

11-4 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 165: Datastage_8Mainframe Job Tutorial

ウスポインタを出力リ ンクで 初の空きの [ 出力仕様出力仕様出力仕様出力仕様 ] セルに移動します。 これで、 自動的に入力リ ンクのすべての列が出力リンクにマッピングされます。 このド ラ ッグ&ド ロ ップを 2 番目の入力リ ンクについてもします。

g. [OKOKOKOK] ボタンをク リ ッ ク して、 ジ ョ インステージの変更内容を保存します。

6. すべての入力列を出力リ ンクに移動するこ とで、 ト ランスフォーマステージを定義します。 すでにジ ョ インステージのデータはマッピング済みであるし、 複雑な導出をするこ と もないので、 ト ランスフォーマステージは不要ではないのかと思うでし ょ う。 実をいえば、そのとおりであって、 このジ ョブでは必要あ り ません。 ただし、 後で別のエクササイズをする と きに使います。

7. 以下のよ うに、 ターゲッ トの固定幅フラ ッ ト ファ イルステージを定義します。

a. ファ イル名を SLS.REPS.ORDERSSLS.REPS.ORDERSSLS.REPS.ORDERSSLS.REPS.ORDERS と します。

b. DD 名 : REPORDERREPORDERREPORDERREPORDER

c. [ 既存ファイルを削除して再作成既存ファイルを削除して再作成既存ファイルを削除して再作成既存ファイルを削除して再作成 ] を書き込みオプシ ョ ンと して選択します。

d. [ 列列列列 ] タブをク リ ッ ク して、 ジ ョ インステージから取り出された列定義を確認します。

e. [ オプシ ョ ンオプシ ョ ンオプシ ョ ンオプシ ョ ン ] をク リ ッ ク して、 保存期間を 90 日に指定します。

8. ジ ョブを保存し、 コードを生成します。

これで、SALESREPおよび SALES_ORDERS入力テーブルのデータをマージするジョブが設計できました。SLS.REPS.ORDER出力テーブルには、各販売員から出されたすべての発注伝票に関する情報が収められます。

ExerciseExerciseExerciseExercise23232323: ルックアップステージでデータをマージ: ルックアップステージでデータをマージ: ルックアップステージでデータをマージ: ルックアップステージでデータをマージするするするする

このエクササイズでは、 前回のジ ョブを設定し直して、 現在入荷待ちの品目すべてを選択します。 入荷待ちとなっている販売予約を調べるためのプレルッ クアップ条件を指定してから、 カーソルルッ クアップによってその注文品をルッ クアップします。 その結果を SLS.BACKORD.ITEMSという COBOL ファ イルにロード します。

ジ ョ インとルックアップによるデータのマージ 11-5

Page 166: Datastage_8Mainframe Job Tutorial

データを見つける手順を次に示します。

1. 現在のジ ョブを Exercise23 と して保存します。

2. デザイナのマネージャウ ィ ンド ウまたはリポジ ト リ ウ ィ ンド ウを使って、 Orditem.cfd ファ イルから ORDER_ITEMS テーブル定義を、Rep_Orditem.cfd ファ イルから REP_ORDER_ITEMS テーブル定義をインポート します。

3. デザイナでは、 ト ランスフォーマステージの後にルッ クアップステージを追加します。 ト ランスフォーマステージからルッ クアップステージへの 2 つ目の出力リ ンク も追加します。 このリ ンクはルックアップ用の ス ト リーム リ ンク (ド ラ イバ) とな り ます。 また、 コンプレッ クスフラ ッ ト ファ イルステージからルッ クアップステージへの出力リ ンク も追加します。 このリ ンクは、 参照リ ンク とな り、点線で示されます。

後に、 ターゲッ トの固定幅フラ ッ ト ファ イルステージを追加します。 以下のよ うにステージ名と リ ンク名を変更します。

4. 以下のよ うに、 OrderItems コンプレッ クスフラ ッ ト ファ イルステージを定義します。

a. ファ イル名を ORDER.ITEMSORDER.ITEMSORDER.ITEMSORDER.ITEMS と します。

b. ORDER_ITEMS テーブルから列定義をロード します。

11-6 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 167: Datastage_8Mainframe Job Tutorial

5. BackOrderItems ターゲッ ト ステージを定義します。

a. ファ イル名 : SLS.BACKORD.ITEMSSLS.BACKORD.ITEMSSLS.BACKORD.ITEMSSLS.BACKORD.ITEMS

b. 書き込みオプシ ョ ンと して、 [ 既存ファイルに上書き既存ファイルに上書き既存ファイルに上書き既存ファイルに上書き ] を選択します。

c. REP_ORDER_ITEMS テーブルから列定義をロード します。 ルッ クアップステージはまだ定義してないので、 このステージに与えられる列定義はあ り ません。

6. 列の伝播メ ソ ッ ドを使って xSalesRepOrdersOutToLookup リ ンクの出力列を定義します。

7. 以下のよ うに、 ルッ クアップステージを定義します。

a. [ ルッ クアップタイプルッ クアップタイプルッ クアップタイプルッ クアップタイプ ] 領域の [ カーソルルッ クアップカーソルルッ クアップカーソルルッ クアップカーソルルッ クアップ ] をクリ ッ ク します。

b. [ ルッ クアップテクニッ クルッ クアップテクニッ クルッ クアップテクニッ クルッ クアップテクニッ ク ] フ ィールドのデフォルト設定はそのままにしておきます。 [ 自動自動自動自動 ] の場合、 指定した情報に基づいて DataStage が処理方式を選択します。 この場合、 参照リ ンクのシリ アルリードを実行します。 [ハッシュハッシュハッシュハッシュ ]を選択すると、DataStageは、ハッシュジョインテクニックに似たインメモリハッシュテーブルを参照リンク上に構築します。

c. [ プレルッ クアップ条件プレルッ クアップ条件プレルッ クアップ条件プレルッ クアップ条件 ] をク リ ッ ク して、 条件付きルッ クアップを定義します。 入荷待ちの 「B」 または 「b」 の注文状態である販売予約だけを調べます。 また、 プレルッ クアップ条件が一致しなかった場合にする処理も選択する必要があ り ます。 このオプシ ョ ンは下記のとおりです。

[ 行をスキップ行をスキップ行をスキップ行をスキップ ]。 行をステージから出力しないよ うにします。

[ 前回の値を使用前回の値を使用前回の値を使用前回の値を使用 ]。 前回のルッ クアップからの値を出力リ ンクに送信します。 このオプシ ョ ンは一行ルッ クアップの場合だけ使えます。

[NULL で埋めるNULL で埋めるNULL で埋めるNULL で埋める ]。 ルッ クアップ値を NULL に設定して出力リ ンクに行を送信します。

入荷待ちの品目だけを調べたいので、 [ 行をスキップ行をスキップ行をスキップ行をスキップ ] を選択します。 これが終わる と、 [ プレルッ クアップ条件プレルッ クアップ条件プレルッ クアップ条件プレルッ クアップ条件 ] タブは下記のよ うに表示されるはずです。

ジ ョ インとルックアップによるデータのマージ 11-7

Page 168: Datastage_8Mainframe Job Tutorial

これとは別に、 文字列を使用する場合には 16 進数文字列を使えます。 文字列全体は 16 進形式、 あるいは文字形式のどちらかでなければなり ません。 この 2 つの形式は混在できません。 レガシーシステムでは 16 進数が一般的です。

この例では、 ORDER_STATUS 列に 16 進数の値がある場合、 プレルッ クアップ条件は X 定数を使って 16 進数文字列を指定します。 X 定数は、 一重引用符で囲まれた値が 16 進数であるこ とを意味します。 下記のよ うに、 「B」 に相当する 16 進数は 「C2」、「b」 に相当する 16 進数は 「82」 です。

11-8 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 169: Datastage_8Mainframe Job Tutorial

この練習目的のために、 プレルッ クアップ条件は文字形式にしておきます。

d. [ ルッ クアップ条件ルッ クアップ条件ルッ クアップ条件ルッ クアップ条件 ] をク リ ッ ク します。 こ こで、 ルッ クアップを実行する条件を指定します。 下記のよ うに、 一致する注文番号を見つけるためのルッ クアップのベース となる式を作成します。

ジ ョ インとルックアップによるデータのマージ 11-9

Page 170: Datastage_8Mainframe Job Tutorial

[ ルッ クアップ失敗時の動作ルッ クアップ失敗時の動作ルッ クアップ失敗時の動作ルッ クアップ失敗時の動作 ] リ ス ト でこれらのオプシ ョ ンを見てみます。 このオプシ ョ ンはプレルッ クアップ条件のものと同じですが、 プログラムを停止する [ プログラムを中断プログラムを中断プログラムを中断プログラムを中断 ] オプシ ョンがあ り ます。 [ 行をスキップ行をスキップ行をスキップ行をスキップ ] のデフォルトの設定を使います。

e. [ 入力入力入力入力 ] ページをク リ ッ ク して、 各入力リ ンクの列定義を参照します。

f. [ 出力出力出力出力 ] ページの [ マッピングマッピングマッピングマッピング ] タブをク リ ッ ク します。 列自動マッチテクニッ クを使って OrderItemsOut 参照リ ンクから列をマッピングします。 必ず、 位置マッチではなく名前マッチを指定して ください。 ス ト リーム リ ンクから SLS_REP_NBR をド ラ ッグ&ド ロ ップして REP_NUM の仕様を作成します。

8. ジ ョブを保存し、 コードを生成します。

それぞれの入荷待ちの注文品をルッ クアップするジ ョブを展開できました。 プレルッ クアップ条件を指定して条件付きルッ クアップを実行する方法を習得し、 プレルッ クアップ条件やルッ クアップ条件が失敗した場合の処理を選択しました。

11-10 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 171: Datastage_8Mainframe Job Tutorial

まとめまとめまとめまとめこの章では、 ジ ョ インステージとルッ クアップステージでデータをマージするプロセスについて説明しました。 DataStage で実行可能なジ ョ インとルッ クアップについて学び、 さまざまなジ ョ イン方法とルッ クアップ方法の違いを理解しました。 ジ ョ インまたはルッ クアップの条件を決める式の作成方法も習得しました。

しかし、 DataStage のパワフルなデータ処理機能については、 今のと ころほんの一端を明らかにしただけです。 次に、 データの集約用とデータのソート用という、 2 種類のアクティブステージについて取り上げることにします。

ジ ョ インとルックアップによるデータのマージ 11-11

Page 172: Datastage_8Mainframe Job Tutorial

11-12 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 173: Datastage_8Mainframe Job Tutorial

12データのソート と集約

この章では、 メ インフレームジ ョブのデータ処理と して、 さ らにソートと集約という 2 つの方法について学びます。 これらの方法は、 データを分類したり、 ま とめたりするものであって、 データの解析を容易にするため、 特にデータウェアハウスを扱う上で便利です。

ソート ステージを使えば、 1つの入力リ ンクから得たデータをソートできます。 ソートする列を複数選択できます。 その選択後、 ソートの昇順または降順を指定します。

アグ リゲータステージを使えば、 1つの入力リ ンクから得たデータを分類し、 ま とめるこ とができます。 計数、 合計、 平均、 先端、 終端、小、 大などのさまざまな集約関数を利用できます。

Exercise24 では、 ソート ステージでデータをソートする方法を示します。ソート列を選択し、 ソート順序を指定する方法を習得して ください。

Exercise25 では、 アグ リゲータステージの概要を示します。 データを集約する 2 つの方法と、 利用できるさまざまな集約関数について学んでください。 ソート ステージを使用する変わりに、 ソースデータをプレソートする方法も説明します。 プレソート機能を使用する場合、 DataStageは生成 COBOL プログラムを実行する前にデータをプレソートする別のJCL の手順を生成します。

Exercise 26 では、 DataStage の ENDOFDATA 変数を使って特殊集約をする方法を説明します。 ソースステージにデータの終わり行を追加してから、 ト ランスフォーマステージの制約条件でこのインジケータを使って、 いつ入力データの 後の行が処理されたかを調べます。 ステージ変数は入荷待ちのすべての製品の利益の現在高を保存して、 データの終わり フラグに達したら、 出力リ ンクにその結果を送信します。

データのソート と集約 12-1

Page 174: Datastage_8Mainframe Job Tutorial

ExerciseExerciseExerciseExercise24242424: データをソートする: データをソートする: データをソートする: データをソートするこのエクササイズでは、 ソート ステージを使って発注伝票の各項目をソート します。 これらの項目は、 前のジ ョブで SLS.BACKORD.ITEMSフラ ッ ト ファ イルにロード したものです。

データをソートする手順を次に示します。

1. Exercise24 という名前の、 新しいジ ョブを作成します。

2. ソースの固定幅フラ ッ ト ファ イルステージ、 ソート ステージ、 ターゲッ トの固定幅フラ ッ ト ファ イルステージを追加します。 これらのステージを リ ンク して、 以下のよ うにステージ名と リ ンク名を変更します。

3. 以下のよ うに、 BackOrderItems ソースステージを定義します。

a. ファ イル名を SLS.BACKORD.ITEMS と します。

b. REP_ORDER_ITEMS テーブルから列定義をロード します。

c. BACK_ORDER_QUANTITY が 1 以上のレコードだけを選択する制約条件を定義します。

4. ソート ステージを開きます。 デフォルトで [ 出力出力出力出力 ] ページの [ ソートソートソートソート] タブが表示されているので、 以下の処理をします。

a. [ 選択した列選択した列選択した列選択した列 ] リ ス トに PRODUCT_ID、 COLOR_CODE の各列を追加します。 [ 選択した列選択した列選択した列選択した列 ] リ ス ト では、 昇順昇順昇順昇順がデフォルト と

12-2 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 175: Datastage_8Mainframe Job Tutorial

なっています。 各列について、 このデフォルト設定をそのままにしておきます。

[ ソートソートソートソート ] タブは下記のよ うに表示されるはずです。

b. 列プッシュオプシ ョ ンがオンであるので、 [ マッピングマッピングマッピングマッピング ] タブで列マッピングを定義する必要はあ り ません。 こ こでは、 [OKOKOKOK] ボタンをク リ ッ クするだけで、 変更内容は保存され、 [Sort ステーSort ステーSort ステーSort ステージジジジ ] ダイアログボッ クスが閉じます。 このダイアログボッ クスを再び開き、 [ マッピングマッピングマッピングマッピング ] タブをク リ ッ ク します。 DataStage が出力列を作成し、 マッピングを定義したのがわかり ます。

5. 以下のよ うに、 SortedItems ターゲッ ト ステージを定義します。

a. ファ イル名を SLS.SORTED.ITEMSSLS.SORTED.ITEMSSLS.SORTED.ITEMSSLS.SORTED.ITEMS と します。

b. 書き込みオプシ ョ ンを [ 既存ファイルに上書き既存ファイルに上書き既存ファイルに上書き既存ファイルに上書き ] と します。

6. ジ ョブを保存し、 コードを生成します。

製品 ID と色ごとに入荷待ちの品目をソートするジ ョブが作成できました。 ソート された情報は、 解析のために SLS.SORTED.ITEMS フラ ッ トファ イルにロード されます。

データのソート と集約 12-3

Page 176: Datastage_8Mainframe Job Tutorial

Exercise2Exercise2Exercise2Exercise25555: データを集約する: データを集約する: データを集約する: データを集約するこのエクササイズでは、 入荷待ちの各製品の総数と予定の利益を計算します。 予定の総利益とは注文にある各セール品目の合計です。 このエクササイズでは、 ソート ステージではなく、 固定幅フラ ッ ト ファ イルソースステージでプレソート機能を使ってデータをソートする方法を説明します。

データを集約する手順を次に示します。

1. Exercise25 という ジ ョブを新規作成します。

2. 固定幅フラ ッ ト ファ イルソースステージ、 ト ランスフォーマステージ、 も う 1 つの固定幅フラ ッ ト ファ イルステージ、 アグ リゲータステージ、 および固定幅フラ ッ ト ファ イルターゲッ ト ステージをデザイナキャンバスに追加します。 これらのステージを リ ンク して下記のよ うに名前を変更します。

3. 下記のよ うにソースステージを編集します。

a. ファ イル名 : SLS.BACKORD.ITEMSSLS.BACKORD.ITEMSSLS.BACKORD.ITEMSSLS.BACKORD.ITEMS

b. REP_ORDER_ITEMS テーブルから列定義をロード します。

c. [ プレソートプレソートプレソートプレソート ] タブをク リ ッ ク します。 [ 制御文制御文制御文制御文 ] リ ス トで[SORT FIELDSSORT FIELDSSORT FIELDSSORT FIELDS] を選択して、 [ ソート列を選択ソート列を選択ソート列を選択ソート列を選択 ] ダイアログボックスを開きます。 PRODUCT_ID および COLOR_CODE を [ 選択選択選択選択した列した列した列した列 ] リ ス トに移動して、 ソート順序が [ 昇順昇順昇順昇順 ] であるこ とを確認します。

12-4 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 177: Datastage_8Mainframe Job Tutorial

d. [ オプシ ョ ンオプシ ョ ンオプシ ョ ンオプシ ョ ン ] タブをク リ ッ ク します。 これによって、 プレソート されたメ インフレームファ イルの作成に必要な JCL パラ メータを定義できます。 MVS123MVS123MVS123MVS123 のボ リ ューム通し識別子を指定して、 保存期間を 90909090 日に指定します。

e. 前回のジ ョブで使用した制約条件と同じ制約条件を定義します。

4. ト ランスフォーマステージを編集します。

a. PRODUCT_ID、 COLOR_CODE、 およびBACK_ORDER_QUANTITY 列を出力リ ンクにマッピングします。

b. ItemTotalBeforeDiscount とい う ステージ変数を、 初期値を 0、SQL タイプを Decimal、 精度を 18 で定義します。 各品目の総利益 (単価×入荷待ちの数量) を計算する仕様を指定します。

c. 割引価格を含む総額を各項目ごとに算出する ITEM_TOTAL という新しい出力列を定義します。 メ タデータ領域を使って、Decimal データ型と長さ 18 の列定義を指定します。 式エディ タで、 以下のよ うに ItemTotalBeforeDiscount ステージ変数を使って 列仕様を 指定します。

データのソート と集約 12-5

Page 178: Datastage_8Mainframe Job Tutorial

5. SortedItems 固定幅フラ ッ ト ファ イルステージを開きます。

a. ファ イル名 : SLS.SORTED.ITEMSSLS.SORTED.ITEMSSLS.SORTED.ITEMSSLS.SORTED.ITEMS

b. 書き込みオプシ ョ ン : [ 既存ファイルを削除して再作成既存ファイルを削除して再作成既存ファイルを削除して再作成既存ファイルを削除して再作成 ]

6. アグ リゲータステージを開きます。 [ 出力出力出力出力 ] ページでは、 デフォルトで [ 全般全般全般全般 ] タブが表示されます。

a. [ 種類種類種類種類 ] 領域のデフォルト設定に注目してください。 [GGGGROUP ROUP ROUP ROUP BYBYBYBY] と [ コン ト ロールブレイ クコン ト ロールブレイ クコン ト ロールブレイ クコン ト ロールブレイ ク ] という 2 つの集約種別があ り ます。 [GGGGROUP BYROUP BYROUP BYROUP BY] は、 入力行をソート してからデータを集約します。 [ コン ト ロールブレイ クコン ト ロールブレイ クコン ト ロールブレイ クコン ト ロールブレイ ク ] は、 初にソートするこ とな く、データを集約します。 コン ト ロールブレーク集約は、 データがすでに目的に従って分類されているものと見なし、 各グループで連続した行だけを集約します。 データは事前にソート されているので、 [ コン ト ロールブレイ クコン ト ロールブレイ クコン ト ロールブレイ クコン ト ロールブレイ ク ] はデフォルトの設定のままにしておきます。

b. [ 集約集約集約集約 ] タブをク リ ッ ク してデータに適用する集約関数を指定します。 各列ごとに複数の集約関数を使えます。 すべての列に対して [Group ByGroup ByGroup ByGroup By] ボッ クスのチェッ クマークがオンになっているこ とに注目して ください。 集約ステージから出力された列はすべて、 グループ化または集約する必要があるからです。 列について集約関数を選択する と、 [Group ByGroup ByGroup ByGroup By] ボッ クスのチェッ クマークは自動的にオフ とな り ます。 下記のよ うに、 入荷待ちの各製品の品目の合計と総利益を求めます。

12-6 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 179: Datastage_8Mainframe Job Tutorial

c. [ マッピングマッピングマッピングマッピング ] をク リ ッ ク します。 入力リ ンクでは、 集約された列の前に集約関数が表示されます。 列を出力リ ンクにマッピングして ください。 出力列の名前と仕様でも、 実行する集約関数が表示されます。

7. 以下のよ うに、 ターゲッ トの SummedItems 固定幅フラ ッ ト ファ イルステージを定義します。

a. ファ イル名を SLS.SUM.BACKITEM と します。

b. 書き込みオプシ ョ ンを [Create a new file] と します。

c. ボ リ ューム通し識別子は MVS123MVS123MVS123MVS123、 保存期間は 90909090 日です。

8. ジ ョブを保存し、 コードを生成します。

入荷待ちの品目の数と、 各色の製品ごとの予定の利益を計算するジ ョブが作成できました。 これこそがタイプ別の情報であ り、 データウェアハウスはこの目的で作成されています。

データのソート と集約 12-7

Page 180: Datastage_8Mainframe Job Tutorial

Exercise 2Exercise 2Exercise 2Exercise 26666: ENDOFDATA を使用する: ENDOFDATA を使用する: ENDOFDATA を使用する: ENDOFDATA を使用するこのエクササイズでは前回のジ ョブを設定し直して、 入荷待ちの製品すべての予定の総利益を調べます。 ただし、 値引き額は除きます。 ソースステージにデータの終わり識別子を追加して、 ENDOFDATA 変数を使用する ト ランスフォーマステージで制約条件を定義し、 総利益を計算するステージ変数を新規作成して、 これを別の出力リ ンクに送信します。

ENDOFDATA を使用するには下記の手順を行います。

1. 現在のジ ョブを Exercise26 と して保存します。

2. ジ ョブデザインで、 ト ランスフォーマステージの後に固定幅フラ ット ファ イルステージを追加します。 これらのステージを リ ンク して下記のよ うに名前を変更します。

3. ソースステージを開いて、 [ 全般全般全般全般 ] タブで [end-of-data 行を生成end-of-data 行を生成end-of-data 行を生成end-of-data 行を生成 ] 行を選択します。 DataStage は 後の行が処理されたら EOD インジケータをファ イルに追加します。 EOD インジケータはト ランスフォーマステージで使います。

4. ト ランスフォーマステージを編集します。

a. BookedRevenueOut リ ンクの 制約条件を定義します。 これは、ソースファ イルで EOD インジケータをチェッ ク します。 このインジケータは ENDOFDATA とい う ビル ト イン変数であ り、 データの 後の行が処理される と この値が真とな り ます。 後の行が処理された場合にだけ、 この リ ンクにデータを書き込みます。

12-8 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 181: Datastage_8Mainframe Job Tutorial

制約条件式を作成するには、 下記のよ うに IS TRUE 論理関数を使います。

ENDOFDATA IS TRUE

b. xItemsOut リ ンクで同様の制約条件を定義します。 これは、ENDOFDATA が偽であるかど うかをチェッ ク します。 後の行が処理される前までのデータだけをこのリ ンクに書き込みます。制約条件は、 データの終わり行がこの リ ンクに出力されないようにします。

c. TotalRevenue とい う新しいステージ変数を、 初期値を 0、 SQL タイプを Decimal、 精度を 18 で定義します。 各行が処理されるたびに、 予定の利益の現在高を保存する仕様を指定します。 これは、 各行で ItemTotalBeforeDiscount を TotalRevenue に追加して行われます。 IF THEN ELSE 文を使って集約の停止時期を決めます。 ENDOFDATA が偽の場合、 ItemTotalBeforeDiscount をTotalRevenue に追加し続けます。 ENDOFDATA が真の場合、後のレコードに達する と停止できます。 仕様は下記のよ うに表示されるはずです。

データのソート と集約 12-9

Page 182: Datastage_8Mainframe Job Tutorial

d. TOTAL_BOOKED_REVENUE という BookedRevenueOut リ ンクで出力列を挿入します。 SQL タイプを Decimal、 長さを 18 に指定します。 その列で、 TotalRevenue ステージ変数を [ 出力仕様出力仕様出力仕様出力仕様 ] セルにド ラ ッグ&ド ロ ップします。 こ こで、 ト ランスフォーマエディ タは下記のよ うに表示されるはずです。

5. 下記のよ うにターゲッ ト ステージを定義します。

a. ファ イル名 : SLS.TOTAL.REVENUE

b. DD 名 : REVTOTAL

c. 書き込みオプシ ョ ン : [ 新規ファイルを作成新規ファイルを作成新規ファイルを作成新規ファイルを作成 ]

d. ボ リ ューム通し識別子 : MVS123MVS123MVS123MVS123 保存期間 : 90909090 日

6. ジ ョブを保存してコードを生成します。

これで、 ト ランスフォーマステージで特殊集約を実行する ENDOFDATA変数の使用方法がわかり ました。 この場合、 入荷待ちのすべての製品の総利益を計算しました。

12-10 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 183: Datastage_8Mainframe Job Tutorial

まとめまとめまとめまとめこの章では、 データのソート方法と集約方法について説明しました。 入荷待ちの品目をソートするジ ョブや、 入荷待ちの品目数と各製品の予定の総利益をまとめるジ ョブを作成しました。 三番目のジ ョブは、 ソースステージで EOD インジケータを使って、 入荷待ちの製品すべての総利益を計算しました。

これで、 DataStage メ インフレーム ジ ョブのアクティブステージのほとんどを理解したこ とにな り ます。 データウェアハウス環境でデータをソースからターゲッ トに流すと き、 そのデータを処理するさまざまな方法を習得しました。

次の章で、 SQL ビジネスルールロジッ クを使用してさらに複雑なデータ変換を指定する方法を説明します。

データのソート と集約 12-11

Page 184: Datastage_8Mainframe Job Tutorial

12-12 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 185: Datastage_8Mainframe Job Tutorial

13ビジネスルールの定義

この章では、 ビジネスルールを使用してメ インフレームジ ョブで複雑なデータ変換を定義する方法を説明します。 ビジネスルールステージは、次の 2 つの点で ト ランスフォーマステージに類似しています。

・ ステージ変数の定義が可能です。

・ 式エディ タ と類似したビルト インエディ タがあ り、 それを使用して SQL ビジネスルールロジッ クを指定します。

主な相違点と しては、 ビジネスルールステージでは条件文やループ文などの SQL の制御フロー機能にアクセス可能であるこ とが挙げられます。これによ り、 ジ ョブの中で条件付きマッピングとループ変換を実行できます。 また、 SQL の COMMIT 文と ROLLBACK 文も利用可能で、 リ レーシ ョナルデータベースを使用したジ ョブにおける ト ランザクシ ョ ンの制御能力を高めるこ とができます。

Exercise 27 は、 ト ランザクシ ョ ン制御のためのビジネスルールステージの利用方法を示すものです。 リ レーシ ョナルターゲッ ト ステージを使用する第 9 章のジ ョブを再設計してください。 ビジネスルールステージを追加して、 ターゲッ ト テーブルへの更新が正常に行われたかど うかを確認します。 正常に更新されていれば、 変更はコ ミ ッ ト されます。 正常に更新されなかった場合は、 変更はロールバッ ク され、 ジ ョブは終了します。

ビジネスルールの定義 13-1

Page 186: Datastage_8Mainframe Job Tutorial

Exercise 2Exercise 2Exercise 2Exercise 27777: リレーシ ョナルト ランザクシ ョ ンの制御: リレーシ ョナルト ランザクシ ョ ンの制御: リレーシ ョナルト ランザクシ ョ ンの制御: リレーシ ョナルト ランザクシ ョ ンの制御このエクササイズでは、 ターゲッ ト テーブルへの変更をコ ミ ッ ト またはロールバッ クするタイ ミ ングを決定するよ うに、 Exercise17 のジ ョブを再設計します。 ビジネスルールステージを使用して必要なビジネスルールロジッ クを指定します。

1. デザイナでジ ョブ Exercise19 を開き、 名前を Exercise27 に変更します。

2. キャンバスにビジネスルールステージを追加しますが、 ト ランスフォーマステージは削除しません。 ト ランスフォーマステージ リ ンク上のメ タデータを保持するこ とにします。 そのため、 NewRepsOutリ ンク先矢印をビジネスルールステージに、 xNewRepsOut リ ンクソース矢印をビジネスルールステージにド ラ ッグします。 この操作を完了すれば、 ト ランスフォーマステージを削除できます。 デザイナキャンバスは以下のよ う な表示になり ます。

13-2 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 187: Datastage_8Mainframe Job Tutorial

3. ビジネスルールステージを開きます。 デフォルトでは [ 定義定義定義定義 ] タブがアクティブになっています。

こ こで、 ステージのビジネスルールロジッ クを指定します。 このタブは、 [ テンプレートテンプレートテンプレートテンプレート ]、 [ ビジネスルール編集ビジネスルール編集ビジネスルール編集ビジネスルール編集 ]、 [ オペレータオペレータオペレータオペレータ ]、 および [ ステータスステータスステータスステータス ] の 4 つのペインに分かれています。

ビジネスルールを作成するには、 [ ビジネスルール編集ビジネスルール編集ビジネスルール編集ビジネスルール編集 ] ペインで直接入力しても、 [ テンプレートテンプレートテンプレートテンプレート ] ペインおよび [ オペレータオペレータオペレータオペレータ ] ペインで項目を選択してもかまいません。 [ 構築ルール構築ルール構築ルール構築ルール ] ボタンを使用して、 入力列を出力列にマップするために必要な SET 文と INSERT 文を自動的に生成するこ と もできます。

ターゲッ ト テーブルへの変更をコ ミ ッ トするかロールバッ クするかを決定するビジネスルールを定義するこ とにします。 ビル ト イン変数 SQLCA.SQLCODE を利用してステータスの更新をチェ ッ ク します。 この変数は、 データが正常に出力リ ンクに書き込まれた場合にはゼロを返し、 エラーがあった場合には非ゼロの値を返します。 結果を伝達するための DISPLAY 文と、 エラーが発生した場合にジ ョブを終了させるための EXIT 文を記述します。

ビジネスルールの定義 13-3

Page 188: Datastage_8Mainframe Job Tutorial

ビジネスルールを定義するには、 以下の手順を実行します。

a. 出力リ ンクの列マッピングを定義するため、 [ 構築ルール構築ルール構築ルール構築ルール ] をクリ ッ ク します。 [ ルールルールルールルール ] タブが表示されます。 これは他のアクティブステージの [ マッピングマッピングマッピングマッピング ] タブに類似しています。

b. マウスの右ボタンを使用して入力リ ンクのすべての列を選択してから、 それらを出力リ ンクにド ラ ッグします。 [OKOKOKOK] をク リ ック します。

13-4 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 189: Datastage_8Mainframe Job Tutorial

c. 次に示すよ うに、 必要な SET 文と INSERT 文が [ ビジネスルービジネスルービジネスルービジネスルール編集ル編集ル編集ル編集 ] ペインに表示されます。

d. 次に、 SQLCA.SQLCODE をチェッ ク して正常に挿入されたこ とを調べる式を作成します。 [ テンプレートテンプレートテンプレートテンプレート ] ペインで、 [SQL 構SQL 構SQL 構SQL 構成成成成 ] フォルダから 「IF THEN」 を選択します。

e. <Condition> を次の記述で置き換えます。

SQLCA.SQLCODE = 0

ゼロは正常終了を表します。

f. 次に、 COMMIT 文を挿入します。 これも [SQL 構成SQL 構成SQL 構成SQL 構成 ] フォルダに含まれています。 これによ り変更がコ ミ ッ ト されます。

g. こ こで DISPLAY 文を追加します。 <Expr>[,<Expr>,<Expr>,<Expr>,<Expr>]... を次の記述で置き換えます。

‘Insert succeeded’,CURRENT_TIMESTAMP

これによ り、 正常に挿入されたこ とが確認され、 挿入された時間が表示されます。

ビジネスルールの定義 13-5

Page 190: Datastage_8Mainframe Job Tutorial

[ ビジネスルール編集ビジネスルール編集ビジネスルール編集ビジネスルール編集 ] ペインは、 次のよ うに表示されます。

h. [SQL 構成SQL 構成SQL 構成SQL 構成 ] フォルダから、 式を閉じる END IF 文を追加します。

i. こ こで、 更新の失敗に対処する式を作成します。 も う 1 つ IF THEN 文を挿入しますが、 今回は <Condition> を、SQLCA.SQLCODE が非ゼロの値であるこ とをチェッ クする次の式に置き換えます。

SQLCA.SQLCODE <> 0

j. 次に、 変更をロールバッ クする ROLLBACK 文を追加します。

k. 結果を伝達する DISPLAY 文を挿入します。

DISPLAY(‘Insert failed’,CURRENT_TIMESTAMP)

l. 後に、 ジ ョブを終了させる EXIT 文を追加します。 <status> を16 に置き換えます。 16 は標準的な COBOL 終了コードです。END IF で式を閉じます。

[ ビジネスルール編集ビジネスルール編集ビジネスルール編集ビジネスルール編集 ] ペインは、 次のよ うにな り ます。

13-6 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 191: Datastage_8Mainframe Job Tutorial

m. [ 検証検証検証検証 ] をク リ ッ ク して、 式に文法エラーがあるかど うかをチェ ッ ク します。

n. [OK] をク リ ッ ク してステージを閉じます。

4. ジ ョブを保存し、 コードを生成します。 初にコード生成パスでジ ョブ名を 「Exercise27」 に変更します。

以上、 ビジネスルールステージを利用して、 リ レーシ ョナルステージまたは Teradata リ レーシ ョナルステージを使用したジ ョブで ト ランザクシ ョ ンを制御する方法を説明しました。

まとめまとめまとめまとめこの章では、 ビジネスルールステージを紹介しました。 このステージは、 SQL ビジネスルールロジッ クを用いた複雑な変換を実行するために使用します。 データが正常に出力リ ンクに書き込まれたかど うかをチェ ッ ク して、 リ レーシ ョナルテーブルへの変更をコ ミ ッ トするかロールバッ クするかを決定するジ ョブの設計を行いました。

次に、 よ り高度なプログラ ミ ングを メ インフレームジ ョブに組み込むための手段を提供するアクティブステージを、 も う 1 つ紹介します。

ビジネスルールの定義 13-7

Page 192: Datastage_8Mainframe Job Tutorial

13-8 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 193: Datastage_8Mainframe Job Tutorial

14外部ルーチンの呼び出

DataStage Enterprise MVS Edition の もパワフルな機能の 1つと して、ジ ョブから外部の COBOL サブルーチンを呼び出す機能があ り ます。 この機能で、 ユーザーの環境にしかない複雑な処理や機能を、 DataStageで作成したプログラムに組み込むこ とができます。 外部ルーチンの言語は、 COBOL やアセンブラや C など、 COBOL プログラムで呼び出せるものであれば、 何であってもかまいません。

この章では、 メ インフレームジ ョブで外部ルーチンを定義し、 呼び出す方法について説明します。 まず、第 10 章 で習ったことを思い出して、DataStageマネージャでルーチンメタデータを定義します。次に、 外部ルーチンステージを使って、 ルーチンを呼び出し、 その入力引数と出力引数のマッピングを行います。

外部ルーチンの呼び出し 14-1

Page 194: Datastage_8Mainframe Job Tutorial

Exercise2Exercise2Exercise2Exercise28888: ルーチンのメ タデータを定義する: ルーチンのメ タデータを定義する: ルーチンのメ タデータを定義する: ルーチンのメ タデータを定義するこのエクササイズでは、外部ソースおよび外部ターゲットプログラム用に作成したものと似たような DataStageマネージャルーチン定義を作成します。ルーチン定義に含まれるものは、2 つの日付の間の日数を計算する DATEDIFという外部ルーチンの名前、ライブラリパス、呼び出し方式、および入出力引数です。ルーチン定義は DataStage リ ポジ ト リに格納され、 メ インフレームジ ョブで使用可能とな り ます。

ルーチンのメ タデータを定義する手順を次に示します。

1. マネージャで [メインフレームルーチンメインフレームルーチンメインフレームルーチンメインフレームルーチン ]ダイアログボックスを開き、[全般全般全般全般 ]ページを以下のように指定します。

a. ルーチン名は DATEDIFです。

b. ルーチンタイプは [外部ルーチン外部ルーチン外部ルーチン外部ルーチン ]です。

c. カテゴリは External¥¥¥¥Salesです。

d. 呼び出し方式は [ 静的静的静的静的 ]です。

e. ライブラリパスは UTILDSです。

f. 説明は : Calculates the number of days between two dates in the format MM-DD-YYです。

2. [ 引数引数引数引数 ] をク リ ッ ク し、 以下のよ うにルーチンの引数を定義します。

a. 1 番目の引数は Date1Date1Date1Date1 とい う入力引数です。 データ型はCHARACTERCHARACTERCHARACTERCHARACTER、 長さは 10101010 です。

b. 2 番目の引数は Date2Date2Date2Date2 とい う入力引数です。 データ型はCHARACTERCHARACTERCHARACTERCHARACTER、 長さは 10101010 です。

c. 3 番目の引数は NumDaysNumDaysNumDaysNumDays という出力引数です。 データ型はBINARYBINARYBINARYBINARY、 長さは 5555 です。

14-2 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 195: Datastage_8Mainframe Job Tutorial

これによって、[引数引数引数引数 ]ページの内容は以下のようになるはずです。

3. [ 保存保存保存保存 ] ボタンをク リ ッ ク してルーチン定義を保存し、 [ 閉じる閉じる閉じる閉じる ] ボタンをク リ ッ ク して [ メ インフレームルーチンメ インフレームルーチンメ インフレームルーチンメ インフレームルーチン ] ダイアログボッ クスを閉じます。

ルーチンのメ タデータが作成できました。 これで、 ジ ョブからルーチンを呼び出せます。

外部ルーチンの呼び出し 14-3

Page 196: Datastage_8Mainframe Job Tutorial

Exercise2Exercise2Exercise2Exercise29999: 外部ルーチンを呼び出す: 外部ルーチンを呼び出す: 外部ルーチンを呼び出す: 外部ルーチンを呼び出すこのエクササイズでは、 外部ルーチンステージを使ってジ ョブを設計します。 DATEDIF ルーチンの引数とステージの入力、 出力列をマッピングする方法について学びます。

ルーチンを呼び出す手順を次に示します。

1. デザイナで、 Exercise22 という名前のジ ョブを開き、 Exercise29 という名前で保存します。

2. 製品の納入にかかる日数を算出するために、 ト ランスフォーマステージの前に外部ルーチンステージを追加します (ヒ ン ト : 矢印を外部ルーチンステージにド ラ ッグして、 SalesRepOrdersOut リ ンクを移動します。 その結果、 リ ンクのメ タデータが保存されます。 リ ンクを削除し、 新しい リ ンクを追加する と、 メ タデータは失われるので、 ジ ョ インステージの出力を再定義するこ とにな り ます)。 以下のよ うに、 ステージ名と リ ンク名を変更します。

14-4 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 197: Datastage_8Mainframe Job Tutorial

3. 以下のよ うに、 外部ルーチンステージを定義します。

a. 前回のエクササイズで定義したカテゴ リ とルーチン名を [ 出力出力出力出力 ]ページの [ 全般全般全般全般 ] タブで選択します。 このタブはデフォルトで表示されます。

b. [ レコード と して引数を渡すレコード と して引数を渡すレコード と して引数を渡すレコード と して引数を渡す ] チェッ クボッ クスに注意して ください。 このオプシ ョ ンを選択する と、 どのルーチン引数も 01 レベルで 1つのレコード と して渡すこ とができます。 これは、 一般的にデータエリ アを示す 1つの引数しか渡さないレガシールーチンで役に立ちます。 このエクササイズでは、 このチェックボッ クスを選択しないでください。

c. [ ルーチンマッピングルーチンマッピングルーチンマッピングルーチンマッピング ] をク リ ッ ク します。 こ こで、 入力列をルーチンの入力引数にマッピングします。 入力列の値はルーチンによる計算で使われます。 ORDER_DATE 列を Date1 引数にマッピングし、 SHIPMENT_DATE 列を Date2 引数にマッピングします。

d. [ マッピングマッピングマッピングマッピング ] をク リ ッ ク します。 こ こで、 ルーチンの出力引数が出力列にマッピングされます。 NumDays 引数を出力リ ンクにド ラ ッグ&ド ロ ップして ください。 次に、 入力リ ンク列を出力リ ンクにマッピングします。 これらの値は、 外部ルーチンで使われないので、 以下のよ うにステージを通して移動するだけです。

外部ルーチンの呼び出し 14-5

Page 198: Datastage_8Mainframe Job Tutorial

4. 以下のよ うに、 ト ランスフォーマステージを修正します。

a. DAYS_TO_SHIP と IS_LATE という 2 つの新しい列を出力リ ンクに追加します。 DAYS_TO_SHIP のデータ型は Integer で、 長さは5 です。 IS_LATE のデータ型は Char で、 長さは 5 です。

b. NumDays を入力リ ンクから ド ラ ッグ&ド ロ ップするこ とで、DAYS_TO_SHIP の 仕様を作成します。 この列は、 発注日から納品日までの日数を示します。

c. 納品までの期間が 14 日を超える場合は ‘Yes’ の文字列を指定し、 そ うでなければ ‘No’ を指定する IS_LATE の仕様を作成します。 以下のよ うに、 IF THEN ELSE 文によって式を作成します。

14-6 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 199: Datastage_8Mainframe Job Tutorial

d. 外部ルーチンステージから ト ランスフォーマステージへ新しい入力リ ンクを張っても、 出力列仕様はまだ 存続しています。DataStage は、 入力リ ンクが削除されても仕様を消去しません。なぜならば、 出力列が入力列から導出されないこ と もあるからです。

e. 列を選択してから、 シ ョート カッ ト メニューで [ 出力仕様をク出力仕様をク出力仕様をク出力仕様をクリ アリ アリ アリ ア ] を選択して、 DAYS_TO_SHIP と IS_LATE を除くすべての列の仕様を消去します。

f. 入力列を [ 出力仕様出力仕様出力仕様出力仕様 ] セルにド ラ ッグ&ド ロ ップするこ とで、 残りの出力列について新しい仕様を定義します。

外部ルーチンの呼び出し 14-7

Page 200: Datastage_8Mainframe Job Tutorial

こ こで、 ト ランスフォーマエディ タは下記のよ うに表示されるはずです。

5. ジ ョブを保存し、 コードを生成します。

これで、 外部ルーチンを呼び出すジ ョブの設計ができました。 ルーチンの入力、 出力引数とステージの列の間でマッピングをしました。 ルーチンで算出される情報を示すよ うに、 ト ランスフォーマステージを編集しました。

まとめまとめまとめまとめこの章では、 メ インフレームジ ョブから外部ルーチンを呼び出す方法について学びました。 DataStageマネージャでルーチン定義を指定しました。次に、 発注日から納品日までの日数を算出する目的で、 ジ ョブに外部ルーチンステージを追加しました。

以上で、DataStage Enterprise MVS Edition にあるほとんどの種類のステージの使い方を習得できました。 後に、 コードを生成するプロセス と メインフレームにジ ョブをアップロードするプロセスについて詳し く見るこ とにします。

14-8 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 201: Datastage_8Mainframe Job Tutorial

15コードの生成

DataStage Enterprise MVS Edition でメ インフレーム ジ ョブの設計を終えたら、 コードの生成に取りかかり ます。 作成するのは、 COBOL ソース、コンパイル JCL、 実行 JCL の 3 つのファイルです。 これらのファ イルは、 DataStage ク ライアン トマシンのディ レク ト リに格納します。 その後、 メ インフレームにアップロード します。 アップロード したファ イルは、 メ インフレームでコンパイルされて実行されます。

コンパイル JCL はメ インフレームの COBOL コンパイラ と リ ンクエディタを呼び出し、 実行 JCL が COBOL プログラムを実行します。 COBOLプログラムは、 ソースデータを読み出し、 変換し、 ジ ョブの指定に従って、 ターゲッ トのデータファ イルまたは DB2 テーブルにロード します。

この章では、 コードを生成し、 ジ ョブを メ インフレームにアップロードするプロセスに焦点を当てます。 Exercise30 では、 DataStage の JCL テンプレートの修正方法を習得します。 Exercise31 では、 ジ ョブを検証し、コードを生成します。 Exercise32 では、 DataStage マネージャでマシンプロファ イルを定義します。 後の Exercise33 では、 ジ ョブアップロードのシ ミ ュレーシ ョ ンをします。

ExerciseExerciseExerciseExercise30303030: JCL テンプレート を修正する: JCL テンプレート を修正する: JCL テンプレート を修正する: JCL テンプレート を修正するジ ョブ制御言語 (JCL) は、 メ インフレームに対してジ ョブの実行方法に関する一連の命令を与えるのに使われます。 JCL では、 ジ ョブをステップに分割し、 各ステップで以下の情報を指定します。

・ 実行するプログラム・ プログラムを収めたライブラ リ・ プログラムで必要なファイルとその属性・ プログラムで必要なインライン入力・ ステップ実行の条件

コードの生成 15-1

Page 202: Datastage_8Mainframe Job Tutorial

DataStage Enterprise MVS Edition には、 ジ ョブ固有の JCL を得るためにカスタマイズする JCL テンプレートの集合があ り ます。 これらのテンプレートは、 コンパイル JCL および実行 JCL ファ イルを作成するのに使われます。 テンプレートの一覧、 そして各テンプレートの説明と使い方については 『DataStage メ インフレーム ジ ョブ開発者ガイ ド』 を参照してください。

JCL テンプレート をカスタマイズする手順を次に示します。

1. DataStage マネージャを開き、 [ ツールツールツールツール ] → [ JCL テンプレートJCL テンプレートJCL テンプレートJCL テンプレート ] を選択します。 以下の [JCL テンプレートJCL テンプレートJCL テンプレートJCL テンプレート ] ダイアログボッ クスが表示されます。 [ テンプレート名テンプレート名テンプレート名テンプレート名 ] ド ロ ップダウン リ ス トで [CompileLinkCompileLinkCompileLinkCompileLink]を選択します。

2. [ テンプレートテンプレートテンプレートテンプレート ] ボッ クスのコードを見てください。 % 記号で始まる変数があ り ます。 これらの変数は、 JCL 生成で使われる制御語です。絶対に変更したり削除した り しないでください。 これらの変数には、コードの生成時に自動的に値が与えられます。 変数の定義や指定位置などの変数の詳細については、 『DataStage メ インフレーム ジ ョブ開発者ガイ ド』 を参照して ください。

3. ファ イルの先頭に以下のコ メン ト行を追加します。

//*** Last modified by <your name>

15-2 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 203: Datastage_8Mainframe Job Tutorial

4. <==REVIEW<==REVIEW<==REVIEW<==REVIEW の付いている行に注目してください。 これらの行は、 テンプレートでカスタマイズする個所です。 例えば、 COBOL コンパイラ とそのパスを収めたライブラ リの名前を修正する場合は、 初の REVIEW 行を見ます。 これらの行は、 必要に応じて変更できます。

5. [ 保存保存保存保存 ] ボタンをク リ ッ ク して変更内容を保存します。

6. [ テンプレート名テンプレート名テンプレート名テンプレート名 ] ド ロ ップダウン リ ス トで [RunRunRunRun] を選択します。 続いて、 同じよ うに修正を施します。

7. [ リ セッ トリセッ トリセッ トリセッ ト ] ボタンをク リ ッ ク してテンプレート を元の形式に戻します。

8. [OldFileOldFileOldFileOldFile] テンプレート を開き、 JCL 変数を見つけます。

9. [ 閉じる閉じる閉じる閉じる ] ボタンをク リ ッ ク します。

JCLテンプレートのカスタマイズがどれほど簡単かがわかりました。

ExerciseExerciseExerciseExercise31313131: ジ ョブを検証し、 コードを生成する: ジ ョブを検証し、 コードを生成する: ジ ョブを検証し、 コードを生成する: ジ ョブを検証し、 コードを生成するジ ョブのコードを生成する方法についてはすでに学んでいるのですが、このエクササイズではジ ョブの検証と コードの生成というプロセスについてさ らに詳し く取り組むこ とにします。

ジ ョブのコードを生成する と き、 DataStage は 初にジ ョブ設計を検証します。 メ インフレームジ ョブは以下の方法で検証します。

・ ジ ョブのすべてのステージが接続されて 1つの連続した流れとなっているこ とを確認し、 各ステージが必要な入力リ ンク と出力リ ンクを持っているこ とを確認する。

・ 各ステージで使われている式の文法チェッ ク とセマンティ クスチェ ッ クをする。

・ 列マッピングを調べて、 データ型との適合を確認する。

メ インフレームジ ョブの検証ルールは、 以下のとおりです。

・ ジ ョブではステージのチェーンが 1つだけ許容される。・ 各ジ ョブは、 少なく と も 1 つのアクティブステージを持つ。・ パッシブステージ同士はリ ンクできない。・ 各ステージは、 少なく と も 1 つのリ ンクを持つ。・ アクティブステージは、 少なく と も 1 つの入力リ ンク と 1 つの出

力リ ンクを持つ。・ DD 名はジ ョブ内で固有なものとする。・ ジ ョブで作成される出力ファイルは固有なものとする。

コードの生成 15-3

Page 204: Datastage_8Mainframe Job Tutorial

メ インフレームステージ間で設定可能な リ ンクの詳細と、 各ステージの入力および出力リ ンク数については、 『DataStage メ インフレーム ジ ョブ開発者ガイ ド』 を参照して ください。

ジ ョブを検証し、 コードを生成する手順を次に示します。

1. デザイナで Exercise4 という ジ ョブを開きます。

2. ソースステージを開き、 ファ イル名と DD 名を記録します。

3. ターゲッ ト ステージを開き、 ファ イル名と DD 名を記録します。

4. [ コード生成コード生成コード生成コード生成 ] ダイアログボッ クスを開きます。 [ ト レースランタイト レースランタイト レースランタイト レースランタイム情報ム情報ム情報ム情報 ] ド ロ ップダウン リ ス トで、 [ プログラムフロープログラムフロープログラムフロープログラムフロー ] を選択します。 DataStage は、 各パラグラフ名の DISPLAY が実行されるたびに、COBOL プログラムを生成します。 パラグラフ名は PERFORM のネス ト状態を示すためにインデン ト されます。 この情報はデバッグ時に役に立ちます。

5. [ カスタマイズのため COPY 文を作成カスタマイズのため COPY 文を作成カスタマイズのため COPY 文を作成カスタマイズのため COPY 文を作成 ] チェ ッ クボッ クスに注意してください。 このオプシ ョ ンを選択する と DataStage 生成 COBOL プログラムをカスタマイズできます。 また [COPY ラ イブラ リのプレCOPY ラ イブラ リのプレCOPY ラ イブラ リのプレCOPY ラ イブラ リのプレフ ィ ッ クスフ ィ ッ クスフ ィ ッ クスフ ィ ッ クス ] フ ィールドを使用して、 COPYLIB メ ンバーの幾つかのバージ ョ ンを作成し、 コードをカスタマイズするこ と もできます。詳細については、 『DataStage メ インフレーム ジ ョブ開発者ガイ ド』を参照して ください。

6. ジ ョブのコードを生成します。 使用する COBOL プログラム名を記録します。 [ 状態状態状態状態 ] ウ ィンド ウを見て、 検証メ ッセージの有無を調べます。 COBOL プログラムを参照して、 PARA-LEVEL および PARA-NAME 命令が指定される場所、 およびインデン ト されたパラグラフ名を印刷するためにランタイムライブラ リ関数である DSUTPAR が呼び出される場所を調べます。

7. JCL ファ イルを参照し、 以下のよ うに調べます。

a. コンパイル JCL テンプレートに追加したコ メン ト行を見つけます。

b. COBOL プログラム名が %pgmname%pgmname%pgmname%pgmname 変数に置き換わっている場所を見つけます。

8. 実行 JCL を参照し、 ソースファ イルと ターゲッ ト ファ イルについて生成された DD 文を調べます。 ファ イルでの DD 名の位置を調べます。

9. [ 閉じる閉じる閉じる閉じる ] ボタンをク リ ッ ク します。

15-4 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 205: Datastage_8Mainframe Job Tutorial

このエクササイズでは、 コードの生成について詳し く説明しました。ジ ョブの検証が行われたこ とを確認し、 ステージに入力した仕様がコードのどこにあるかを調べました。 さ らに、 カスタマイズした結果が入っている COBOL と JCL ファ イルを参照しました。

ExerciseExerciseExerciseExercise32323232: マシンプロファイルを定義する: マシンプロファイルを定義する: マシンプロファイルを定義する: マシンプロファイルを定義するマシンプロファ イルは、 ジ ョブアップロードまたは FTP で使われるターゲッ トマシンの属性です。 これには、 接続属性と ライブラ リ名が含まれます。 以下のエクササイズでは、 リポジ ト リでマシンプロファ イルを定義します。

マシンプロファ イルを定義する手順を次に示します。

1. マネージャを開いて (またはデザイナのリポジ ト リ ウ ィ ンド ウを使って)、 プロジェク ト ツ リーの [ マシンプロファ イルマシンプロファ イルマシンプロファ イルマシンプロファ イル ] ブランチをク リ ッ ク します。

2. マネージャから [ ファ イルファ イルファ イルファ イル ] → [ 新規マシンプロファ イル新規マシンプロファ イル新規マシンプロファ イル新規マシンプロファ イル ] を選択します。 あるいは、 デザイナから右ク リ ッ ク して [ 新規プロファ イル新規プロファ イル新規プロファ イル新規プロファ イル ]を選択します。 デフォルトで [ 全般全般全般全般 ] ページを表示した [ マシンプロマシンプロマシンプロマシンプロファ イルファ イルファ イルファ イル ] ダイアログボッ クスが表示されます。

3. [ マシンプロファ イル名マシンプロファ イル名マシンプロファ イル名マシンプロファ イル名 ] フ ィールドに SYS4SYS4SYS4SYS4 と入力します。

コードの生成 15-5

Page 206: Datastage_8Mainframe Job Tutorial

4. [ カテゴ リカテゴ リカテゴ リカテゴ リ ] フ ィールドに SalesSalesSalesSales と入力します。

5. 必要なら、 短い説明も入力します。

6. [ 接続接続接続接続 ] タブをク リ ッ ク して、 以下のよ うに接続プロパティを指定します。

a. [IP ホス ト名 / アドレスIP ホス ト名 / アドレスIP ホス ト名 / アドレスIP ホス ト名 / アドレス ] フ ィールドに SYS4SYS4SYS4SYS4 と入力します。

b. [ ユーザー名ユーザー名ユーザー名ユーザー名 ] フ ィールド と [ パスワードパスワードパスワードパスワード ] フ ィールドに dstagedstagedstagedstageと入力します。 [OKOKOKOK] ボタンはパスワード入力後に有効となるので注意して ください。 ユーザー名とパスワードは、 新しいマシンプロファ イルを保存する前に入力しなければなり ません。

c. [FTP 転送タイプFTP 転送タイプFTP 転送タイプFTP 転送タイプ ] フ ィールドおよび [FTP サービスFTP サービスFTP サービスFTP サービス ] フ ィールドでは、 デフォルト設定のままにしておきます。 これらのフ ィールドは、 マシン接続に使用するファ イル転送のタイプと FTPサービスを指定します。

d. [ メ インフレーム使用可能メ タデータ生成メ インフレーム使用可能メ タデータ生成メ インフレーム使用可能メ タデータ生成メ インフレーム使用可能メ タデータ生成 ] 領域に注目してください。 こ こで、 プロジェク ト またはジ ョブプロパティで [ メ イメ イメ イメ インフレーム使用可能メ タデータ生成ンフレーム使用可能メ タデータ生成ンフレーム使用可能メ タデータ生成ンフレーム使用可能メ タデータ生成 ] を選択した場合に作成される XML ファ イルについての詳細を指定します。 マシンプロファ イルを使用して、 [ ジ ョブプロパティジ ョブプロパティジ ョブプロパティジ ョブプロパティ ] ダイアログボッ クスの [ メ インフレーム使用可能メ タデータメ インフレーム使用可能メ タデータメ インフレーム使用可能メ タデータメ インフレーム使用可能メ タデータ ] ページにこれらの詳細をロードできるよ うにな り ます。

7. [ ラ イブラ リラ イブラ リラ イブラ リラ イブラ リ ] タブをク リ ッ ク して、 以下のよ うにライブラ リ情報を指定します。

a. [ ソースライブラ リソースライブラ リソースライブラ リソースライブラ リ ]フィールドに XDV4.COBOL.SOURCEとタイプ入力します。これはメインソースファイルがある場所です。

b. [ コンパイル用コンパイル用コンパイル用コンパイル用 JCLJCLJCLJCL ラ イブラ リラ イブラ リラ イブラ リラ イブラ リ ]フィールドにXDV4.COMPILE.JCLとタイプ入力します。これは JCLコンパイルファイルがある場所です。

c. [ 実行用実行用実行用実行用 JCL ラ イブラ リラ イブラ リラ イブラ リラ イブラ リ ]フィールドに XDV4.EXECUTE.JCLとタイプ入力します。これは JCL実行ファイルがある場所です。

d. [ オブジェク ト ラ イブラ リオブジェク ト ラ イブラ リオブジェク ト ラ イブラ リオブジェク ト ラ イブラ リ ]フィールドに、XDV4.DS.OBJとタイプ入力します。これはコンパイラ出力がある場所です。

e. [DBRM ライブラ リライブラ リライブラ リライブラ リ ]フィールドに、XDV4.DS.DBRMとタイプ入力します。これは DB2プログラムに関する情報がある場所です。

15-6 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 207: Datastage_8Mainframe Job Tutorial

f. [ ロード ラ イブラ リロード ラ イブラ リロード ラ イブラ リロード ラ イブラ リ ]フィールドに、XDV4.DS.LOADとタイプ入力します。これは実行可能プログラムがある場所です。

g. [ ジ ョブカードアカウン ト情報ジ ョブカードアカウン ト情報ジ ョブカードアカウン ト情報ジ ョブカードアカウン ト情報 ]フィールドに、DATASTAGEとタイプ入力します。

8. [OKOKOKOK] ボタンをク リ ッ ク して変更内容を保存します。 新しいマシンプロファ イルは、 マネージャウ ィンド ウの右ペインに表示されます。

これで、 マシンプロファ イルの定義が終わり ました。 次に、 その使い方を説明します。

ExerciseExerciseExerciseExercise33333333: ジ ョブをアップロードする: ジ ョブをアップロードする: ジ ョブをアップロードする: ジ ョブをアップロードするこのエクササイズでは、 シ ミ ュレーシ ョ ンで、 作成済みファイルをメ インフレームにアップロード します。 メ インフレームに接続しないで、アップロードのプロセスをエクササイズし、 その手順を学んでください。 デザイナでジ ョブをアップロード し、 FTP でファイルをク ライアント (ファ イル作成元) からターゲッ トマシンに転送します。

ジ ョブをアップロードする手順を次に示します。

1. デザイナで、 Exercise4 のジ ョブを開き、 [ ファ イルファ イルファ イルファ イル ] → [ ジ ョブをジ ョブをジ ョブをジ ョブをアップロードアップロードアップロードアップロード ] を選択します。 以下の [ リモート システムリモート システムリモート システムリモート システム ] ダイアログボッ クスが表示されます。

コードの生成 15-7

Page 208: Datastage_8Mainframe Job Tutorial

2. [マシンプロファイルマシンプロファイルマシンプロファイルマシンプロファイル ]フィールドにデフォルトで [SYS4]が表示されることに注意してください。存在するマシンプロファイルはこれだけだからです。ほかのマシンプロファイルを定義していた場合は、ドロップダウンリストから別のマシンプロファイルを選択できます。マシンプロファイルを選択したら、フィールドの残りの部分は自動的にプロファイル詳細で埋まります。これらのフィールドは編集できますが、変更内容は保存されません。

3. [ 接続接続接続接続 ] ボタンをク リ ッ ク してアップロードを開始します (これはシミ ュレーシ ョ ンです。 実際には、 この手順を実行しよ う とする とエラーが起こ り ます)。

マシンの接続が完了する と、 [ ジ ョブのアップロードジ ョブのアップロードジ ョブのアップロードジ ョブのアップロード ] ダイアログボッ クスが表示されるので、 転送するファ イルを選択し、 ジ ョブをアップロード します。

4. [ キャンセルキャンセルキャンセルキャンセル ] ボタンをク リ ッ ク して、 [ リモート システムリモート システムリモート システムリモート システム ] ダイアログボッ クスを閉じます。

メ インフレームにジ ョブをアップロードするプロセスが完了しました。これで、 作業の終了とな り ます。

まとめまとめまとめまとめこの章では、 メ インフレームジ ョブを設計した後に行う、 開発の後処理について説明しました。 まず、 ユーザーの環境に合わせて JCL テンプレート を修正しました。 次に、 ジ ョブの検証と と もにコードの生成をしました。 後に、 マシンプロファ イルを定義し、 ターゲッ トマシンにジ ョブをアップロード しました。

15-8 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 209: Datastage_8Mainframe Job Tutorial

16要約

この章では、 DataStage Enterprise MVS Edition の主な機能についてまとめ、 このチュート リ アルで学んだこ とを簡単に振り返ってみます。

DataStage Enterprise MVS Edition の主な機能DataStage Enterprise MVS Edition の主な機能DataStage Enterprise MVS Edition の主な機能DataStage Enterprise MVS Edition の主な機能DataStage Enterprise MVS Editionには以下のような機能があり、メインフレーム環境でのデータウェアハウスの設計と構築の手助けとなります。

・ COBOL FD、 DB2 DCLGen ファイルや IMS ファイルを含め、 さまざまなソースから メ タデータをインポート します。 アプリ ケーシ ョ ンの設計中、 いつでもテーブル定義の参照や修正ができます。また、 手操作でテーブル定義を作成するこ と もできます。

・ コンプレッ クスデータ構造体と複数のレコード タイプを含むファイルなど、 メ インフレームフラ ッ ト ファ イルからデータを読み取り ます。 開始行パラ メータ と終了行パラ メータの設定、 データ終わり行の生成、 ソースデータの事前ソートができます。 また、 配列の正規化、 またはフラ ッ ト化を選択できます。 制約条件によって、 データを処理するためにアクティブステージに送る前にフィルタ リ ングできます。

・ IMS データベースからデータを読みます。 IMS セグメン ト階層を表示し、 データの読み取り元であるセグメン トパスを定義し、 パーシャルパスを処理するかど うか、 配列を平坦化するかど うかを指定できます。

・ メ インフレーム DB2 テーブルからデータを読み出す。 WHERE 句、GROUP BY 句、 ORDER BY 句、 HAVING 句を含むリ レーシ ョナルデータを抽出するための SQL SELECT 文を定義できます。

・ データを変換する。 ビルト インの式エディ タを使えば、 出力列の正しい仕様式を定義するのが簡単です。 式の作成では、 変数、 定

要約 16-1

Page 210: Datastage_8Mainframe Job Tutorial

数、 関数などのプログラ ミ ングコンポーネン ト を利用できます。SQL ビジネスルールロジッ クを使用して、 複雑な変換を定義するこ と もできます。

・ ジ ョ インとルッ クアップを使用して、 異なるソースから取得したデータをマージします。 内部結合、 外部結合、 完全結合、 ならびに一行ルッ クアップとカーソルルッ クアップを実行します。 テクニッ クはいくつかの中から選択できます。 また、 条件付きルッ クアップもサポート します。 これは、 データが必要でない場合、 またはデータがすでに使用できる場合に、 ルッ クアップを省略してジ ョブパフォーマンスを向上させるこ とができます。

・ データを集約、 ソートする。

・ 複数の入力リ ンクから取得したデータを結合して 1つの出力リ ンクに渡します。

・ 外部ルーチンを呼び出す。 COBOL プログラムで呼び出せるルーチンの定義を作成して保存し、 そのルーチンを作成済みの COBOLプログラムに組み込むこ とができます。

・ メ インフレーム環境のフラ ッ ト ファ イルと DB2 テーブルにデータを書き込む。 FTP ステージで、 ファ イルを別のマシンに転送できます。

・ 外部リソースおよびターゲットに対するデータの読み書きをします。外部ソースとターゲットプログラムは、COBOLが呼び出せる任意の言語で作成できます。また、任意のメインフレームジョブから呼び出せるルーチン定義も作成できます。

・ COBOL ソースファイル、 コンパイル JCL ファイル、 実行 JCLファ イルを生成する。 カスタマイズ可能な JCL テンプレートの集ま りによって、 ジ ョブ固有の JCL を作成できます。 独自の基準に合わせて COBOL プログラムをカスタマイズするこ と も可能です。

・ プログラムとデータフローに関するランタイム情報を ト レースします。 デバッグに役立ちます。

・ 任意で指定する と、 ジ ョブの処理ステップを記述したオペレーシ ョナルメ タ XML ファ イルを生成します。 このファイルは、MetaStage でプロセス分析、 影響分析、 およびデータの系統化のために使用できます。

・ 作成されたファイルを メ インフレームにアップロードする。 このファ イルは、 データウェアハウスを作成するためにメ インフレームでコンパイル、 実行されます。

16-2 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 211: Datastage_8Mainframe Job Tutorial

エクササイズの要約エクササイズの要約エクササイズの要約エクササイズの要約ジ ョブ設計、 メ タデータ管理、 プロジェク ト管理などについて順を追ってエクササイズし、DataStage Enterprise MVS Edition ツールセッ トの使い方を学びました。

DataStage Enterprise MVS Edition は本書で取り上げた処理よ り もっと高度なものをサポートできるのですが、 読者は少なく と もその基本的な特長と機能を理解できたはずです。

エクササイズで使った機能をま とめる と、 以下のよ うにな り ます。

1. メ インフレームジ ョブのプロジェク トデフォル ト値とグローバル設定値を指定する。

2. メ インフレームソースからテーブル定義をインポートする。

3. メ インフレームジ ョブのデザイナオプシ ョ ンを指定する。

4. メ インフレームジ ョブを作成、 編集、 保存する。

5. ジ ョブを検証し、 コードを生成する。

6. ト ランスフォーマステージを作成、 編集する。

7. 式エディ タを使う。

・ 制約条件、 ステージ変数、 ジ ョブパラ メータを定義する。・ 出力列の仕様式を作成する。

8. 固定幅フラ ッ ト ファ イルのソースステージと ターゲッ ト ステージを作成、 編集する。

9. 区切り文字付きフラ ッ ト ファ イルのソースステージと ターゲッ ト ステージの作成および編集。

10. DB2 ロード レディ フラ ッ ト ファ イルステージの作成および編集。

11. FTP ステージの作成および編集。

12. コンプレッ クスフラ ッ ト ファ イルステージの作成および編集。

13. 配列のフラ ッ ト化および正規化。

14. OCCURS DEPENDING ON 句の処理。

15. マルチフォーマッ ト フラ ッ ト ファ イルステージの作成および編集。

16. IMS ソースから メ タデータをインポートする。

17. IMS ステージの作成および編集。

要約 16-3

Page 212: Datastage_8Mainframe Job Tutorial

18. リ レーシ ョナルソースステージおよびリ レーシ ョナルターゲッ ト ステージの作成および編集。

19. 外部ソースからのデータの読み取り。

・ リ ポジ ト リでの外部ソースルーチン定義の作成。・ 外部ソースステージの作成および編集。

20. 外部ターゲッ トへのデータの書き込み。

・ リ ポジ ト リでの外部ターゲッ トルーチン定義の作成。・ 外部ターゲッ ト ステージの作成および編集。

21. ジ ョ インステージを使用したデータのマージ。

22. ルッ クアップステージを使用したデータのマージ。

23. ソート ステージを使用したデータのソート。

24. ソースステージ事前ソート機能を使用したデータのソート 。

25. アグ リゲータステージを使用したデータの集約。

26. ENDOFDATA 変数を使用したデータの集約。

27. ビジネスルールステージを使用した SQL ビジネスルールロジッ クの定義

28. 外部ルーチンの呼び出し。

・ リ ポジ ト リでのルーチンメ タデータの定義。・ 外部ルーチンステージの作成および編集。

29. JCL テンプレートのカスタマイズ。

30. リ ポジ ト リでのマシンプロファ イルの定義。

31. メ インフレームへのジ ョブのアップロード。

このチュート リ アルでは、 DataStage のユーザーインタフェースを下記へナビゲートする方法も習得しました。

・ DataStage マネージャおよびリポジ ト リ・ DataStage デザイナ・ DataStage アド ミ ニス ト レータ

かなり複雑な例で練習しましたが、 正しいツールを使用すればデータの処理がどれほど簡単であるかが理解できたでし ょ う。

16-4 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 213: Datastage_8Mainframe Job Tutorial

Ascential Ascential Ascential Ascential Software Corporation へのお問い合わせへのお問い合わせへのお問い合わせへのお問い合わせどんな質問にも喜んでお答えします。

DataStage Enterprise MVS Editionを楽しくお使いいただけたと思います。また、このチュートリアルをお読みになって、この製品が提供するデータウェアハウス構築用のパワフルな機能をご理解していただけたと思います。

要約 16-5

Page 214: Datastage_8Mainframe Job Tutorial

16-6 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 215: Datastage_8Mainframe Job Tutorial

Aサンプルデータの定義

この付録の内容は、 エクササイズで使ったデータのテーブル定義と列定義です。

以下の表は、 サンプルデータのテーブル定義と列定義をすべてまとめたものです。 これらの表は、 各テーブルのプロパティがリポジ ト リで参照される と、 どのよ うに表示されるかを示しています。

初にアルファベッ ト順の COBOL ファ イル定義があ り ます。 その後に、 DB2 DCLGen ファ イル定義および IMS 定義が続いています。

サンプルデータの定義 A-1

Page 216: Datastage_8Mainframe Job Tutorial

COBOL ファイル定義COBOL ファイル定義COBOL ファイル定義COBOL ファイル定義

CUST_ADDRESS (ProductsCustomers.cfd)CUST_ADDRESS (ProductsCustomers.cfd)CUST_ADDRESS (ProductsCustomers.cfd)CUST_ADDRESS (ProductsCustomers.cfd)

レベルレベルレベルレベル 列名列名列名列名 キーキーキーキー キーキーキーキー 長さ長さ長さ長さ スケースケースケースケールルルル

NULL設定設定設定設定 表示表示表示表示

05 CUSTOMER_ID なし Char 10 不可 10

05 ADDRESS_TYPE なし Char 2 不可 2

05 ADDRESS-NAME なし Char 30 不可 30

05 ADDRESS_LINE1 なし Char 26 不可 26

05 ADDRESS_LINE2 なし Char 26 不可 26

05 ADDRESS_LINE3 なし Char 26 不可 26

05 ADDRESS_LINE4 なし Char 26 不可 26

05 ADDRESS_ZIP なし Char 9 不可 9

05 ADDRESS_CITY なし Char 20 不可 20

05 ADDRESS_STATE なし Char 2 不可 2

05 ADDRESS_COUNTRY なし Char 4 不可 4

05 ADDRESS_PHONE なし Char 12 不可 12

05 ADDRESS_LAST_UPD_DATE なし Char 8 不可 8

A-2 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 217: Datastage_8Mainframe Job Tutorial

CUSTOMER (ProductsCustomers.cfd)CUSTOMER (ProductsCustomers.cfd)CUSTOMER (ProductsCustomers.cfd)CUSTOMER (ProductsCustomers.cfd)

レベルレベルレベルレベル 列名列名列名列名 キーキーキーキー SQLデータ型データ型データ型データ型 長さ長さ長さ長さ スケースケースケースケー

ルルルルNULL設定設定設定設定 表示表示表示表示

05 CUSTOMER_ID なし Char 10 不可 10

05 CUSTOMER_STATUS なし Char 1 不可 1

05 CUSTOMER_SINCE_YEAR なし Decimal 4 不可 4

05 CREDIT_RATING なし Char 4 不可 4

05 SIC_CODE なし Char 10 不可 10

05 TAX_ID なし Char 10 不可 10

05 ACCOUNT_TYPE なし Char 1 不可 1

05 ACCOUNT_CONTACT なし Char 25 不可 25

05 ACCOUNT_CONTACT_PHONE

なし Char 12 不可 12

05 DATA_NOT_NEEDED なし Char 100 不可 100

05 MISC_1 なし Char 10 不可 10

05 MISC_2 なし Char 10 不可 10

05 MISC_3 なし Char 10 不可 10

05 MISC_4 なし Char 10 不可 10

05 MISC_5 なし Char 10 不可 10

05 MISC_6 なし Char 10 不可 10

05 MISC_7 なし Char 10 不可 10

05 MISC_8 なし Char 10 不可 10

05 MISC_9 なし Char 10 不可 10

05 MISC_10 なし Char 10 不可 10

サンプルデータの定義 A-3

Page 218: Datastage_8Mainframe Job Tutorial

DB2 DCLGen ファイル定義DB2 DCLGen ファイル定義DB2 DCLGen ファイル定義DB2 DCLGen ファイル定義

SALESREP (Salesrep.dfd)SALESREP (Salesrep.dfd)SALESREP (Salesrep.dfd)SALESREP (Salesrep.dfd)

列名列名列名列名 キーキーキーキー SQL デーSQL デーSQL デーSQL データ型タ型タ型タ型

長さ長さ長さ長さススススケーケーケーケールルルル

NULL 設NULL 設NULL 設NULL 設定定定定

表示表示表示表示

SLS_REP_NBR なし Char 8 不可 8

SLS_REP_LNAME なし Char 15 不可 15

SLS_REP_FNAME なし Char 15 不可 15

SLS_TERR_NBR なし Char 4 不可 4

STREET1 なし Char 30 不可 30

STREET2 なし Char 30 不可 30

STREET3 なし Char 30 不可 30

CITY なし Char 20 不可 20

STATE なし Char 2 不可 2

ZIP なし Char 10 不可 10

TAX_ID なし Char 9 不可 9

SALESTERR (Saleterr.dfd)SALESTERR (Saleterr.dfd)SALESTERR (Saleterr.dfd)SALESTERR (Saleterr.dfd)

列名列名列名列名 キーキーキーキー SQL デーSQL デーSQL デーSQL データ型タ型タ型タ型

長さ長さ長さ長さススススケーケーケーケールルルル

NULL 設NULL 設NULL 設NULL 設定定定定

表示表示表示表示

SLS_TERR_NBR なし Char 4 不可 4

SLS_TERR_NAME なし Char 10 不可 10

SLS_REGION なし Char 2 不可 2

A-4 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 219: Datastage_8Mainframe Job Tutorial

IMS 定義IMS 定義IMS 定義IMS 定義次のテーブル定義は、 サンプルデータに含まれている IMS セグメン ト と結び付けられています。

DEALER (Dealer.psb)DEALER (Dealer.psb)DEALER (Dealer.psb)DEALER (Dealer.psb)

レベルレベルレベルレベル 列名列名列名列名 キーキーキーキーSQLデータ型データ型データ型データ型 長さ長さ長さ長さ

スケースケースケースケールルルル

NULL設定設定設定設定 表示表示表示表示

05 DLRNBR なし Char 4 不可

05 DLRNAME なし Char 30 不可

05 FILLER_2 なし Char 60 不可

MODEL (Dealer.psb)

レベルレベルレベルレベル 列名列名列名列名 キーキーキーキー SQLデータ型データ型データ型データ型 長さ長さ長さ長さ スケースケースケースケー

ルルルルNULL設定設定設定設定 表示表示表示表示

05 VEHTYPE なし Char 5 不可

05 MAKE なし Char 10 不可

05 MODEL なし Char 10 不可

05 YR なし Char 4 不可

05 MSRP なし Decimal 5 不可

05 FILLER_2 なし Char 6 不可

ORDERS (Dealer.psb)

レベルレベルレベルレベル 列名列名列名列名 キーキーキーキーSQLデータ型データ型データ型データ型 長さ長さ長さ長さ

スケースケースケースケールルルル

NULL設定設定設定設定 表示表示表示表示

05 ORDNBR なし Char 6 不可

05 FILLER_2 なし Char 43 不可

05 CUSTNAME なし Char 50 不可

06 FIRSTNME なし Char 25 不可

06 LASTNME なし Char 25 不可

05 FILLER_3 なし Char 25 不可

サンプルデータの定義 A-5

Page 220: Datastage_8Mainframe Job Tutorial

SALES (Dealer.psb)

レベルレベルレベルレベル 列名列名列名列名 キーキーキーキー SQLデータ型データ型データ型データ型 長さ長さ長さ長さ スケースケースケースケー

ルルルルNULL設定設定設定設定 表示表示表示表示

05 SLSDATE なし Char 10 不可

05 SLSPERSN なし Char 50 不可

06 FIRSTNME なし Char 25 不可

06 LASTNME なし Char 25 不可

05 FILLER_2 なし Char 50 不可

05 STKVIN なし Char 20 不可

STOCK (Dealer.psb)

レベルレベルレベルレベル 列名列名列名列名 キーキーキーキーSQLデータ型データ型データ型データ型 長さ長さ長さ長さ

スケースケースケースケールルルル

NULL設定設定設定設定 表示表示表示表示

05 SKTVIN なし Char 20 不可

05 FILLER_2 なし Char 20 不可

05 COLOR なし Char 10 不可

05 PRICE なし Decimal 7 不可

05 LOT なし Char 10 不可

A-6 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 221: Datastage_8Mainframe Job Tutorial

索引

数字数字数字数字

16 進数 11-82 つのファイルを照合 , ジ ョ インス

テージ 11-4

AAAA

Ascential SoftwareWeb サイ ト 16-5

BBBB

BETWEEN 関数 7-13

CCCC

CAST 関数 7-12CFD ファ イル

External.cfd 10-2Orditem.cfd 11-6ProductsCustomers.cfd 3-5, A-2, A-3PurchaseOrders.cfd 7-14Rep_Orditem.cfd 11-6Salesord.cfd 3-5, 3-8インポート 3-5定義 1-7

COBOL プログラム 15-1CURRENT_DATE 定数 7-13CUST_ADDRESS テーブル 3-7, A-2CUSTOMER テーブル 3-8, 4-16, A-3

DDDD

DataStage概要 1-1

ク ラ イアン ト コンポーネン ト 1-2サーバーコンポーネン ト 1-1

DataStage アド ミ ニス ト レータ 1-2, 2-1起動 2-2

DataStage ディ レク タ 1-2DataStage デザイナ 1-2, 4-2

ウ ィンド ウ 4-4起動 4-2ツールバー 4-4ツールパレッ ト 4-5デフォルトオプシ ョ ン 4-9

DataStage と外部プログラム間の呼び出しインタフェース 10-1

DataStage プロジェク ト管理ダイアログボッ クス 2-3

DataStage へ接続ダイアログボッ クス 2-2

DataStage マネージャ 1-2, 3-1ウ ィンド ウ 3-3起動 3-2ツールバー 3-3表示領域 3-4プロジェク ト ツ リー 3-3

DataStage メ インフレーム機能機能 16-1用語と コンセプ ト 1-7

DB2, サポートバージ ョ ン 6-3, 9-1DB2 ロードレディ フラ ッ ト ファ イルス

テージ定義 4-7, 6-3編集 6-13, 7-19

DCLGen ファ イルSalesrep.dfd 3-9, A-4Saleterr.dfd 3-9, A-4インポート 3-9定義 1-9

索引索引索引索引 -1

Page 222: Datastage_8Mainframe Job Tutorial

DD 名 1-9, 15-3DEALER テーブル A-5decimal, 拡張 2-6

EEEE

end-of-data 行 12-8ENDOFDATA 変数 12-1, 12-8EOD 行 7-2EXT_ORDERS テーブル 10-2, 10-3EXT_ORDERS テーブル 10-7

FFFF

FILLER 4-17FTP ステージ

定義 4-7編集 6-14

FTP ステージ ダイアログボッ クス 6-15

GGGG

GROUP BY 集約 12-6GROUP BY 句 9-1, 9-5

HHHH

HAVING 句 9-1HTML ファ イル , 保存 4-18, 4-23HTML ファ イルと して保存 4-18

IIII

IF THEN ELSE 関数 12-9, 6-12, 7-13IMS ステージ

定義 4-8IMS ファ イル

Dealer.psb A-5, A-6

JJJJ

JCL外部ルーチン 10-5, 10-8コンパイル 15-1実行 15-1定義 15-1テンプレート 15-1

JCL テンプレート ダイアログボッ クス 15-2

JCL テンプレートのカスタマイズ 15-2

JCL テンプレートの更新 15-2

LLLL

LPAD 関数 6-8

MMMM

MCUST_REC レコード 7-16MCUST_REC レコード 7-14MINV_REC レコード 7-17MINV_REC レコード 7-14MODEL テーブル A-5MORD_REC レコード 7-16MORD_REC レコード 7-14

NNNN

NEWREPS テーブル 9-8NEWREPS テーブル 9-7

OOOO

OCCURS DEPENDING ON 句 7-2, 7-10OCCURS 句 7-2, 7-8ORDER BY 句 9-1, 9-5ORDER_ITEMS テーブル 11-6ORDERS テーブル 10-8, A-5OS/390 1-11

索引索引索引索引 -2 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 223: Datastage_8Mainframe Job Tutorial

PPPP

PRODUCTS テーブル 3-8, 7-4, 7-8, 7-11

QQQQ

QSAM 1-11, 7-2

RRRR

REP_ORDER_ITEMS テーブル 12-4REP_ORDER_ITEMS テーブル 11-6, 11-

7, 12-2RTL, ランタイムライブラ リ を参照

SSSS

SALES_ORDERS テーブル 11-3SALES_ORDERS テーブル 3-8SALESREP テーブル 3-9, 9-3, 11-3, A-4SALESTERR テーブル 3-9, 9-3, 11-3, A-

4SALES テーブル A-6SQL SELECT 文 9-1, 9-6SQLCA.SQLCODE 変数 13-3STOCK テーブル A-6

TTTT

Teradata エクスポート ステージ 1-12, 4-8

Teradata リ レーシ ョナルステージ 1-12, 4-9

Teradata ロードステージ 1-12, 4-8TRIM 関数 7-9

VVVV

VSAM 1-13, 7-2

WWWW

WHERE 句 9-1, 9-4, 9-9

XXXX

X 定数 11-8

ああああ

アグ リゲータステージ集約の種類 12-6定義 4-7, 12-1編集 12-6マッピングデータ 12-7

後処理ステージ 1-6アド ミ ニス ト レータ , DataStage アド

ミ ニス ト レータを参照

いいいい

一行ルッ クアップ 11-1インポート

CFD ファ イル 3-5DCLGen ファ イル 3-9

うううう

ウ ィンド ウDataStage デザイナ 4-4DataStage マネージャ 3-3

ええええ

エクササイズENDOFDATA を使う 12-8FTP ステージを使用する 6-14JCL テンプレート を修正する 15-1OCCURS DEPENDING ON 句を処理

する 7-10外部ルーチンを呼び出す 14-4コードの生成 4-23, 15-3

索引索引索引索引 -3

Page 224: Datastage_8Mainframe Job Tutorial

コンプレッ クスフラ ッ ト ファ イルステージを使う 7-3, 8-1, 8-8

ジ ョ インステージでデータをマージする 11-2

ジ ョブの検証 15-3ジ ョブパラ メ タの定義 5-13ジ ョブをアップロードする 15-7ステージ変数の指定 5-9制約条件の定義 5-1データ書き込み

外部ターゲッ トへの 10-7データ読み取り

外部ソースからの 10-2データを書き込む

DB2 ロード レディ ファ イルに 6-10

区切り文字付きフラ ッ ト ファ イル 7-6

データを集約する 12-4データをソートする 12-2データを読み出す

リ レーシ ョナルソースから 9-2データを読み取る

区切り文字付きフラ ッ ト ファ イルから 6-3

コンプレッ クスフラ ッ ト ファ イルから 7-3, 8-1, 8-8

データを書き込むリ レーシ ョナルターゲッ トに 9-

7テーブル定義をインポート 3-5

CFD ファ イル 3-5DCLGen ファ イル 3-9

デザイナオプシ ョ ンの指定 4-9配列をフラ ッ ト化する 7-8プロジェク トデフォルト を設定す

る 2-1マシンプロファ イルを定義す

る 15-5マルチフォーマッ ト フラ ッ ト ファ

イルステージを使用する 7-14

マルチフォーマッ ト レコード タイプをマージする 7-20

メ インフレームジ ョブの作成 4-12要約 16-3リ レーシ ョナルト ランザクシ ョ ン

の制御 13-2ルーチンのメ タデータを定義す

る 14-2ルーチンメ タデータの定義 10-2ルッ クアップステージでデータを

マージする 11-5

おおおお

オプシ ョ ンダイアログボッ クス 4-9

かかかか

カーソルルッ クアップ 11-1外部結合 11-1外部ソースステージ

定義 4-7配列の処理 7-11編集 10-6

外部ターゲッ ト ステージ編集 10-8定義 4-7

外部テーブル , ジ ョ インステージ 11-1

外部ルーチン定義 1-9マッピング 14-5メ タデータ 14-2呼び出す 14-4

外部ルーチン , ルーチンを参照外部ルーチンステージ

定義 4-7, 14-5データのマッピング 14-5ルーチンマッピング 14-5

概要DataStage 1-1課題 1-6

索引索引索引索引 -4 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 225: Datastage_8Mainframe Job Tutorial

拡張 decimal 2-6カスタマイズ

COBOL プログラム 15-4課題

概要 1-6関数

BETWEEN 7-13CAST 7-12IF THEN ELSE 6-12, 7-13, 12-9LPAD 6-8TRIM 7-9

完全結合 11-1

くくくく

句GROUP BY 9-1, 9-5HAVING 9-1OCCURS 7-2, 7-8OCCURS DEPENDING ON 7-2, 7-10ORDER BY 9-1, 9-5WHERE 9-1

区切り文字付きフラ ッ ト ファ イルステージ

定義 4-7, 6-2編集 6-4, 7-7

ク ラ イアン ト コンポーネン ト 1-2

けけけけ

結合外部 11-1完全 11-1内部 11-1

ここここ

構成固定幅フラ ッ ト ファ イルステー

ジ 5-12コード生成 4-23, 15-3

ト レースランタイム情報 15-4

コード生成 ダイアログボッ クス 4-23, 15-4

コードの生成 15-1COBOL プログラム 15-1コンパイル JCL 15-1実行 JCL 15-1

コードを生成する , コード生成 を参照固定幅フラ ッ ト ファ イルステージ

end-of-data 行 12-8構成 5-12定義 4-7, 6-2テーブル定義のロード 4-16プレソート ソースデータ 12-4編集 4-15, 4-19, 6-9

固定幅フラ ッ ト ファ イルステージダイアログボッ クス 4-16

コ ミ ッ ト ごとの行数 9-3コン ト ロールブレイク集約 12-6コンパイル JCL 15-1コンプレッ クスファ イルロードオプ

シ ョ ン ダイアログボッ クス 7-5, 7-8

コンプレッ クスフラ ッ ト ファ イルステージ

定義 4-7, 7-2配列の処理 7-5, 7-11編集 7-4, 7-8列をロードする 7-4

コンポーネン トク ラ イアン ト 1-2サーバー 1-1

ささささ

サーバーコンポーネン ト 1-1サーバージ ョブ 1-4後の行 6-2

作成されたコードベース位置 4-10

作成されたコードのためのベース位置 4-10

索引索引索引索引 -5

Page 226: Datastage_8Mainframe Job Tutorial

参照リ ンク , ルッ クアップステージ 11-6

サンプルデータ 3-5, A-1

しししし

式列仕様 14-7出力条件 5-15仕様 6-8, 6-12, 7-9, 7-12, 7-13, 14-6制約条件 5-4セマンティ ッ クチェッ ク 2-6, 5-5,

5-14定義 1-9

式エディ タ 1-9, 5-5, 5-11, 6-8, 7-9, 14-7実行 JCL 15-1自動

ジ ョ インステージ 11-3ルッ クアップステージ 11-7

出力条件指定 5-15

ジ ョ インステージ外部テーブル 11-1結合方法 11-3定義 4-8, 11-1データのマッピング 11-4編集 11-3

仕様 5-11, 14-6仕様 , 作成 6-8, 6-12, 7-9, 7-13仕様 , 作成 7-12条件付きルッ クアップ 11-1, 11-7ジ ョブ

定義 1-10ジ ョブ , メ インフレームジ ョブを参照

サーバー 1-4パラレル 1-4メ インフレーム 1-4定義 1-10

ジ ョブ制御言語 15-1ジ ョブの検証 15-3ジ ョブパラ メータ

指定 7-4

定義 1-10ジ ョブパラ メ タ

指定 5-13定義 5-13

ジ ョブプロパティ , 編集 5-14ジ ョブプロパティ , 編集 9-2ジ ョブプロパティダイアログボッ ク

ス 5-14ジ ョブをアップロードする 15-7ジ ョブを保存ダイアログボッ クス 5-2処理ステージ 1-6新規ジ ョブ作成ダイアログボッ ク

ス 4-12

すすすす

ステージ 1-5DB2 ロード レディ フラ ッ ト ファ イ

ル 6-3, 6-13, 7-19FTP 6-14アグ リゲータ 12-1, 12-6後処理 1-6外部ソース 10-6外部ターゲッ ト 10-8外部ルーチン 14-5区切り文字付きフラ ッ ト ファ イ

ル 6-2, 6-4, 7-7構成 4-15固定幅フラ ッ ト ファ イル 4-15, 4-

19, 5-12, 6-2, 6-9コンプレッ クスフラ ッ ト ファ イ

ル 7-2, 7-4ジ ョ イン 11-1, 11-3処理 1-6ソース 1-5ソート 12-1, 12-2ターゲッ ト 1-5ト ランスフォーマ 4-20, 5-3, 6-8, 7-

12, 12-8, 14-6名前の変更 4-14パッシブ 1-5ビジネスルール 13-1

索引索引索引索引 -6 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 227: Datastage_8Mainframe Job Tutorial

マルチフォーマッ ト フラ ッ ト ファイル 7-3, 7-14

リ レーシ ョナル 9-1, 9-3, 9-7ルッ クアップ 11-1, 11-7

ステージの構成 4-15ステージ変数

一般的な目的 5-9指定 5-9仕様 6-12, 7-12

ス ト リーム リ ンク , ルッ クアップステージ 11-6

せせせせ

生成コードソースビューワー 4-10

生成コード前に自動保存 4-11生成コード

前に自動保存 4-11制約

条件 1-8制約条件

指定 5-4, 6-6, 6-11, 12-8専用 7-6定義 1-8

セマンティ ッ クチェッ ク 2-6, 5-5, 5-14

そそそそ

ソースステージ 1-5ソースデータのプレソート 7-2, 6-2ソースビューワー 4-10ソート ステージ

定義 4-8, 12-1データのマッピング 12-3編集 12-2

たたたた

ターゲッ ト ステージ 1-5ダイアログボッ クス

DataStage プロジェク ト管理 2-3

DataStage へ接続 2-2FTP ステージ 6-15JCL テンプレート 15-2オプシ ョ ン 4-9コード生成 4-23, 15-4固定幅フラ ッ ト ファ イルステー

ジ 4-16コンプレッ クスファ イルロードオ

プシ ョ ン 7-5, 7-8ジ ョブプロパティ 5-14ジ ョブを保存 5-2新規ジ ョブ作成 4-12テーブル定義 9-8テーブル定義を保存 6-5導出する列 9-3ト ランスフォーマステージ制約条

件 5-5ト ランスフォーマステージプロパ

ティ 5-8, 5-9マシンプロファ イル 15-5メ インフレームルーチン 10-2, 10-3リ モート システム 15-7列自動マッチ 4-22列メ タデータ編集 3-7列を選択 4-16

ちちちち

注釈ステージ定義 4-9

チュート リ アル開始 1-6サンプルデータ 3-5

つつつつ

ツール , デザイナ 4-5ツールチップス

デザイナ 4-5ツールバー

デザイナ 4-4ト ランスフォーマエディ タ 4-21

索引索引索引索引 -7

Page 228: Datastage_8Mainframe Job Tutorial

マネージャ 3-3ツールバーのボタン

ト ランスフォーマエディ タ 4-21デザイナ 4-4マネージャ 3-3

てててて

定義外部ルーチンステージ 14-5

定数CURRENT_DATE 7-13X 11-8

データサンプル 3-5, A-1集約 12-4ソート 12-2変換 4-20, 4-23, 5-11マージ 7-20, 11-2, 11-5マッピング 6-8, 11-4, 11-10, 12-3,

12-7, 13-4, 14-5データの終わり行 12-1データの変換 4-20, ??–4-23, 5-11データのマッピング

ジ ョ インステージ 11-4外部ルーチンステージ 14-5ソート ステージ 12-3

データをマージするジ ョ インステージ 11-2マルチフォーマッ ト フラ ッ ト ファ

イルステージを使う 7-20ルッ クアップステージ 11-5

テーブルCUST_ADDRESS 3-7, A-2CUSTOMER 3-8, 4-16, A-3DEALER A-5EXT_ORDERS 10-2, 10-3, 10-7MODEL A-5NEWREPS 9-7, 9-8ORDER_ITEMS 11-6ORDERS 10-8, A-5PRODUCTS 3-8, 7-4, 7-8, 7-11

REP_ORDER_ITEMS 11-6, 11-7, 12-2, 12-4

SALES A-6SALES_ORDERS 3-8, 11-3SALESREP 3-9, 9-3, 11-3, A-4SALESTERR 3-9, 9-3, 11-3, A-4STOCK A-6

テーブル定義インポート 3-1作成 9-7定義 1-12手作業で入力 6-4列の保存 6-5ロード 4-16ロードする 7-4

テーブル定義 ダイアログボッ クス 9-8テーブル定義のロード

固定幅フラ ッ ト ファ イルステージ 4-16

テーブル定義を保存 ダイアログボックス 6-5

テクニッ クルッ クアップ 11-7

デザイナ , DataStage デザイナを参照デフォルト

デザイナ 4-9プロジェク ト 2-4

デフォルト日付フォーマッ ト 2-6テンプレート , JCL 15-1

とととと

導出する列 9-3導出する列ダイアログボッ クス 9-3ト ランスフォーマエディ タ 4-20

ツールバー 4-21メ タデータ領域 4-21, 5-12リ ンク領域 4-21列自動マッチ 4-22

ト ランスフォーマステージ 7-12仕様の指定 6-8, 7-9, 7-13ステージ変数の指定 5-9, 7-12

索引索引索引索引 -8 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 229: Datastage_8Mainframe Job Tutorial

制約条件の指定 12-8制約条件を指定 5-4定義 4-9編集 4-20, 5-3, 6-8, 12-8, 14-6マッピングデータ 6-8列を伝播 7-19

ト ランスフォーマステージ制約条件ダイアログボッ クス 5-5

ト ランスフォーマステージプロパティ ダイアログボッ クス 5-8

ト ランスフォーマステージプロパティダイアログボッ クス 5-9

ト レースランタイム情報 15-4

なななな

内部結合 11-1

ねねねね

ネス ト , ジ ョ インステージ 11-4

はははは

配列正規化 7-5, 7-10定義 1-7フラ ッ ト化 7-8, 7-10

配列を正規化 7-5, 7-10配列をフラ ッ ト化 7-8, 7-10パッシブステージ 1-5ハッシュ

ジ ョ インステージ 11-4ハッシュテーブル 1-10ハッシュテクニッ ク

ルッ クアップステージ 11-7パラレルジ ョブ 1-4

ひひひひ

引数 , ルーチン 10-3ビジネスルールステージ

定義 4-7, 13-1編集 13-3マッピングデータ 13-4

日付デフォルト フォーマッ ト 2-6フォーマッ トの変換 7-7

日付の変換 7-7表記

ユーザーインタフェース 1-xiii表記法

文書 1-xii

ふふふふ

フ ィ ラーを生成オプシ ョ ン 4-17フラ ッ ト ファ イル

ステージタイプ 7-2ステージの種類 6-2定義 1-10

プレソート ソースデータ 12-1, 12-4プロジェク ト 1-3プロジェク ト ツ リー 3-3プロジェク トのデフォルト 2-4文書の表記法 1-xii

へへへへ

変更ステージ名 4-14リ ンク名 4-14

編集DB2 ロードレディ フラ ッ ト ファ イ

ルステージ 6-13, 7-19FTP ステージ 6-14アグ リゲータステージ 12-6外部ソースステージ 10-6外部ターゲッ ト ステージ 10-8区切り文字付きフラ ッ ト ファ イル

ステージ 6-4, 7-7固定幅フラ ッ ト ファ イルステー

ジ 4-15, 4-19, 6-9

索引索引索引索引 -9

Page 230: Datastage_8Mainframe Job Tutorial

コンプレッ クスフラ ッ ト ファ イルステージ 7-4, 7-8

ジ ョ インステージ 11-3ジ ョブプロパティ 5-14, 9-2ソート ステージ 12-2ト ランスフォーマステージ 4-20, 5-

3, 6-8, 7-12, 12-8, 14-6ビジネスルールステージ 13-3マルチフォーマッ ト フラ ッ ト ファ

イルステージ 7-16リ レーシ ョナルステージ 9-3, 9-7ルッ クアップステージ 11-7列 6-5, 7-5

変数ENDOFDATA 12-1, 12-8SQLCA.SQLCODE 13-3

ほほほほ

方法ジ ョ イン 11-3

保存期限 , 新規データセッ トの 6-10保存した HTML ファ イル 4-23

まままま

マーカー , リ ンク 4-19マシンプロファ イル 6-15, 15-5マシンプロファ イル ダイアログボッ

クス 15-5マッピング データ

ルッ クアップステージから 11-10マッピングデータ

アグ リゲータステージ 12-7ト ランスフォーマステージ 4-22, 6-

8ビジネスルールステージ 13-4

マネージャ , DataStage マネージャを参照

マルチフォーマッ ト フラ ッ ト ファ イルステージ

定義 4-8, 7-3

配列の処理 7-11編集 7-16レコード ID の指定 7-17レコードをロードする 7-16

めめめめ

メ インフレームジ ョブアップロード 15-7後処理ステージ 1-6検証 15-3コード生成 4-23コードの生成 15-3処理ステージ 1-6ステージの構成 4-15ステージ名の変更 4-14設計 4-1, 4-12ソースステージ 1-5ターゲッ ト ステージ 1-5定義 1-4リ ンク名の変更 4-14

メ インフレームジ ョブの設計 4-1, 4-12

メ インフレームルーチン ダイアログボッ クス 10-2, 10-3

メ タデータインポート 3-1領域 , ト ランスフォーマステー

ジ 4-21ルーチン 10-2, 14-2列定義 12-5列の編集 6-5, 7-5列を定義 5-12列を編集 3-7

ゆゆゆゆ

有効期限 , 新規データセッ トの 6-10ユーザーインタフェースの表記 1-xiii

索引索引索引索引 -10 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル

Page 231: Datastage_8Mainframe Job Tutorial

よよよよ

用語と コンセプ ト 1-7

らららら

ライブラ リ 15-6ランタイム情報 , ト レース 15-4ランタイムライブラ リ 1-12

りりりり

リ ジェク ト リ ンク , 定義 5-7リ ポジ ト リ 1-12, 3-1リ モート システムダイアログボッ ク

ス 15-7リ レーシ ョナルステージ

GROUP BY 句 9-1, 9-5HAVING 句 9-1ORDER BY 句 9-1, 9-5SQL SELECT 文 9-1, 9-6WHERE 句 9-1, 9-4, 9-9ソース 9-1ターゲッ ト 9-1定義 4-8導出する列を定義 9-3編集 9-3, 9-7

リ ンク移動 14-4参照 , ルッ クアップステージ 11-6実行順序 , 指定 5-8ス ト リーム , ルッ クアップステー

ジ 11-6名前の変更 4-14マーキング 4-19リ ジェク ト 5-7領域 , ト ランスフォーマステー

ジ 4-21列の挿入 5-12

リ ンクコレク タステージ定義 4-8

リ ンクの移動 14-4

るるるる

ルーチン外部 14-1外部ソース 10-2外部ターゲッ ト 10-7メ タデータ 10-2, 10-7呼び出し 10-6呼び出しインタフェースの定

義 10-1ルッ クアップ

一行 11-1カーソル 11-1条件 11-7条件付き 11-1

ルッ クアップステージ参照リ ンク 11-6ス ト リーム リ ンク 11-6定義 4-8, 11-1プレルッ クアップ条件 11-7編集 11-7ルッ クアップ条件 11-9ルッ クアップテクニッ ク 11-7

れれれれ

レコードMCUST_REC 7-14, 7-16MINV_REC 7-14, 7-17MORD_REC 7-14, 7-16ロード 7-16

レコード ID 7-17式

列仕様 12-5列

仕様 6-8, 7-9, 7-13選択 4-17定義 5-12, 12-5テーブル定義の保存 6-5手作業で入力 6-4伝播 7-19編集 3-7, 6-5, 7-5

索引索引索引索引 -11

Page 232: Datastage_8Mainframe Job Tutorial

ロード 4-16ロードする 7-4

式エディ タ 12-5列自動マッチ 4-22, 10-9, 11-10列自動マッチダイアログボッ クス 4-

22列仕様 12-5, 14-7列プッシュオプシ ョ ン 4-10, 4-18, 6-7,

7-18, 12-3列メ タデータ編集ダイアログボッ ク

ス 3-7列を選択ダイアログボッ クス 4-16列を伝播 7-19列をロードする

コンプレッ クスフラ ッ ト ファ イルステージの 7-4

マルチフォーマッ ト フラ ッ ト ファイルステージ 7-16

ろろろろ

ログオン設定 2-2

索引索引索引索引 -12 Ascential DataStage Enterprise MVS Edition ジ ョブチュート リ アル