複数テーブル結合ステップ
複数テーブル結合ステップは、1回の操作で多数のテーブルを結合します。2テーブルの結合を何度も連鎖させると、全体像が見えなくなり、同じ出力マッピングを繰り返すことになります。このステップでは、すべてのテーブルをビジュアルな結合グラフデザイナーに配置し、列間の結合を描画して、1つの結果テーブルを生成します。
1つのファクトテーブルを複数のディメンションテーブルまたはルックアップテーブルに結合するという、分析でよくある結合パターンを想定して作られています。一度に最大32個のテーブルを結合できます。
複数テーブル結合を追加する
Section titled “複数テーブル結合を追加する”ほかのステップと同様に追加し、複数テーブル結合を選択します(ステップメニューのテーブルグループにあります。高度なワークフローのキャンバスではパレットからドラッグすることもできます)。このステップのエディターには3つのタブがあります。
- Tables & Joins — テーブルを追加して結合を描画するビジュアルデザイナーです。
- 出力列 — 結果テーブルに含める列です。
- Post-Join Filter — 結合後の結果に適用する任意のフィルターです。
作業中は、ステータスインジケーターに保存できますまたは未保存の変更と表示されます。
Tables & Joins
Section titled “Tables & Joins”テーブルを追加する
Section titled “テーブルを追加する”テーブルを追加を選択すると、ソーステーブルがキャンバスに配置されます。各テーブルは列を一覧表示するカードとして表示され、エイリアスが割り当てられます。エイリアスは、ほかの場所でそのテーブルの列を参照するための短い名前です(alias.column の形式)。エイリアスは英字またはアンダースコアで始める必要があり、SQLキーワードは使用できません。必要な数だけ(最大32個)追加し、結果の書き込み先となるターゲットテーブルを選択します。
カタログ内でテーブルの列が変更された場合は、サーバーから再取得を使うと、カードの列が最新の値に置き換わります。
動的テーブルと変数
Section titled “動的テーブルと変数”ソーステーブルとターゲットテーブルはどちらも、リストから選ぶ代わりに参照として指定できます。テーブルピッカーで動的にチェックを入れ、次のいずれかを入力します。
- テーブルの名前 —
FACT_GL - プロジェクトのパス —
/03 Results/FACT_GL
どちらにも {variable} トークンを含めることができ、ワークフローの実行時に置換されます。たとえば /03 Results/FACT_GL_{year} は、プロジェクト変数またはワークフロー変数に応じて、期間ごとに異なるテーブルに書き込みます。ターゲットテーブルが存在しない場合は作成されます。
波かっこの不一致は保存時に検出されるため、たとえば FACT_{year のような入力ミスは、実行の途中で失敗するのではなく、ステップ上でエラーとして報告されます。
結合を描画する
Section titled “結合を描画する”あるテーブルの列のドットから別のテーブルの列へドラッグして、結合(エッジ)を作成します。エッジを選択すると右側にそのエディターが開き、次の項目を設定できます。
-
結合タイプ:
タイプ 保持される行 INNER 一致する行のみ LEFT 左のテーブルのすべての行 FULL 両側のすべての行 CROSS 左のすべての行と右のすべての行の組み合わせ(条件なし) -
結合条件 — 2つのテーブルの列間の比較を1つ以上指定します。+ 条件を追加で追加し、AND / OR で組み合わせます。すべての演算子(
=、<>、<、<=、>、>=、BETWEEN、IS NULL、IS NOT NULL、IN、NOT IN、LIKE、NOT LIKE)を使用できます。 -
ラベル(任意) — 結合に名前を付けます(たとえば
customer-to-orders)。図が読みやすくなります。
デザイナーは結合グラフをツリーとして保持します。各テーブルは1つの結合だけを通じて結果に接続されるため、循環や曖昧な経路は生じず、テーブルをそれ自身に結合することもできません。結合を削除するには、エッジを選択してエッジを削除を選びます。
結合前にテーブルをフィルターする
Section titled “結合前にテーブルをフィルターする”各ソーステーブルには、結合の前に適用される結合前フィルターがあります。これを使うと、必要な行だけにテーブルを絞り込めます(列は alias.column で参照します)。これは、すべての結合の後に実行される Post-Join Filter とは別のものです。
デザイナーのツールバー
Section titled “デザイナーのツールバー”- レイアウトを整理は、テーブルと結合を結合順に左から右へ自動配置します。
- 全体を表示は、グラフ全体が収まるように拡大縮小して中央に配置します。パンやズームを手動で行うこともできます。
- 列をフィルター… は、列数の多いテーブルでカードに表示する列を絞り込みます。
- 元に戻す / やり直しは、編集を前後に戻したり進めたりします(Ctrl+Z / Ctrl+Y)。履歴を開くと、ダイアログを開いてからのすべての変更がパネルに表示され、復元できます。
- エクスポートは、結合の図をSVG画像としてダウンロードします。ドキュメント作成やレビューに便利です。
出力列タブで、結果テーブルに含める列を選択します。結合されたどのテーブルの列も選択できます。キャンバスから選択… ですべてのソースの列から視覚的に選ぶか、すべてのソース列を追加でまとめて追加できます。各列について、名前の変更、データ型の設定、集計の適用ができます。2つのソース列が同じ名前の場合、PlaidCloudは衝突しないようにソースエイリアスを接頭辞として付けます。
各出力列の値は、次の3つのうちちょうど1つから取得されます。
- ソース列 — ソースエイリアスにその列を持つキャンバス上のエイリアスを、ソースに
alias.columnの参照を設定します。どちらも必須です。ソース列は、必ず元のテーブルを指定します。 - 定数 — すべての行で同じ固定値です。
- 式 — 式の列を追加を選択すると行が追加され、式エディターが開きます。式では、キャンバス上の任意のソースエイリアスを
alias.columnとして参照できます。複数の結合テーブルにまたがる値(2つのテーブルにまたがるCASE、連結、計算した金額など)はこの方法で作成します。式の行では、ソースエイリアスとソースは空のままにします。
複数を入力した場合はエラーになり、どれも入力しない場合もエラーになります。
式セルでは、PlaidCloud標準の式エディターが開きます。列ブラウザーにはキャンバス上のすべてのテーブルが表示され、関数リストとオートコンプリートも利用できます。
出力列はキャンバスに追従します。Tables & Joins タブでソースの名前を変更すると、その出力列は新しいエイリアスに移り、ソースを削除すると、その出力列も削除されます。そのため、結合に含まれなくなったテーブルを指す列が残ることはありません。
Post-Join Filter
Section titled “Post-Join Filter”Post-Join Filter タブでは、結合結果をターゲットテーブルに書き込む前に適用する任意のフィルターを設定します。SQLの HAVING 句に相当します。ボックスをクリックすると式エディターが開きます。出力列が列ブラウザーに一覧表示され、result.column_name として参照します。ここではソースエイリアスはスコープ内にありません。ボックスの下にある利用可能な参照には、使用できるすべての参照が一覧表示されます。空のままにすると、結合後のフィルターは行われません。
PlaidCloudは、結合の構築中と、ステップの実行時に、結合を検証します。サポートされていない構成、循環、エイリアスの重複、Source / Constant / Expression のいずれも設定されていない(または複数が設定されている)出力列、存在しなくなった列などの問題がある場合、タブに件数付きの ⚠ バッジが表示され、デザイナー上で該当するテーブルや結合が強調表示されます。保存は理由とともに拒否されます。未解決の問題がある状態で保存すると、最初の問題があるタブに切り替わります。問題へ移動でも同じ操作をいつでも行えます。
保存時には、PlaidCloudは各出力列の式を、ステップの実行時と同じ方法で、結合自身の入力に対してエイリアス(alias.column)で検査し、Post-Join Filter も検査します。式に誤りがある場合は該当する出力列に、Post-Join Filter に誤りがある場合はそのフィルターに報告されます。結合が実行時に指定された列も引き継ぐに設定されていて、集計していない場合、列は実行時に追加されるため、保存時の式の検査はスキップされます。これらの式はステップの実行時に検査されます。ソースごとのフィルターも、ステップの実行時に検査されます。
ステップを実行する
Section titled “ステップを実行する”複数テーブル結合は、ほかのステップと同じように実行されます。すべての結合を1回の操作で実行し、マッピングされた列をターゲットテーブルに書き込みます。
次のステップ
Section titled “次のステップ”- 複数テーブル結合のリファレンス — フィールドの簡潔な一覧
- テーブルステップ — テーブル変換の全一覧
- 高度なワークフロー — ビジュアルキャンバスで構築する