行に対して実行する必要がある約 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」のようなものと同等の制御ステートメントを提供していないように見えるため、非常に非効率的です。 "。それともそうですか?
制御ステートメント (の一部) を、さまざまなルックアップ/トランスフォーマー ステージにフィードするスイッチ ステージに置き換えると、並列で実行できるため、より効率的に見えますが、設計が面倒になります。
私はまだサーバー ルーチンに手を出していません。