コンテンツにスキップ

名前のとおり、2つのデータテーブルに対してクロス結合を実行し、結合キーを使わずに1つのデータテーブルにまとめます。

どちらのテーブルのソースフィルターも、結合のサイズが見積もられる前に適用されます。そのため、大きなテーブルに対するフィルター付きのクロス結合でも、フィルター後の行数が十分に少なければ実行されます。

クロス結合の仕組みについて詳しくは、こちらをご覧ください: Wikipedia SQL Cross Join

テーブルBb1b2b3テーブルAa1a2a3
クロス結合は、結合キーを使わずにAのすべての行をBのすべての行と組み合わせます。3×3行から9行の結合行が生成されるため、行数は急速に増えます。

テーブルソース

ドロップダウンメニューからソースデータテーブルを選択して指定します。

ソース列

含める列をここで指定します。ソースを検査ボタンとソースマッピングテーブルを入力ボタンを選択すると、これらの列を結合操作で使用できるようになります。

ソースデータのサブセットの選択

データのサブセットを指定するには、有効な Python 式を使用できます。詳細と例については、式を参照してください。

テーブルソース

実行時に指定された列も引き継ぐ を選択すると、ステップが列挙していないソース列がすべて、ステップの実行時にテーブルにある状態のまま変更されずに渡されます。ピボットなど、名前がデータによって決まる列を前のステップが作成する場合、ステップの作成時にそれらを列挙できないため、このオプションを使用します。オフのままにすると、列挙した列だけが書き込まれます。

ターゲットテーブル

テーブルのターゲット

ターゲットテーブルを設定するには、ターゲットテーブルドロップダウンから既存のテーブルを選択するか、緑色の “+” 記号をクリックして新しいテーブルをターゲットとして作成します。

テーブルの作成

新しいテーブルを作成するときは、ビューまたはテーブルのどちらとして作成するかを選択できます。

ビュー:

ビューは、テーブルを使用する場合に比べてステップの実行時間が大幅に短くなる点で便利です。短所は、テーブルの詳細モードでのデータ探索には向かないことです。

テーブル:

ターゲットにテーブルを使用すると、ステップの実行には時間がかかりますが、詳細モードでのデータ探索はビューよりもはるかに高速です。

データマッパーの設定

Table Data Mapper

データマッパーは、ソースデータの列をターゲットのデータテーブルにマッピングするために使用します。

マッパーの検査と入力

ソースを検査メニューボタンを使うと、ソースからターゲットへ列をマッピングする方法が増えます。

  • 両方のマッピングテーブルを入力: ソースデータテーブルのすべての値をターゲットのデータテーブルに反映します。これがデフォルトです。
  • ソースマッピングテーブルのみを入力: ソースデータテーブルのすべての値のみをマッピングします。ソース列の構成が変わった既存のワークフローを修正する際に便利です。
  • ターゲットマッピングテーブルのみを入力: すべての値をターゲットのデータテーブルのみに反映します。

ソース列とターゲット列のオプションだけでは足りない場合は、次のようにいくつかの方法でターゲットのデータテーブルに列を追加できます。

  • すべてを反映は、すでに存在しているかどうかにかかわらず、すべてのソース列をターゲットのデータテーブルに挿入します。
  • 選択を反映は、選択したソース列のみを挿入します。
  • ターゲット側を右クリックして行を挿入を選択すると、現在選択している行の直上に行を挿入します。
  • ターゲット側を右クリックして行を追加を選択すると、ターゲットのデータテーブルの末尾(右端)に行を挿入します。

列の削除

ターゲットのデータテーブルから列を削除するには、対象の列を選択し、右クリックして削除を選択します。

一覧になくなったソース列

ターゲットの行がソース列として指定している列が、ソースデータテーブルの一覧にない場合があります。たとえば、ソースを再度検査した後などです。ステップがそのような行を自動的に削除することはありません。代わりに、列名が警告マーク ⚠ の後ろに赤色で表示され、その上にカーソルを置くと、その列がソース列にないことが示されます。ユニオンなど複数のテーブルを扱うステップでは、各テーブルがそれぞれのソース列に対してチェックされます。

定数、式、または件数 (NULLを含む) の集計を設定した行は、ステップがそのソース列を読み取らないため、フラグが付くことはありません。ソースデータテーブルに列が一覧表示されていない間(たとえば、ソースを初めて検査する前)は、何もフラグが付きません。

フラグが付いた行が残ったままステップを保存すると、古い列が見つかりましたダイアログに、該当する行が所属するタブまたはテーブルごとに表示され、次の3つの選択肢が提示されます。

  • すべて削除して保存 — フラグが付いた行を削除してから保存します。
  • このまま保存 — ステップをそのまま保存します。
  • キャンセル — 保存せずにステップに戻ります。

行を残したまま警告を解除するには、その列をソースデータテーブルに追加し直すか、ソースデータテーブルに一覧表示されている列を選択します。

列のデータ型

