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

データクオリティルールを使ってデータを検証し、無効なデータをフィルタリング

このシナリオのジョブでは次のコンポーネントを使います。
  • tDataQualityRulesコンポーネント: Talend Cloud Data Stewardshipデータクオリティルールを使ってデータを検証します。
  • tFilterRowコンポーネント: 実行不可能なデータをフィルタリングします。
ジョブでは次のデータクオリティルールが使用されます。
データクオリティルールの設定。

scholarship_programs.zipファイルをダウンロードして解凍できます。

ジョブを設定

手順

  1. [Palette] (パレット)から、tFixedFlowInputコンポーネント、tDataQualityRulesコンポーネント、tExtractJSONFieldsコンポーネント、tFilterRowコンポーネント、および3つのtLogRowコンポーネントをデザインワークスペースにドロップします。
  2. [Main] (メイン)リンクを使い、次のように接続させます。
    • tFixedFlowInputtDataQualityRules
    • tDataQualityRulesをいずれかのtLogRow
    • tExtractJSONFieldstFilterRow
  3. [Filter] (フィルター)リンクを使い、tFilterRowを別のtLogRowに接続させます。
  4. [Reject] (リジェクト)リンクを使い、次のように接続させます。
    • tDataQualityRulesからtExtractJSONFields
    • tFilterRowから最後のtLogRow
    tDataQualityRulesコンポーネントを使ってデータを検証する7コンポーネントのジョブ。
    情報メモヒント: 有効なデータのみ必要である場合は、[Main] (メイン)リンクを使ってtDataQualityRulesを1つのtLogRowコンポーネントだけに接続させます。tExtractJSONFieldsコンポーネントとtFilterRowコンポーネントは必要ありません。

tFixedFlowInputコンポーネントを設定

手順

  1. tFixedFlowInputをダブルクリックして、[Basic settings] (基本設定)ビューを開きます。
  2. [Schema] (スキーマ)[Built-In] (組み込み)を選択し、[Edit schema] (スキーマを編集)の横にある[...]をクリックします。
  3. カラムを追加する場合は、[Add] (追加)アイコンをクリックしてOKをクリックします。
    tFixedFlowInputコンポーネントのスキーマ。
  4. [Use Inline Content (delimited file)] (インラインコンテンツを使用: 区切りファイル)を選択します。
  5. データを入力します。scholarship_programs.zipのファイル内のデータセットのデータを使用できます。
    tFixedFlowInputコンポーネントの設定。

tDataQualityRulesコンポーネントを設定

始める前に

  • Talend Cloud Data Stewardshipデータクオリティルールを少なくとも1つ作成済みであること。
  • パーソナルアクセストークンを持っていること。パーソナルアクセストークンを生成する場合は、https://help.talend.com/r/ja-JP/Cloud/management-console-user-guide/cloud-access-tokenをご覧ください。
    情報メモヒント: この例では、Talend Cloud Data Stewardshipが使用されています。また、Talend Data Stewardship 8.0 R2022-07以降のハイブリッドバージョンとTalend Cloud Data InventoryのURLも入力できます。

このタスクについて

ルールを取得するためには、[Rules - View] (ルール - 表示)権限が必要です。詳細は、使用しているアプリの事前定義済みユーザーロールをご覧ください。

