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

データクオリティルールとダイナミックスキーマを使ってデータを検証

このシナリオのジョブではtDataQualityRulesコンポーネントを使い、Talend Cloud Data Stewardshipデータクオリティルールによってデータを検証します。

このジョブは、詳細モードでデータクオリティルールを作成します。
if (purchase_price >= 2999) {discount_percentage == 0.2}
elseif (purchase_price >= 1999 && purchase_price < 2999) {discount_percentage == 0.15}
elseif (purchase_price >= 999 && purchase_price < 1999) {discount_percentage == 0.10}
elseif (purchase_price >= 599 && purchase_price < 999) {discount_percentage == 0.07}
else {discount_percentage == 0}
情報メモ重要: 標準コンポーネントではダイナミックスキーマを使用できます。ただし、Apache Sparkコンポーネントではサポートされていません。

ジョブを設定

手順

  1. tFileInputDelimitedコンポーネント、tDataQualityRulesコンポーネント、および2つのtLogRowコンポーネントを[Palette] (パレット)からデザインワークスペースにドロップします。
  2. [Main] (メイン)リンクを使い、次のように接続させます。
    • tFileInputDelimitedからtDataQualityRules
    • tDataQualityRulesをいずれかのtLogRow
  3. [Reject] (リジェクト)リンクを使い、tDataQualityRulesを最後のtLogRowに接続させます。
    tFileInputDelimitedコンポーネント、tDataQualityRulesコンポーネント、2つのtLogRowコンポーネントを使ったジョブ。
    情報メモヒント: 有効なデータのみ必要である場合は、[Main] (メイン)リンクを使ってtDataQualityRulesを1つのtLogRowコンポーネントだけに接続させます。2番目のtLogRowコンポーネントは、無効なデータの詳細を示すためのものです。

tFileInputDelimitedコンポーネントを設定