ターゲットの各列にはタイプがあります。ソースから反映した列はソース列のタイプを引き継ぎます。手動で追加した行はテキストから始まるため、実際に必要なタイプをタイプで設定します。合計や並べ替えを行う列には数値型や日付型が必要です。テキストはテキストとして並べ替えられ、合計されるためです。

タイプがまったく設定されていない列を含んだままステップを保存しても、ステップは実行されます。タイプは、ステップの開始時に、その列が読み取るソース列から判定されます。読み取り元がない場合はテキストとして扱われます。たとえば、SQL抽出ステップの列は、マッピングされたソースではなく、記述したクエリから決まります。また、同じ列名でタイプが一致しないソースが複数ある場合は、いずれかを推測せずテキストが使われます。推測が外れるとウェアハウスが拒否する変換が生じる可能性がありますが、どんな値もテキストには変換できるためです。

列がどうあるべきかを指定する方法は、引き続きタイプを自分で設定することです。未設定のままにすると、ソース列がたまたまそうであるタイプをそのまま受け入れることになります。

列の順序の変更

ターゲットのデータテーブルの列を並べ替えるには、対象の列を選択します。次のどちらかを使用できます。

  • 一括移動の矢印: 右上の矢印から目的の移動オプションを選択します
  • コンテキストメニュー: 右クリックして、先頭へ移動、上へ移動、下へ移動、末尾へ移動のいずれかを選択します。

結果を重複のないレコードのみに絞り込む

重複のないオプションのみを返すには、重複排除メニューオプションを選択します。ソースの各列にチェックボックスが表示されます。重複を排除したい列の横にあるチェックボックスをオンにすると、重複のない結果のみが返されます。

状況によっては、代わりに集計の使用を検討することをお勧めします。

重複排除では、最初に見つかった一意のレコードを残し、残りを破棄します。実行間で一貫性が必要な場合は、データに並べ替えを適用することをお勧めします。

集計とグループ化

結果を集計するには、集計メニューオプションを選択します。ターゲットのデータテーブルの各列に選択ボックスが表示されます。列ごとに適切な集計方法を選択します。

ソースを検査で列が入力される際、数値列は、名前が id、customer_id、Order No、CustomerKey のように識別子と読み取れる場合、テーブルでキーに設定されている場合、または結合でキーとして使用されている場合に、合計ではなくグループ化から始まります。

  • グループ化
  • 合計
  • 最小
  • 最大
  • 最初
  • 最後
  • 件数
  • 件数 (NULLを含む)
  • 平均
  • 標準偏差
  • 標本標準偏差
  • 母標準偏差
  • 分散
  • 標本分散
  • 母分散
  • 高度な非グループ化

式、クレンジング、定数などのデータマッパーの高度な使い方については、データマッパーの高度な使い方を参照してください。

Join Map またはターゲット出力列の行には、ステップのソース列タブにもう一覧表示されていない列の名前が含まれていることがあります。たとえば、ソースの列を再度検査した後などです。ステップがそのような行を自動的に削除することはありません。代わりに、列名が ⚠ 警告マークの後ろに赤で表示され、カーソルを合わせると、どのソースのリストにその列がないかが表示されます。

定数、式、件数 (NULLを含む) の集計を持つターゲット出力列の行は、ステップがその行のソース列を読み取らないため、フラグ付けされることはありません。一度も検査されていないソースなど、リストが空のソースに対しては何も確認されません。

フラグ付けされた行が残ったままステップを保存すると、古い列が見つかりましたダイアログにテーブルごとに一覧表示され、次の3つの選択肢が表示されます。

  • すべて削除して保存 — フラグ付けされた行を削除してから保存します。
  • このまま保存 — ステップをそのまま保存します。
  • キャンセル — 保存せずにステップに戻ります。

行を残したまま警告を解除するには、その列をソース列タブのそのソースのリストに戻すか、リストに含まれる列を選択します。

保存時には、各ソーステーブルの現在の状態も確認されます。ソースのリストにあるものの、そのテーブルにはない列がある場合、不足しているソース列ダイアログが開き、テーブルと列が表示され、このまま保存またはキャンセルを選択できます。行もフラグ付けされている場合は、両方が古い列が見つかりましたダイアログにまとめて表示されます。ソーステーブルに存在しない列を参照してください。

Table Data Filters

柔軟性を最大限に高めるため、データフィルターはソースデータとターゲットデータの両方で使用できます。データセットが大きい場合は、ソース側で行を絞り込んでおくと、残りの処理を小さなデータセットに対して実行できるため、特に効果的です。

データのサブセットを選択

このフィルタータイプでは、指定した条件に基づいて、受信するソースデータをフィルター処理できます。

結果データにセカンダリフィルターを適用

このフィルタータイプでは、変換後の結果データに対して、指定した条件に基づくフィルターを適用できます。 変換後の結果にフィルターを適用できるため、複雑な計算、集計、ウィンドウ関数の結果に基づいて行を除外できます。

最終データテーブルのスライス(制限)

行のスライス機能では、範囲と開始位置に基づいて、結果セットの行数を制限できます。

フィルター構文

フィルター構文には Python SQLAlchemy を使用します。これは他の式と同じ構文です。

式の例と式関数については、式のセクションを参照してください。