データクオリティルールとダイナミックスキーマを使ってデータを検証
このシナリオのジョブでは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コンポーネントではサポートされていません。
ジョブを設定
手順
tFileInputDelimitedコンポーネントを設定
手順
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も入力できます。
このタスクについて
手順
tLogRowコンポーネントを設定
手順
ジョブを保存して実行
手順
ジョブを保存し、F6を押して実行します。
タスクの結果
.--+------+-----------------.
| 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値は検証できません。
その他の無効なデータは、price1とprice2 (またはそのいずれか)に適用された割引が正しくないことを意味します。
たとえば、行番号2にある割引0.05は価格1000に対して不正確ですが、割引0.2は価格4000に対して正確です。
ジョブを保存する時は、ルール定義が含まれているJARファイルが以下で作成されます。
studio-path\configuration\.m2\repository\org\talend\libraries\rules-number