0 / 0
資料の 英語版 に戻る

DataStageのソートステージ

最終更新: 2025年3月12日
DataStage の Sort ステージ

Sort ステージは、パラレル・ジョブ・ステージ・エディターの「入力」 ページ パーティショニング セクションで提供されるよりもさらに複雑なソート操作を実行するために使用されます。

Sort ステージは、処理ステージです。 ジョブをわかりやすくする目的で、より明示的で単純なソート処理を挿入する場合にも、Sort ステージを使用できます。 Sort ステージにはソートするデータを含む 1 つの入力リンク、およびソート済みデータを含む 1 つの出力リンクがあります。

ソートを実行する基準としてソート・キーを指定します。 キーとはデータをソートする列です。例えば、名前列がある場合、その列をソート・キーとして指定して、名前のアルファベット順リストを作成できます。 ステージでキーとして指定する最初の列は主キーです。ただし、追加の 2 次キーを指定できます。 複数の行の 1 次キー列の値が同じ場合、 IBM® DataStage® は 2 次列を使用してこれらの行をソートします。

以下の図に示すように、順次モードでソートして、データ・セット全体またはパラレル・モードをソートして、パーティション内のデータをソートすることができます。

データ・セット全体を順次にソートするために Sort ステージが使用され、パーティション内の並列データをソートする Sort ステージが表示されます。

ソートを実行する理由はいろいろあります。 例えば、郵便番号列でデータ・セットをソートし、次に郵便番号内の姓でソートを行いたいというような状況もあります。 データ・セットをソートした後は、隣接するレコードを比較しその重複を取り除くことで、データ・セットをフィルタリングできます。

ただし、ソート済みデータ・セットを処理する場合は注意が必要です。再パーティション化を始めとする各種処理で、データのソート順が破壊されてしまう可能性があります。 例えば、4 つの処理ノードを持つシステムでデータ・セットをソートし、その結果を Data Set ステージに格納するとします。 このとき、データ・セットは 4 つのパーティションを持つことになります。 次に、そのデータ・セットを、ノード制約のために異なる数のノードで実行されるステージへの入力として使用するとします。 IBM DataStage は、データ・セットを自動的に再パーティション化して、データ・セットをシステム内のすべてのノードに分散させます。ただし、データのソート順が破棄される可能性があるという指示がない場合に限ります。 パーティション方式に「同一」を指定すると、これを回避できます。 ステージが入力データ・セットを読み取る際には再パーティション化は一切実行されません。 元のパーティションが維持されます。

順次に動作するステージを使用してソート済みデータ・セットを処理する場合も注意が必要です。 Sequential File ステージは、単一処理ノード上で実行され、そこでアクションを実行します。 Sequential File ステージでは、データ・セット内に複数のパーティションのあるデータが収集され、入力データ・セットのソート順が破壊される場合があります。 これは、以下のようにコレクション方式を指定することで切り抜けることができます。

  • データがソートされる前に、範囲パーティション化される場合、コレクション方式「順次」を使用してデータ・セットのソート順を維持します。 このコレクション方式を使用した場合、データ・セットの 1 つ目のパーティションのすべてのレコードが最初に読み取られ、次に 2 つ目のパーティションのすべてのレコードが読み取られる、という順に読み取りが行われます。
  • データがソートされる前に、ハッシュ・パーティション化される場合、コレクション方式「ソート・マージ」を使用して、 データのパーティション化で使用されたキーと同じコレクション・キーを 指定する必要があります。

デフォルトでは、ステージはネイティブの IBM DataStage ソーターを使用してソートしますが、UNIX の sort コマンドを使用するように指定することもできます。

ステージ・エディターには、3 つのページがあります。

  • ステージ。 常に表示され、ステージの全般的な情報を指定するために使用します。
  • 「入力」タブ. ここでは、ソートされるデータ・セットに関する詳細を指定します。
  • 「出力」タブ: ここで、ステージから出力されるソート済みデータに関する詳細を指定します。

DataStage Sort ステージの操作方法の例については、以下のビデオをご覧ください。

このビデオは、この資料の概念とタスクを学習するための視覚的な方法を提供します。

「入力」タブ

「列」 セクションは、受信データの列定義を指定します。 「拡張」セクションでは、入力リンクのデフォルトのバッファリング設定を変更することができます。

「出力」タブ

Sort ステージに設定できる出力リンクは 1 つだけです。

「列」セクションで「編集」をクリックすると表示される「列入力からのマップ」列セクションでは、Sort ステージと出力列に入力される列の間の関係を指定できます。 ここでは、出力列の取得方法、すなわち、どの入力列を出力列にマップするか、またはそれらの生成方法を指定することができます。 「拡張」セクションでは、出力リンクのデフォルトのバッファリング設定を変更することができます。