手順

  1. [Output schema] (出力スキーマ)として[Built-in] (組み込み)を選択します。
  2. 入力コンポーネントからスキーマを取得するためには、[Sync columns] (カラムを同期)ボタンをクリックします。
  3. [Application] (アプリケーション)ドロップダウンリストから、Data Stewardshipを選択します。
  4. Talend Cloud Data StewardshipへのURLを"https://tds.us.cloud.talend.com/rulerepository/api/v1"と入力します。
    このURLはお使いのリージョンによって異なります。詳細は、Talend CloudのリージョンとURLをご覧ください。
  5. パーソナルアクセストークンを入力する場合は、[...]をクリックします。
  6. データクオリティルールを取得する場合は、[Refresh] (更新)をクリックします。
    [DQ rule library timestamp] (DQルールライブラリーのタイプスタンプ)フィールドの横にある[Refresh] (更新)ボタン。
    Talend Cloud Data Stewardshipでデータクオリティルールをアップデートする場合は、[Refresh] (更新)をクリックして最新バージョンを取得します。
  7. [Configure DQ rules] (DQルールを設定)の横にある[...]をクリックします。
  8. ルールを選択し、ルール変数を入力カラムに関連付けます。
    変数を関連付ける[Configuration] (設定)ウィンドウ。
    Talend Studioのデータ型はTalend Cloud Data Stewardshipのデータ型の一部に関連付けることができます。プロパティでデータ型を関連付けをご覧ください。
    利用できるルールや入力カラムがない場合は、次の点をご確認ください。
    • [DQ rule library timestamp] (DQルールライブラリーのタイムスタンプ)でデータクオリティルールが取得されたこと
    • 入力スキーマが正しいこと
  9. 設定を検証するため、[OK]をクリックします。

tExtractJSONFieldsコンポーネントを設定

このタスクについて

tExtractJSONFieldsコンポーネントを使うとさらに読みやすいデータを取得できるので、tFilterRowコンポーネントを使って簡単にフィルタリングできるようになります。

手順

  1. [Property Type] (プロパティタイプ)[Schema] (スキーマ)として[Built-In] (組み込み)を選択します。
  2. [Edit schema] (スキーマを編集)の横にある[...]をクリックします。
    INVALID_STATUSカラムが入力スキーマに追加されました。カラムの名前は出力スキーマで変更できます。
    入力スキーマと出力スキーマの例。
  3. JsonPathAPI version 2.1.0を選択します。
  4. [Loop Json query] (Jsonクエリーをループ)フィールドに*というワイルドカードを入力すれば、エレメントがすべて選択されます。
  5. [JSON Field] (JSONフィールド)ドロップダウンリストでINVALID_STATUSを選択します。
  6. [Mapping] (マッピング)テーブルでJSONクエリーを定義します。
    スキーマにあるカラムが[Mapping] (マッピング)テーブルの[Column] (カラム)フィールドにリスト表示されます。
  7. [Mapping] (マッピング)テーブルの[Json query] (Jsonクエリー)カラムで、StatusexecutionResults[0].statusと入力します。
    executionResults[0].statusstatusへのパスを、[0]は最初のルールの実行詳細を表します。2番目のルールの実行詳細が必要である場合は[1]、3番目のルールの場合は[2]というようになります。これによって、tFilterRowコンポーネントを使ったデータのフィルタリングが容易になります。

    INVALID_STATUSは、[{"executionResults":[{"ruleName":"ScholarshipProgram_Else","inputColumn":["EffectiveOn","Code","Program"],"status":"Invalid"}]}]です。

    tExtractJSONFieldsはこれをInvalidに変換します。

    tExtractJSONFieldsコンポーネントの設定。

tFilterRowコンポーネントを設定

このタスクについて

このシナリオでは、tFilterRowコンポーネントによって次の2つのカテゴリーが作成されます。
  • NE: データではルールを実行できません。
  • Invalid: データは条件を満たすものの、検証式は満たしていません。

手順

  1. [Conditions] (条件)で、[Add] (追加)アイコンをクリックします。
  2. InputColumnで、Statusを選択します。
  3. [Value] (値)で、"NE"を選択します。
    情報メモ要確認: 複数のカラムを追加する場合は、テーブルの上部で論理演算子(AndまたはOr)を定義します。デフォルトではAndが選択されています。

tLogRowコンポーネントを設定

