1

添付の写真のように。テーブル入力からのカウント値が <> 0 の場合にのみ、SQL 実行ステップに渡す必要があります。それ以外の場合は、ダミーに移動し、プロセスを実行しません。 SQLステップでクエリを記述し、同様にダミーを初期化します.(フィルタ条件は整数であるため、テーブル入力カウント値)画像

4

1 に答える 1

1

問題が発生した場合に注意すべきいくつかの要因があります。

  1. PDI のすべてのプロセスは、並行して初期化されます。したがって、変換にステップ(テーブル入力、テーブル出力など)がある場合。ktr を実行すると、これらのすべてのステップがまとめて初期化されます。

  2. Pentaho Kettle の「SQL スクリプトの実行」ステップは自己トリガーです。変換の初期化フェーズで実行されます。このウィキをチェックしてください。

解決:

以下の画像を確認してください。

ここに画像の説明を入力

1. SQL ステップで「行ごとに実行」を有効にします。

アイデアは、ktr の初期化フェーズ ( SQL スクリプトの実行) 中にクエリの実行を停止することです。そのため、「行ごとに実行」オプションをオンにすることで、初期化自体の間ではなく、行が受信されると SQL ステップが実行されるようになります。

以下の画像を確認してください。

ここに画像の説明を入力

2.「ABORT」ステップの使用 (単なる提案)

「ダミーステップ」の使用に問題はありませんが、「フィルターステップ」が偽の状態を返すと、実行中の現在の変換が確実に中止されるようにする「中止」ステップを使用しているように感じます。

3.上記の 2 つのソリューションが気に入らない場合は、「簡易評価」ステップを使用してジョブ レベルでソリューションを作成する以外に方法はありません。これで問題が解決します。

ここにサンプルコードを添付しました。

それが役に立てば幸い :)

于 2015-01-17T19:31:01.837 に答える