手順

  1. tFileInputDelimitedをダブルクリックして[Basic settings] (基本設定)ビューを開きます。
  2. [File Name/Stream] (ファイル名/ストリーム)フィールドに、ファイルパスを二重引用符で囲んで入力します。
  3. この例では、入力データは次のようになります。
    id;price1;discount1;price2;discount2
    1;100;0.2;2000;0.1
    2;1000;0.05;4000;0.2
    3;1999;0.15;4200;0.2
    4;5000;0.2;3000;0.2
    5;300;0;30;0
    6;6000;0.2;3000;0.1
    7;price;;;
  4. [Schema] (スキーマ)[Built-In] (組み込み)を選択し、[Edit schema] (スキーマを編集)の横にある[...]をクリックします。
  5. カラムを追加する場合は、[Add] (追加)アイコンをクリックしてOKをクリックします。
    tFileInputDelimitedコンポーネントのスキーマ。

    ダイナミックスキーマは、スキーマで定義されていないカラムを取得します。そのため、スキーマでdiscount1カラム、price2カラム、discount2カラムを定義する必要はありません。

    情報メモ重要: 標準コンポーネントではダイナミックスキーマを使用できます。ただし、Apache Sparkコンポーネントではサポートされていません。

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/")を入力します。
    このURLはお使いのリージョンによって異なります。詳細は、Talend CloudのリージョンとURLをご覧ください。
  5. パーソナルアクセストークンを入力する場合は、[...]をクリックします。
  6. データクオリティルールを取得する場合は、[Refresh] (更新)をクリックします。
    [DQ rule library timestamp] (DQルールライブラリーのタイプスタンプ)フィールドの横にある[Refresh] (更新)ボタン。
    Talend Cloud Data Stewardshipでデータクオリティルールをアップデートする場合は、[Refresh] (更新)をクリックして最新バージョンを取得します。
  7. [Configure DQ rules] (DQルールを設定)の横にある[...]をクリックします。
  8. [DQ rule] (DQルール)でルールを選択し、ルール変数を入力カラムに関連付けます。
    変数を関連付ける[Configuration] (設定)ウィンドウ。
    Talend Studioのデータ型はTalend Cloud Data Stewardshipのデータ型の一部に関連付けることができます。プロパティでデータ型を関連付けをご覧ください。
    利用できるルールや入力カラムがない場合は、次の点をご確認ください。
    • [DQ rule library timestamp] (DQルールライブラリーのタイムスタンプ)でデータクオリティルールが取得されたこと
    • 入力スキーマが正しいこと
    情報メモ制約事項: ルール変数を1つのカラムにのみ関連付けることができます。[Dynamic column selection] (ダイナミックカラムの選択)にカラムを1つだけ入力してください。
  9. ウィザードの右下にある[Add] (追加)アイコンボタンをクリックし、さらに変数を関連付けます。
  10. [DQ rule] (DQルール)で同じルールを選択し、ルール変数を入力カラムに関連付けます。
  11. [Dynamic column selection] (ダイナミックカラムの選択)に、カラム名を二重引用符で囲んで入力します。
    変数を関連付ける[Configuration] (設定)ウィンドウ。
    Talend Studioのデータ型はTalend Cloud Data Stewardshipのデータ型の一部に関連付けることができます。プロパティでデータ型を関連付けをご覧ください。
    利用できるルールや入力カラムがない場合は、次の点をご確認ください。
    • [DQ rule library timestamp] (DQルールライブラリーのタイムスタンプ)でデータクオリティルールが取得されたこと
    • 入力スキーマが正しいこと
    情報メモ制約事項: ルール変数を1つのカラムにのみ関連付けることができます。[Dynamic column selection] (ダイナミックカラムの選択)にカラムを1つだけ入力してください。
  12. 設定を検証するため、[OK]をクリックします。

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は、割引がルールに対応する価格を返します。この例では、price1price2で割引が正しいことを意味します。
.--+------+-----------------.
|         tLogRow_1         |
|=-+------+----------------=|
|id|price1|dynamic_column   |
|=-+------+----------------=|
|3 |1999  |0.15 - 4200 - 0.2|
|4 |5000  |0.2 - 3000 - 0.2 |
|5 |300   |0 - 30 - 0       |
'--+------+-----------------'
無効なデータもフィルタリングされます。
.--+------+-----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
|                                                                                                                                       tLogRow_2                                                                                                                                       |
|=-+------+-----------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------=|
|id|price1|dynamic_column   |INVALID_STATUS                                                                                                                                                                                                                                             |
|=-+------+-----------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------=|
|1 |100   |0.2 - 2000 - 0.1 |[{"executionResults":[{"ruleName":"Discount percentage","inputColumn":["price1","dynamic_column.discount1"],"status":"Invalid"},{"ruleName":"Discount percentage","inputColumn":["dynamic_column.price2","dynamic_column.discount2"],"status":"Invalid"}]}]|
|2 |1000  |0.05 - 4000 - 0.2|[{"executionResults":[{"ruleName":"Discount percentage","inputColumn":["price1","dynamic_column.discount1"],"status":"Invalid"},{"ruleName":"Discount percentage","inputColumn":["dynamic_column.price2","dynamic_column.discount2"],"status":"Valid"}]}]  |
|6 |6000  |0.2 - 3000 - 0.1 |[{"executionResults":[{"ruleName":"Discount percentage","inputColumn":["price1","dynamic_column.discount1"],"status":"Valid"},{"ruleName":"Discount percentage","inputColumn":["dynamic_column.price2","dynamic_column.discount2"],"status":"Invalid"}]}]  |
|7 |price | -  -            |[{"executionResults":[{"ruleName":"Discount percentage","inputColumn":["price1","dynamic_column.discount1"],"status":"NE"},{"ruleName":"Discount percentage","inputColumn":["dynamic_column.price2","dynamic_column.discount2"],"status":"NE"}]}]          |
'--+------+-----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------'

NEというステータスは、データでルールを実行できないことを意味します。このシナリオでは数値を検証するルールが設定されているため、price値は検証できません。

その他の無効なデータは、price1price2 (またはそのいずれか)に適用された割引が正しくないことを意味します。

たとえば、行番号2にある割引0.05は価格1000に対して不正確ですが、割引0.2は価格4000に対して正確です。

ジョブを保存する時は、ルール定義が含まれているJARファイルが以下で作成されます。
studio-path\configuration\.m2\repository\org\talend\libraries\rules-number

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

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