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

Talend Cloud Real-Time Big Data Platform Studioユーザーガイド

author
Talend Documentation Team
EnrichVersion
Cloud
EnrichProdName
Talend Cloud
task
ジョブデザインと開発
EnrichPlatform
Talend Management Console
Talend Studio

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

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

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

前提条件:
  • StudioのProfilingパースペクティブで、SQLビジネスルールが少なくとも1つ作成されていること。SQLビジネスルールの作成についての詳細は、SQLビジネスルールを作成するを参照して下さい。

  • StudioのProfilingパースペクティブでデータベースへの接続が少なくとも1つ設定されていること。詳細は、データベースへの接続を参照して下さい。

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

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

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

  1. 単純なSQLビジネスルールでテーブル分析を作成するの手順に従い、テーブル分析を定義し、分析するテーブルを選択します。

    選択されたテーブルが[Analyzed Tables] (分析対象テーブル)ビューにリスト表示されます。

  2. テーブル名のとなりのアイコンをクリックすると、ビジネスルールが結合条件とともに、選択したテーブルに追加されます。

    このビジネスルールには、異なる2つのテーブル間で共通のカラムを分析し、"name" (名前)値を比較する結合条件が含まれます。SQLビジネスルールの詳細は、SQLビジネスルールを作成するを参照して下さい。

  3. 分析を保存し、[F6]を押して実行します。

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

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

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

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

  5. 2番目のテーブルにあるビジネスルール結果を右クリックするか、チャート自体の結果棒グラフを右クリックして、次のオプションを選択します。

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

  6. SQLエディターのツールバーにある保存アイコンをクリックすると、SQLビジネスルールで実行されたクエリーが保存され、[DQ Repository] (DQリポジトリー)ツリービューの[Libraries] (ライブラリー) > [Source Files] (ソースファイル)フォルダーの下にリスト表示されます。

    詳細は、インジケーターで実行したクエリの保存を参照して下さい。

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