結合条件を持つSQLビジネスルールでテーブル分析を作成 - Cloud - 7.3

Talend Studioユーザーガイド

Version
Cloud
7.3
Language
日本語
Product
Talend Big Data
Talend Big Data Platform
Talend Cloud
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Real-Time Big Data Platform
Module
Talend Studio
Content
ジョブデザインと開発
Last publication date
2024-02-13
対象製品...

Big Data Platform

Cloud API Services Platform

Cloud Big Data Platform

Cloud Data Fabric

Cloud Data Management Platform

Data Fabric

Data Management Platform

Data Services Platform

MDM Platform

Real-Time Big Data Platform

このタスクについて

場合によっては、データベースにある2つのテーブルのレコードを結び付けるJOIN句を持つSQLビジネスルールを使って、データベーステーブルやビューを分析しなければならないことがあります。このJOIN句は2つのカラム間で共通値を比較し、結果データセットを出力します。このセットにあるデータはその後、ビジネスルールに対して分析されます。

分析されたデータとJOIN句そのものに応じて、一致数 + 不一致数 > 行数数、一致数 + 不一致数 < 行数数、一致数 + 不一致数 = 行数数など、結合結果は多岐にわたります。

次の例で、結合結果にあるデータセットが行数(一致数 + 不一致数 > 行数)よりも大きいケース、つまり処理されたデータに重複値が存在する場合を詳細に説明します。

始める前に:
  • Talend StudioProfilingパースペクティブで、SQLビジネスルールが少なくとも1つ作成されていること。
  • Talend StudioProfilingパースペクティブでデータベース接続が少なくとも1つ設定されていること。

この例では、SQLビジネスルールを作成で作成されたSQLビジネスルールを、ageカラムとnameカラムを含んでいるPersonテーブルに追加します。このSQLビジネスルールは18歳を超える顧客を定義し、顧客年齢と一致させます。ビジネスルールにはまた、Person (人)テーブルとPerson_Refという他のテーブル間でname (名前)という共通のカラムを分析し、"name" (名前)値を比較する結合条件も含まれます。

両テーブルの画像は次のとおりです。
2つのテーブル間の結合条件の結果は次のようになります。

この例のように、結果に重複行が出力されることがあります。それによって分析の結果が若干わかりにくくなることがあります。ここでは、ビジネスルールに一致するテーブルの行の分析ではなく、ビジネスルールによって与えられた結果セットでの分析を実行します。

手順

  1. テーブル分析を定義し、分析するテーブルを選択します。
    選択されたテーブルが[Analyzed Tables] (分析済みテーブル)ビューにリスト表示されます。
  2. テーブル名の横にあるアイコンをクリックすると、ビジネスルールが結合条件と共に、選択したテーブルに追加されます。
    このビジネスルールには、異なる2つのテーブル間で共通のカラムを分析し、"name" (名前)値を比較する結合条件が含まれます。
  3. 分析を保存し、F6を押して実行します。

    情報メッセージが開き、操作が進行中であることが確認できます。また、分析エディターが[Analysis Results] (分析結果)ビューに切り替わります。

    選択されたテーブルの年齢レコードはすべて、定義されているSQLビジネスルールを基に評価されます。分析結果は2つの棒グラフで表されます。最初の棒グラフは行数インジケーターで、分析済みテーブルにある行数を表示します。2番目の棒グラフは一致および非一致インジケーターで、「分析された結果セット」からの年齢レコードのうち、基準に一致しないもの(つまり18歳未満のレコード)が示されます。

    注: 結合条件がSQLビジネスルールで使用される場合、結合行数(一致数 + 非一致数)が、分析された行数(行数)と異なることがあります。
  4. 最初のテーブルで[Row Count] (行数)行を右クリックし、[View rows] (行の表示)を選択します。

    StudioでSQLエディターが開き、分析された行のリストが表示されます。

  5. 2番目のテーブルにあるビジネスルール結果を右クリックするか、チャート自体にある結果棒グラフを右クリックします。
  6. 次を選択します。
    オプション 操作
    [View valid rows] (有効な行を表示) 選択したテーブルで使用したパターンに対して測定された有効なすべての行のリスト(SQLエディター内)にアクセスします。
    [View invalid rows] (無効な行を表示) 選択したテーブルで使用したパターンに対して測定された無効なすべての行のリスト(SQLエディター内)にアクセスします。
    [Analyze duplicates] (重複値の分析) テーブル内に超複値があればそれを分析する既製分析を生成し、行数と重複数を出力します。
    [Generate Job] (ジョブの生成) 分析済みテーブルの有効な行や無効な行を出力ファイルに書き込むため、抽出、ロード、変換プロセス(ELT)を使用するジョブを作成します。

    次の図は、分析済みテーブルの無効な行のリストです。

  7. SQLエディターのツールバーにある保存アイコンをクリックすると、SQLビジネスルールで実行されたクエリーが保存され、[DQ Repository] (DQリポジトリー)ツリービューの[Libraries] (ライブラリー) > [Source Files] (ソースファイル)フォルダーの下にリスト表示されます。
  8. 分析結果にある[Business Rule Statistics] (ビジネスルール統計)棒グラフチャートの理解を高めるには、以下のようにします:
    1. 分析エディターで、ビジネスルールを右クリックし、[View executed query] (実行したクエリーの表示)を選択します。

      StudioでSQLエディターが開きます。

    2. エディターの上部にあるクエリーを次のように変更します: SELECT * FROM `my_person_joins`.`person` Person JOIN `my_person_joins`.`Person_ref` Person_ref ON (Person.`name`=Person_ref.`Name`).
      これで、結合条件の結果データセットがエディターにリスト表示されるようになります。
    3. エディターの左上でアイコンをクリックし、クエリーを実行します。

      クエリー結果である分析された結果セットが、エディターの下半分にリスト表示されます。

    4. 分析エディターに戻り、エディターの下部にある[Analysis Results] (分析結果)タブをクリックし、分析結果の詳細ビューを開きます。

      分析された結果セットに含まれている行が、分析済みテーブルよりも多い(または少ない)場合があります。この例では、2つのテーブルの結合で予測を超える行が生成されたため、一致レコードと不一致レコードの数(5 + 2 = 7)が、分析されたレコードの数(6)を上回っています。

      ここでは、5行(71.43%)がビジネスルールと一致し、2行が一致していません。結合によって重複行が生成されるため、この結果は、分析済みテーブルの5行がビジネスルールに一致しているという意味ではありません。結果セットの7行のうち5行がビジネスルールに一致しているという意味です。実際、分析済みテーブルの一部の行はビジネスルールに対する分析さえ行われません。これは、結合でこれらの行が除外される時に発生します。このため、分析された結果で結合が行を削除したり追加したりしないよう、ビジネスルールの結合で使用されるカラムで重複値を調べることをお勧めします。  重複値を調べなければ、結果の解釈はさらに複雑になります。

      [Analysis Results] (分析結果)ビューで、一致レコードと不一致レコードの数が分析されたレコードを上回る場合は、選択されたテーブルで重複値を分析する既製分析を生成できます。