Read from SAP ステージは、SAP データベース内の単一テーブル、または複数のテーブルからデータを読み取るように設定できます。この手順は、複数のテーブルからデータを読み取るように Read from SAP を設定する方法を示しています。複数のテーブルからデータを読み取るには、データを結合して 1 つのストリームにまとめる JOIN ステートメントを定義します。
-
Enterprise Designer で、[Read from SAP] をキャンバス上にドラッグします。
-
キャンバス上の [Read from SAP] ステージをダブルクリックします。
-
[接続] フィールドで、データフロー内に読み込むデータが含まれている SAP サーバーを選択します。SAP サーバー用に定義されている接続がない場合は、[管理] をクリックして接続を作成する必要があります。
-
[ソース タイプ] フィールドで、[複数] を選択します。
-
[追加] をクリックします。
-
データフロー内に読み込むテーブルを選択し、[OK] をクリックします。
注: 最初の 200 テーブルのみがリストに表示されます。最初の 200 件として表示されていないテーブルを探すには、検索機能を使用します。検索フィールドでは、[名前] および [ラベル] 列の値のみが検索されます。
-
リストの最初のテーブルを選択して、[関係の作成] をクリックします。これがソース テーブルです。
-
[ソース キー] フィールドで、ソース テーブルの列を選択します。その列の値が、他のテーブルからのレコードとのマッチングに使用されます。
-
[結合タイプ] フィールドで、次のいずれかを選択します。
- 内部結合
- ソース テーブルとターゲット テーブルの間で一致するレコードのみを返します。
- 左結合
- ソース テーブルとターゲット テーブルの間に一致がない場合でも、ソース テーブルからのすべてのレコードを返します。このオプションは、ソース テーブルからのすべてのレコードに加えて、ターゲット テーブルで一致するレコードがあればそれを返します。
-
[テーブル] フィールドで、ターゲット テーブルを選択します。
-
[テーブル キー] フィールドで、ターゲット テーブルの列を選択します。そのデータを [ソース キー] フィールドからのデータと比較することで、レコードが結合条件を満たすかどうかが判定されます。
-
[OK] をクリックします。
-
[スキーマの選択] をクリックします。
-
データフローに読み込むフィールドを選択します。データフローで使用されるフィールド名を表示するには、[テクニカル名の表示] チェックボックスをオンにします。
SAP のフィールドには、表示のために使用されるわかりやすい名前と、可読性が低い場合がある一意の名前があります。例えば、1 つのフィールドが "Distribution Channel" というわかりやすい名前と "DIS_CHANNEL" というテクニカル名を持つ場合があります。フィールド名を確実にデータフロー内で有効なものにするために、テクニカル名がフィールド名として使用されます。
-
[OK] をクリックします。
-
特定のレコードのみを読み込む場合は、[フィルタ] タブでフィルタ条件を指定できます。定義したすべての条件を満たすレコードのみが、データフローに読み込まれます。
-
[実行時] タブで適切なフェッチ サイズを指定することにより、パフォーマンスを向上させることができます。
データベース テーブルから一度に読み取るレコードの数を指定するには、このオプションを選択します。例えば、フェッチ サイズの値が 100 で、読み取るレコードの総数が 1000 である場合、すべてのレコードを読むためにデータベースに 10 回アクセスすることになります。
最適なフェッチ サイズを設定すれば、パフォーマンスを大幅に向上できます。
注: 使用している環境に最適なフェッチ サイズは、Read from DB ステージと Write to Null ステージ間の実行時間をテストすることで計算できます。詳細については、
最適なフェッチ サイズの決定を参照してください。
Read from SAP のデフォルトのフェッチ サイズは 10,000 です。
これで Read from SAP ステージは、SAP データベースの複数のテーブルからのデータをデータフローに読み込むように設定されました。