場合によっては、データベースにある2つのテーブルのレコードを結び付けるJOIN句を持つSQLビジネスルールを使って、データベーステーブルやビューを分析しなければならないことがあります。このJOIN句は2つのカラム間で共通値を比較し、結果データセットを出力します。このセットにあるデータはその後、ビジネスルールを基に分析されます。
分析されたデータとJOIN句そのものに応じて、一致数 + 不一致数 > 行数数、一致数 + 不一致数 < 行数数、一致数 + 不一致数 = 行数数など、結合結果は多岐にわたります。
次の例で、結合結果にあるデータセットが行数(一致数 + 不一致数 > 行数数)よりも大きいケース、つまり処理されたデータに重複値が存在する場合を詳細に説明します。
- Talend Studioの Profiling パースペクティブで、SQLビジネスルールが少なくとも1つ作成されていること。
- Talend Studioの Profiling パースペクティブでデータベース接続が少なくとも1つ設定されていること。
この例では、SQLビジネスルールを作成するで作成されたSQLビジネスルールを、ageカラムとnameカラムを含んでいるPersonテーブルに追加します。このSQLビジネスルールは18歳を超える顧客を定義し、顧客年齢と一致させます。ビジネスルールにはまた、Person (人)テーブルとPerson_Refという他のテーブル間でname (名前)という共通のカラムを分析し、"name" (名前)値を比較する結合条件も含まれます。
この例のように、結果に重複行が出力されることがあります。それによって分析の結果が若干わかりにくくなることがあります。ここでは、ビジネスルールに一致するテーブルの行の分析ではなく、ビジネスルールによって与えられた結果セットでの分析を実行します。
-
テーブル分析を定義し、分析するテーブルを選択します。
選択されたテーブルが[Analyzed Tables] (分析対象テーブル)ビューにリスト表示されます。
-
テーブル名の横にある
アイコンをクリックすると、ビジネスルールが結合条件と共に、選択したテーブルに追加されます。
このビジネスルールには、異なる2つのテーブル間で共通のカラムを分析し、"name" (名前)値を比較する結合条件が含まれます。
- 分析を保存し、[F6]を押して実行します。
情報メッセージが開き、操作が進行中であることが確認できます。また、分析エディターが[Analysis Results] (分析結果)ビューに切り替わります。
選択されたテーブルの年齢レコードはすべて、定義されているSQLビジネスルールを基に評価されます。分析結果は2つの棒グラフで表されます。最初の棒グラフは行数インジケーターで、分析対象テーブルにある行数を表示します。2番目の棒グラフは一致および非一致インジケーターで、「分析された結果セット」からの年齢レコードのうち、基準に一致しないもの(つまり18歳未満のレコード)が示されます。
注: 結合条件がSQLビジネスルールで使用される場合、結合行数(一致数 + 非一致数)が、分析された行数(行数)と異なることがあります。 -
最初のテーブルで[Row Count] (行数)行を右クリックし、[View rows] (行の表示)を選択します。
StudioでSQLエディターが開き、分析された行のリストが表示されます。
-
2番目のテーブルにあるビジネスルール結果を右クリックするか、チャート自体の結果棒グラフを右クリックして、次のオプションを選択します。
次の図は、分析対象テーブルの無効な行のリストです。
-
SQLエディターのツールバーにある保存アイコンをクリックすると、SQLビジネスルールで実行されたクエリーが保存され、[DQ Repository] (DQリポジトリー)ツリービューの フォルダーの下にリスト表示されます。
分析結果にある[Business Rule Statistics] (ビジネスルール統計)棒グラフチャートの理解を高めるには、以下のようにします:
-
分析エディターで、ビジネスルールを右クリックし、[View executed query] (実行したクエリーの表示)を選択します。
StudioでSQLエディターが開きます。
-
エディターの上部にあるクエリーを次のように変更します:
SELECT * FROM `my_person_joins`.`person` Person JOIN `my_person_joins`.`Person_ref` Person_ref ON (Person.`name`=Person_ref.`Name`)
.これで、結合条件の結果データセットがエディターにリスト表示されるようになります。
-
エディターの左上で
アイコンをクリックし、クエリーを実行します。
クエリー結果である分析された結果セットが、エディターの下半分にリスト表示されます。
-
分析エディターに戻り、エディターの下部にある[Analysis Results] (分析結果)タブをクリックし、分析結果の詳細ビューを開きます。
分析された結果セットに含まれている行が、分析対象テーブルよりも多い(または少ない)場合があります。この例では、2つのテーブルの結合で予測を超える行が生成されたため、一致レコードと不一致レコードの数(5 + 2 = 7)が、分析されたレコードの数(6)を上回っています。
ここでは、5行(71.43%)がビジネスルールと一致し、2行が一致していません。結合によって重複行が生成されるため、この結果は、分析対象テーブルの5行がビジネスルールに一致しているという意味ではありません。結果セットの7行のうち5行がビジネスルールに一致しているという意味です。実際、分析対象テーブルの一部の行はビジネスルールを基にした分析さえ行われません。これは、結合でこれらの行が除外される時に発生します。このため、分析された結果で結合が行を削除したり追加したりしないよう、ビジネスルールの結合で使用されるカラムで重複値を調べることをお勧めします。 重複値を調べなければ、結果の解釈はさらに複雑になります。
[Analysis Results] (分析結果)ビューで、一致レコードと不一致レコードの数が分析されたレコードを上回る場合は、選択されたテーブルで重複値を分析する既製分析を生成できます。