手順

  1. tLogRowコンポーネントをダブルクリックして、[Basic settings] (基本設定)ビューを開きます。
  2. [Schema] (スキーマ)[Built-In] (組み込み)を選択し、[Sync columns] (カラムを同期)をクリックします。
  3. [Mode] (モード)エリアで、[Table (print values in cells of a table)] (テーブル(テーブルのセルの出力値))を選択します。
    tLogRowコンポーネントの設定。

ジョブを保存して実行

手順

ジョブを保存し、F6を押して実行します。

タスクの結果

[Main] (メイン)リンクのtLogRowでは、次のような学生が返されます。
  • スターテスコードは2632で、日付は2021-09-01である

    または

  • ステータスコードは2632ではなく、プログラムは10ABまたは10ACで終わる
.-------+----+-------+-----------+-----------.
|                    main                    |
|=------+----+-------+-----------+----------=|
|ID     |Code|Program|EffectiveOn|Nationality|
|=------+----+-------+-----------+----------=|
|1002145|2632|2310AB |2021-09-01 |Canada     |
|1002146|1132|3610AC |2021-10-01 |US         |
|1002149|2632|3711AB |2021-09-01 |US         |
|1002150|2632|2310AB |2021-09-01 |US         |
|1002151|2632|3711AB |2021-09-01 |US         |
|1002152|2632|2310AB |2021-09-01 |US         |
|1002153|2632|3711AB |2021-09-01 |US         |
|1002155|2675|3610AC |2021-10-01 |US         |
|1002156|2675|2310AB |2021-10-01 |Canada     |
|1002158|2632|2310AB |2021-09-01 |US         |
|1002159|1132|2310AB |2021-10-01 |US         |
|1002162|2675|2310AB |2021-10-01 |US         |
|1002163|2632|3610AC |2021-09-01 |US         |
'-------+----+-------+-----------+-----------'
無効なデータはフィルタリングされて2つのテーブルに分けられます。
.-------+----+-------+-----------+-----------+------.
|                        NE                         |
|=------+----+-------+-----------+-----------+-----=|
|ID     |Code|Program|EffectiveOn|Nationality|Status|
|=------+----+-------+-----------+-----------+-----=|
|1002161|abcd|3611AC |2021-09-01 |US         |NE    |
'-------+----+-------+-----------+-----------+------'

NEというステータスは、データでルールを実行できないことを意味します。このシナリオではステータスコードはabcdですが、ルール条件はis equal to 2632です。

もう1つの無効なデータは次のいずれかを表します。
  • スターテスコードは2632だが、日付は2021-09-01である

    または

  • ステータスコードは2632ではなく、プログラムは10ABまたは10ACで終わらない
    .-------+----+-------+-----------+-----------+-------+----------------------------------.
    |                                     OtherInvalid                                      |
    |=------+----+-------+-----------+-----------+-------+---------------------------------=|
    |ID     |Code|Program|EffectiveOn|Nationality|Status |errorMessage                      |
    |=------+----+-------+-----------+-----------+-------+---------------------------------=|
    |1002147|2632|3610AC |2022-01-01 |Canada     |Invalid|Status.compareTo("NE") == 0 failed|
    |1002148|2632|2310AB |2022-01-01 |Canada     |Invalid|Status.compareTo("NE") == 0 failed|
    |1002154|2632|3610AC |2022-01-01 |Canada     |Invalid|Status.compareTo("NE") == 0 failed|
    |1002157|2632|3610AC |2022-01-01 |Canada     |Invalid|Status.compareTo("NE") == 0 failed|
    |1002160|2632|2310AB |2022-01-01 |Canada     |Invalid|Status.compareTo("NE") == 0 failed|
    |1002164|2675|3611AC |2021-09-01 |US         |Invalid|Status.compareTo("NE") == 0 failed|
    '-------+----+-------+-----------+-----------+-------+----------------------------------'
ジョブを保存する時は、ルール定義が含まれているJARファイルが以下で作成されます。
studio-path\configuration\.m2\repository\org\talend\libraries\rules-number

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

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