2016-08-18 16 views
1

それぞれが同じ構造と異なる接続を持つ多数のデータベース(+100)があります。 データウェアハウスを作成するために、さまざまなデータベースで変換を実行するためにケトルを使用しています。ケトルの複数のデータベース接続で同じ変換を実行

異なる接続で同じ変換の実行を自動化するにはどうすればよいですか?

私はすでにこれを証明していますが、Pass DB Connection parameters to a Kettle a.k.a PDI table Input step dynamically from Excelですが、それはcsvの行のみを受け入れます。

ループを作成するか、スクリプトを作成する必要がありますか?

ご協力いただければ幸いです。 (英語に申し訳ありません)

+0

"しかし、それはcsvの行を受け入れるだけです" - それはどういう意味ですか?これは+100行(各行は特定のDBに接続の詳細を保持します)することができます。変数に接続の詳細を設定し、その後にサブトランスフォーメーションを実行します。ディレクトリ$ KETTLE_HOMEに例があります。/ substitutionを使う方法の例です – simar

答えて

2

ループで実行できます。 しかし、心配しないで、ペンタホでそれを作るのは難しいことではありません。

まず第一に、あなたはあなたのループを作成するためにJOBを使用します。

START - >Transform_that_holds_parameters - >Transform_to_run_in_a_loop

あなたが想像できるように、あなたの変換が実行されます各DBに等しくこのフローの最後のものがあります。しかし、そのジョブエントリに2つの高度なフラグを設定する必要があります。

  • すべての入力行に対して実行しますか?
  • 前の結果をパラメータにコピーしますか?

その後、我々は次のような構造を持つ私たちのTransform_that_holds_parametersを構築する必要があります:

Some_sort_of_input - > copy_rows_to_result

ここでは、それがExcelファイルも、どこかからのすべての接続パラメータをつかむ必要がありますまたは別のデータベースのテーブルしかし、いったんこのデータをグラデーションしたら、変換を実行するデータベースごとに1行を持っていることを確認してください。

「行を結果にコピーする」ステップに接続すると、このステップでデータがJOBに返されます。覚えていれば、次の変換は「すべての入力行に対して実行」および「前の結果をパラメータにコピー'

ここで、変換の最後のステップに進む列名は何かを覚えておいてください。次のステップでそれらを必要とします。

は戻って私たちの仕事に取得し、Transform_to_run_in_a_loop、オープンパラメータのプロパティに移動し、私たちは結果にコピーされた列の列「パラメータ」と「ストリーム列名」を入力します。

変換の中で、同じパラメータを同じ名前で設定する必要があります。接続設定でこれらのパラメータを使用します。

完了すると、すべてのパラメータを設定した最初の変換と、それぞれのデータベース設定で実行している2番目の変換が行われます。

関連する問題