2つのテーブルからSQLステートメントを生成
この記事ではtELTInputコンポーネント、tELTMapコンポーネント、tELTOutputコンポーネントを使って2つのテーブルからSQLステートメントを生成し、そのSQLステートメントをtWarnで表示するサンプルジョブを紹介します。
複数のデータベーステーブルからSQLステートメントを生成するためには、複数のtELTInputコンポーネントを入力としてtELTMapコンポーネントに接続し、それぞれのtELTInputコンポーネントでデータベーステーブルを指定します。これによって、tELTMapコンポーネントがtELTOutputコンポーネントに接続します。tELTMapコンポーネントのELTマップエディターで、テーブルカラムのマッピングとマッピング条件を定義する必要があります。定義された条件は、出力としてtELTOutputコンポーネントに渡されます。tELTOutputコンポーネントは、tELTMapコンポーネントの出力に従ってSQLステートメントを生成します。
このジョブにある各コンポーネントの主な設定は以下のとおりです。
- tELTInput_1では、入力テーブルとしてTable_1が指定されています。このテーブルには、DECIMAL型であるCOL1、COL2、COL3という3つのカラムがあります。
- tELTInput_2では、入力テーブルとしてTable_2が指定されています。このテーブルには、DECIMAL型であるCOLUMN1とCOLUMN2という2つのカラムがあります。
- tELTMap_1では、テーブルカラム間のマッピングは下の図のようにコンポーネントのELTマップエディターで設定されます。
- tELTOutput_1では、主な設定は次の図のとおりです(赤枠のものに注目してください)。
以上の設定により、結果SQLステートメントは次のようになります。この結果、SQLステートメントはtELTOutput_1のQUERY変数に保存されます。
INSERT INTO PUBLIC.Table_3(COL01,COL02,COL03,COL04)( SELECT Table_1.COL1, Table_1.COL2, Table_1.COL3, Table_2.COLUMN2 FROM Table_1 INNER JOIN Table_2 ON(Table_2.COLUMN1 = Table_1.COL1))
情報メモ注: 実際に生成されるSQLステートメントは事前の予告なく変更されることがあります。 - tWarn_1コンポーネントは、生成されたSQLステートメントをコンソールに表示します。そのためには、[Warn message] (警告メッセージ)フィールドに((String)globalMap.get("tELTOutput_1_QUERY"))と入力し、[Priority] (優先度)ドロップダウンリストで[Info] (情報)を選択します。