メイン コンテンツをスキップする 補完的コンテンツへスキップ

参照検証ルールを使用

検証ルールを設定したら、そのルールをジョブデザインに適用できます。ここでは例として、データベースを新規データでアップデートする場合に、参照の整合性をチェックする検証ルールを適用します。ただし、新規データをアップロードする前に、それらのデータがデータベース内の既存データと一致するかどうかを確認する必要があります。

このシナリオは、Talend Studioユーザーガイドの[Referential rule] (参照ルール)セクションで作成された参照チェック検証ルールに基づいています。

参照検証ルール用にジョブ環境を設定

Procedure

  1. [Palette] (パレット)からデザインワークスペースに、次のコンポーネントを配置します: データをアップロードするためのデータベース入力コンポーネントとデータベース出力コンポーネント(この例ではtMysqlInputtMysqlOutput)、リジェクトされたデータをコンソールに表示するためのtLogRowコンポーネント、処理された行数をコンソールに表示するためのtJavaコンポーネント。
  2. [Row] (行) > [Main] (メイン)接続を使って、入力データベースコンポーネントと出力データベースコンポーネントを接続し、[Trigger] (トリガー) > [OnSubjobOk]接続を使って、tMysqlInputコンポーネントとtJavaコンポーネントを接続します。
    情報メモNote:

    tMysqlOutputコンポーネントに検証ルールを適用する場合にのみ、tMysqlOutputコンポーネントとtLogRowコンポーネントの間にリジェクトリンクを作成できます。

    Designerでのジョブのスクリーンショット。

参照検証ルールを使うためにコンポーネントを設定

Procedure

  1. tMysqlInputコンポーネントをダブルクリックし、[Basic settings] (基本設定)を開きます。
    コンポーネントの基本設定のスクリーンショット。
  2. [Property type] (プロパティタイプ)として[Repository] (リポジトリー)を選択し、フィールドの横にある[...]ボタンをクリックして、確認するメタデータに対応する接続のプロパティを取得します。
  3. [Schema] (スキーマ)ドロップダウンリストから[Repository] (リポジトリー)を選択し、フィールドの横にある[...]ボタンをクリックして、データベーステーブルに対応するスキーマを取得します。
  4. [Table] (テーブル)フィールドの横にある[...]ボタンをクリックし、確認するテーブルを選択します。
  5. [Guess Query] (クエリーを推測)をクリックし、テーブルスキーマに対応するクエリーを自動的に取得します。
  6. tMysqlOutputコンポーネントをダブルクリックし、[Basic settings] (基本設定)を開きます。
    コンポーネントの基本設定のスクリーンショット。
  7. [Property type] (プロパティタイプ)として[Repository] (リポジトリー)を選択し、フィールドの横にある[...]ボタンをクリックして、新規データをロードするデータベーステーブルに対応する接続のプロパティを取得します。
  8. [Table] (テーブル)フィールドの横にある[...]ボタンをクリックし、データをロードするテーブルを選択します。
  9. [Action on table] (テーブルでのアクション)リストで、[Default] (デフォルト)を選択し、[Action on data] (データでのアクション)リストで、ジョブで適用する検証ルール内に定義されている操作を選択します。
    ここでは、使用する参照検証ルールとして[On insert] (挿入時)[On update] (更新時)を選択したため、[Update or insert] (アップデートまたは挿入)を選択してこのルールをトリガーします。
  10. 入力コンポーネントと出力コンポーネントのスキーマが自動的に同期しなかった場合、[Sync columns] (カラムを同期)をクリックすると、入力フローのスキーマが自動的に取得されます。

検証ルールを適用してジョブ実行結果を表示

Procedure

  1. tMysqlOutput[Component] (コンポーネント)ビューで[Validation Rules] (検証ルール)タブをクリックします。
    コンポーネント検証ルールのスクリーンショット。
  2. [Use an existing validation rule] (既存の検証ルールを使用)チェックボックスをオンにし、コンポーネントに検証ルールを適用します。
  3. [Validation Rule Type] (検証ルールタイプ)リストで[Repository] (リポジトリー)を選択し、[...]ボタンをクリックして、[Repository Content] (リポジトリーコンテンツ)ウィンドウで検証ルールを選択します。
  4. tMysqlOutputコンポーネントを右クリックし、メニューで[Row] (行) > [Rejects] (リジェクト)の順に選択し、このコンポーネントをtLogRowコンポーネントにドラッグして、この2つのコンポーネントの間にリジェクトリンクを作成します。

    この検証ルールで[Reject link] (リジェクトリンク)オプションを有効にしている場合、リジェクトされたデータを取得して、リジェクトフローに流すことができます。

  5. tJavaコンポーネントをダブルクリックし、[Basic settings] (基本設定)を開きます。
    コンポーネントの基本設定のスクリーンショット。
  6. [Code] (コード)フィールドには、アップデート行数、挿入行数、リジェクト行数を表示するコードを入力します。
    System.out.println("Updates: "+((Integer)globalMap.get("tMysqlOutput_1_NB_LINE_UPDATED"))+"\nInserts:
    "+((Integer)globalMap.get("tMysqlOutput_1_NB_LINE_INSERTED"))+"\nRejects:
    "+((Integer)globalMap.get("tLogRow_1_NB_LINE")));
  7. ジョブを保存し、F6を押して実行します。
    ジョブの実行に成功した後のコンソールのスクリーンショット。

Results

データベーステーブル上で有効なデータが挿入またはアップデートされ、検証ルールによってリジェクトされた行、およびジョブで実行されたアップデート回数、挿入回数、リジェクト回数がコンソールに表示されます。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。