DB2 データベースの 2 つのテーブルからデータを抽出し、一時テーブルにロードできるインフォマティカ ワークフローを作成しています。2 つのソース テーブル名がアカウント (親) とアクティビティ (子) であるとします。それらは 1:M の関係にあります。アカウントが多くのアクティビティを持つことができることを意味します (Account.PK = Activities.FK)。アクティビティ テーブルには 2 つの列があります。最初の 'Type' の値は、'Paid'、'Will-Pay'、または 'Not-Paid' のいずれかです。2 番目の列は 'Created_Date' 日時データ型で、新しいアクティビティ レコードを作成するたびに、日付と時刻になります。このフィールドでスタンプを取得します。ここで、一時テーブルにデータをロードする条件は、「アカウント レコードの場合、今日の有料アクティビティ (タイプ = 有料) のアクティビティ テーブルを最初にチェックします。複数の有料アクティビティが見つかった場合、次に、それらから最新に作成されたもの (Created_Date 列) を選択します。アカウントの有料アクティビティ レコードがない場合は、作成された最新の 'Will-Pay' アクティビティが選択されます。」つまり、アカウントの今日 (Sysdate) の最新の有料アクティビティが選択され、存在しない場合はそれのみが選択されます。今日の最新の Will-pay アクティビティを選択します. Informatica ワークフローでこのロジックを実装する方法と、どの変換をどのように使用する必要があるかを理解するのを手伝ってください? どうもありがとう. 親切に助けて. このロジックを Informatica ワークフローに実装する方法と、どの変換をどのように使用する必要があるかを理解するのを手伝ってください。どうもありがとう。親切に助けてください。このロジックを Informatica ワークフローに実装する方法と、どの変換をどのように使用する必要があるかを理解するのを手伝ってください。どうもありがとう。親切に助けてください。
1894 次
1 に答える
0
SQL でそれを行う最善の方法は、ETL でビジネス ロジックを実現するのは良くありません。しかし、あなたが主張するなら、それは多くの方法で作成することができます. 例として:
SQL オーバーライドあり オーバーライドされた SQL (および列も) を使用して、Activities テーブルの 3 つのルックアップ変換と、条件の 1 つの式変換を作成できます。
- 複数の「有料」アクティビティ アカウントを検索するためのルックアップ
- アカウントごとの最後の「有料」アクティビティを検索するためのルックアップ
- アカウントごとの最後の「支払い予定」アクティビティを検索するためのルックアップ
- 1 ~ 3 個のルックアップ結果に基づいて正しいアクティビティ キーを返す式
SQL オーバーライドを使用しない場合は、フィルター、アグリゲーター、ジョイナー変換を使用して同様のロジックを再作成する必要があります。
于 2012-03-11T17:54:35.553 に答える