Read From DB

Read From DB ステージでは、データフローへの入力として、データベース テーブルまたはビューからデータを読み込みます。このステージは、ジョブ、サービス、サブフローに対して使用できますが、プロセス フローには使用できません。この ステージでは、入力フィールドのタイプの変更が可能です。
注: Read from DB ステージは、date データタイプのすべての値を String 値として読み取ります。これは、Spectrum で使用されるデフォルト ドライバである jTDS ドライバの動作です。すべての date データタイプの値をそのまま処理するには、Microsoft の JDBC ドライバを使用します。
関連するタスク:

Read from DB ステージを使用できるようにするには、Management ConsoleConnection Manager を使用してそれぞれのデータベースへの接続を作成する必要があります。詳細については、「Write to DB」の Database Connection Manager を参照してください。

[全般] タブ

フィールド名

説明

接続

使用するデータベース接続を選択します。使用できるデータベース接続は、Management Console の Connection Manager に定義されている接続によって異なります。新しいデータベース接続を作成、あるいは既存のデータベース接続を変更または削除する必要がある場合は、[管理] をクリックします。
注: このオプションは Enterprise Designer によってのみ使用できます。
データベース接続を追加または変更する場合は、次のフィールドに必要な値を指定します。
接続名
接続の名前を入力します。任意の名前にすることができます。
データベース ドライバ
適切なデータベース タイプを選択します。
接続オプション
データベースへの接続に使用するホスト、ポート、インスタンス、ユーザ名、およびパスワードを指定します。

SQL

データフローの実行時にデータ ソースから読み込む必要のあるレコードを指定する SQL クエリを入力します。このフィールドに SQL クエリを手動で入力できます。または、[SQL の作成] をクリックして、Visual Query Builder によってクエリを作成することもできます。

SQL クエリには、実際の列名の代わりに変数を含めることができます。変数を使用すると、クエリを実行時にカスタマイズすることができます。詳細については、「クエリ変数」を参照してください。

データベースの public.Branch テーブルから BranchIDBranchType を公開するクエリのサンプルは以下のようになります。
select * from "public"."Branch" where
 "BranchID" = # {ID} and "BranchType" = # {Type}
注: Integer タイプ フィールドの値は引用符なしで入力できますが、String タイプは単一引用符で囲む必要があります。
SQL の作成
注: このオプションは Enterprise Designer によってのみ使用できます。
[SQL の作成] をクリックすることにより、複数の列を選択し、結合や入れ子になったクエリを作成して、複雑なクエリを作成します。[Visual Query Builder] が開きます。詳細については、「Visual Query Builder」を参照してください。
注: Visual Query Builder を使用して作成したクエリは、列やテーブルの完全修飾名とともに [SQL] フィールドに表示されます。
フィールドの再生成/スキーマの生成 クエリによって取得されるデータのスキーマを表示するには、[フィールドの再生成] (Enterprise Designer でアクセスしている場合)、および [スキーマの生成] (Flow Designer を使用している場合) をクリックします。

既存のクエリを編集した場合は、このボタンをクリックすると変更されたスキーマが取得されます。

注: このボタンをクリックするとき、SQL クエリのエンティティ名はそのまま維持され、完全修飾名に置き換えられません。
プレビュー SQL クエリによって取得されるレコードのサンプルを表示するには、[プレビュー] をクリックします。

[実行時] タブ

フィールド名 説明
フェッチ サイズ

データベース テーブルから一度に読み取るレコードの数を指定するには、このオプションを選択します。例えば、フェッチ サイズの値が 100 で、読み取るレコードの総数が 1000 である場合、すべてのレコードを読むためにデータベースに 10 回アクセスすることになります。

最適なフェッチ サイズを設定すれば、パフォーマンスを大幅に向上できます。
注: 使用している環境に最適なフェッチ サイズは、Read from DB ステージと Write to Null ステージ間の実行時間をテストすることで計算できます。詳細については、「最適なフェッチ サイズの決定」を参照してください。
ステージ オプション
このセクションには、このステージの SQL クエリで使用されるデータフロー オプションの一覧が表示され、そのすべてのオプションに対してデフォルト値を設定できます。[名前] 列にはオプションが表示され、そのデフォルト値を対応する [値] 列に入力できます。SQL クエリに変数を挿入すると、ステージ オプションが有効になります。例えば、SQL フィールドのこのクエリにより、ステージ オプションの CustomerIDInvoiceID が表示されるため、それぞれに個別のデフォルト値を設定できます。
Select * From [Sales].[CustomerTransactions] 
where#{CustomerID}#{InvoiceID}
注: ここで設定したデフォルト値は、[データフロー オプション] ダイアログ ボックスの [データフロー オプションをステージにマッピングします] セクションにも表示されます。このダイアログ ボックスでも、デフォルト値を変更できます。[ステージ オプション][データフロー オプション]、および Job Executor で設定されたオプションのデフォルト値が競合する場合の優先順位は、Job Executor で指定された値 > [データフロー オプション] ダイアログ ボックスで定義された値 > [ステージ オプション] で入力された値の順になります。