IP_ADDRESSとUSER_NAMEの 2 つのフィールドを含むソース ファイルがあります。DATASTAGEでデータウェアハウスにロードする前に、IPアドレスが正しいかどうかを確認したい。どうすればいいですか?
2 に答える
はい、使用している Datastage のバージョンに応じて、トランスフォーマーまたはトランスフォーマーとフィルターを使用してそれを行うことができます。PX を使用している場合は、トランスフォーマー ステージで検証ロジックをエンコードするだけで、出力リンクで、検証ロジックを通過しなかった場合に行の通過を許可しないフィルターを設定します。
私は Stack Overflow を閲覧していて、あなたの質問に対する解決策があると思います。ファイルからすべての IP_ADDRESS を取得し、それらを BASIC トランスフォーマーに送信するジョブを作成する場合 (DataStage で BASIC トランスフォーマーを検索します。通常はパレットにあるトランスフォーマーではありません)。そこから、ステージ変数を 'SetUserStatus() として設定し、列名をピーク ステージに書き出します (出力はまったく必要ありません。SetUserStatus は重要な部分です)。これにより、コマンド出力 (IP アドレスのリスト) をシーケンスに渡すことができるようになります。シーケンスから、作成したばかりのジョブ (BASIC Transformer ジョブ) から開始し、それをユーザー変数アクティビティにリンクします。User Variables Activity ステージで、名前を「IP アドレス」などに設定し、式を IP_ADDRESS.$UserStatus として設定します。その後、ループを使用してリストになった出力を取得し、個々の IP アドレスを Ping コマンドで実行ステージに送信して、有効な IP アドレスが返されるかどうかを確認できます。有効な IP が返された場合は、USER_NAME と IP_ADDRESS を書き込むジョブを使用して、IP_ADDRESS = 有効な IP_ADDRESS である「Select」ステートメントを実行します。有効でないものについては、それらを別のパスに送信し、どこかに「.txt」ファイルに書き出すようにして、どれが有効でないかを知ることができます。そこにはさらにいくつかの手順が必要になると思いますが、それが要点です。IP_ADDRESS = 有効な IP_ADDRESS である Select' ステートメント。有効でないものについては、それらを別のパスに送信し、どこかに「.txt」ファイルに書き出すようにして、どれが有効でないかを知ることができます。そこにはさらにいくつかの手順が必要になると思いますが、それが要点です。IP_ADDRESS = 有効な IP_ADDRESS である Select' ステートメント。有効でないものについては、それらを別のパスに送信し、どこかに「.txt」ファイルに書き出すようにして、どれが有効でないかを知ることができます。そこにはさらにいくつかの手順が必要になると思いますが、それが要点です。
あなたの問題への私の簡単な突き刺しが役立つことを願っています.