1

行に対して実行する必要がある約 30 の異なる/特定の文字列操作の 1 つをルックアップ ステージで指定する複雑な変換があります。DataStage でこれを効率的に行う方法を知りたいですか?

要件は次のようなものです。

    If 
      col_a = 1 
    Then 
      col_b := some_string_function(col_c) 
    Else If 
      col_a = 2 
    Then 
      col_b := some_other_string_function(col_d) 
    Else If 
      col_a = 3 
    Then 
      col_b := yet_another_string_function(col_c & col_d) 
    Else If ...

... 等々。

これまでに調べたこと:

私の最初の衝動は、コード (フィールド名と文字列関数) を文字列/フィールドとしてルックアップ テーブルに含め、トランスフォーマー ステージ式でルックアップ後にそのコードを使用することでした。しかし、文字列を変換式内のコードとして評価する方法はないようです。

私が思いついた別の解決策は、Transformer ステージ内の多くのネストされた制御ステートメントにコードを配置することです。これは、特に DataStage が「CASE」/「SWITCH」のようなものと同等の制御ステートメントを提供していないように見えるため、非常に非効率的です。 "。それともそうですか?

制御ステートメント (の一部) を、さまざまなルックアップ/トランスフォーマー ステージにフィードするスイッチ ステージに置き換えると、並列で実行できるため、より効率的に見えますが、設計が面倒になります。

私はまだサーバー ルーチンに手を出していません。

4

2 に答える 2