複数の SAP テーブルからのデータの読み取り

Read from SAP ステージは、SAP データベース内の単一テーブル、または複数のテーブルからデータを読み取るように設定できます。この手順は、複数のテーブルからデータを読み取るように Read from SAP を設定する方法を示しています。複数のテーブルからデータを読み取るには、データを結合して 1 つのストリームにまとめる JOIN ステートメントを定義します。

  1. Enterprise Designer で、[Read from SAP] をキャンバス上にドラッグします。
  2. キャンバス上の [Read from SAP] ステージをダブルクリックします。
  3. [接続] フィールドで、データフロー内に読み込むデータが含まれている SAP サーバーを選択します。SAP サーバー用に定義されている接続がない場合は、[管理] をクリックして接続を作成する必要があります。
  4. [ソース タイプ] フィールドで、[複数] を選択します。
  5. [追加] をクリックします。
  6. データフロー内に読み込むテーブルを選択し、[OK] をクリックします。
    注: 最初の 200 テーブルのみがリストに表示されます。最初の 200 件として表示されていないテーブルを探すには、検索機能を使用します。検索フィールドでは、[名前] および [ラベル] 列の値のみが検索されます。
  7. リストの最初のテーブルを選択して、[関係の作成] をクリックします。これがソース テーブルです。
  8. [ソース キー] フィールドで、ソース テーブルの列を選択します。その列の値が、他のテーブルからのレコードとのマッチングに使用されます。
  9. [結合タイプ] フィールドで、次のいずれかを選択します。
    内部結合
    ソース テーブルとターゲット テーブルの間で一致するレコードのみを返します。
    左結合
    ソース テーブルとターゲット テーブルの間に一致がない場合でも、ソース テーブルからのすべてのレコードを返します。このオプションは、ソース テーブルからのすべてのレコードに加えて、ターゲット テーブルで一致するレコードがあればそれを返します。
  10. [テーブル] フィールドで、ターゲット テーブルを選択します。
  11. [テーブル キー] フィールドで、ターゲット テーブルの列を選択します。そのデータを [ソース キー] フィールドからのデータと比較することで、レコードが結合条件を満たすかどうかが判定されます。
  12. [OK] をクリックします。
  13. [スキーマの選択] をクリックします。
  14. データフローに読み込むフィールドを選択します。データフローで使用されるフィールド名を表示するには、[テクニカル名の表示] チェックボックスをオンにします。

    SAP のフィールドには、表示のために使用されるわかりやすい名前と、可読性が低い場合がある一意の名前があります。例えば、1 つのフィールドが "Distribution Channel" というわかりやすい名前と "DIS_CHANNEL" というテクニカル名を持つ場合があります。フィールド名を確実にデータフロー内で有効なものにするために、テクニカル名がフィールド名として使用されます。

  15. [OK] をクリックします。
  16. 特定のレコードのみを読み込む場合は、[フィルタ] タブでフィルタ条件を指定できます。定義したすべての条件を満たすレコードのみが、データフローに読み込まれます。
  17. [実行時] タブで適切なフェッチ サイズを指定することにより、パフォーマンスを向上させることができます。

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

    最適なフェッチ サイズを設定すれば、パフォーマンスを大幅に向上できます。
    注: 使用している環境に最適なフェッチ サイズは、Read from DB ステージと Write to Null ステージ間の実行時間をテストすることで計算できます。詳細については、最適なフェッチ サイズの決定を参照してください。

    Read from SAP のデフォルトのフェッチ サイズは 10,000 です。

これで Read from SAP ステージは、SAP データベースの複数のテーブルからのデータをデータフローに読み込むように設定されました。