SAP ODP バッチソース

このページでは、Cloud Data Fusion での SAP ODP プラグインの構成に関するガイダンスを示します。

SAP ODP プラグインによって、Cloud Data Fusion を使用して SAP アプリケーションからの BigQuery または他のサポートされているターゲット システムとのデータの一括統合ができます。プラグインには次の主な特徴があります。

サポートされているソフトウェア バージョン

ソフトウェア バージョン
SAP S4/HANA SAP S4/HANA 1909 以降
SAP ECC SAP ERP6 NW 7.31 SP16 以降
SAP JCo SAP JCo バージョン 3.0.20 以降
Cloud Data Fusion 6.3 以降

Google Cloud での SAP の詳細については、Google Cloud での SAP の概要をご覧ください。

始める前に

SAP ODP プラグインで使用される次のシステムとサービスを設定します。

  1. SAP ERP システムを構成します。このプロセスでは次の処理が行われます。
    • SAP トランスポート ファイルをインストールします。
    • 必要な SAP の承認とロールを設定します。
    • SAP Java Connector を設定します。
  2. Cloud Data Fusion に ODP プラグインをデプロイします。

    • 重要: Cloud Data Fusion のバージョンと互換性のあるプラグイン バージョンを選択してください。
    • Cloud Data Fusion インスタンスまたはプラグインのバージョンをアップグレードする場合は、パイプラインの機能スコープとパフォーマンスの変更の影響を評価します。
  3. Cloud Data Fusion と SAP 間の RFC 接続を確立します。

    • Cloud Data Fusion インスタンスと SAP サーバー間の通信が有効になっていることを確認します。
    • プライベート インスタンスの場合は、VPC ネットワーク ピアリングを設定します。
    • SAP システムと Cloud Data Fusion インスタンスの両方が同じプロジェクトに存在する必要があります。

プラグインを構成する

  1. Cloud Data Fusion ウェブ インターフェースに移動し、[Studio] をクリックします。
  2. [Realtime] ではなく、[Data Pipeline - Batch] が選択されていることを確認します。
  3. [Source] メニューで、[SapODP] をクリックします。SAP ODP ノードがパイプラインに表示されます。
  4. ソースを構成するには、SAP ODP ノードに移動して、[Properties] をクリックします。
  5. 次のプロパティを入力します。完全版リストについては、プロパティをご覧ください。

    1. SAP ODP ノードのラベルを入力します(例: SAP ODP tables)。
    2. 接続の詳細を入力します。新しい 1 回限りの接続または再利用可能な既存接続を設定できます。

      新しい接続

      SAP に 1 回限りの接続を追加するには、次の手順に従います。

      1. [接続を使用] はオフのままにします。
      2. [接続] セクションで、SAP アカウントの次の情報をこれらのフィールドに入力します。

        1. [参照名] フィールドに、リネージのこのソースを識別する接続の名前を入力します。
        2. [SAP client] フィールドに、SAP 内の特定のインスタンスのクライアント名または環境のクライアント名を入力します。SAP 管理者はクライアント名を指定できます。
        3. [SAP の言語] フィールドに、SAP ログオン言語を入力します。デフォルトは EN(英語)です。
        4. 次の接続タイプのいずれかを選択します。

          • 直接(SAP アプリケーション サーバーを介して)。このデフォルト タイプを選択した場合は、[SAP アプリケーション サーバー ホスト]、[SAP システム番号]、[SAP ルーター] のフィールドに情報を入力します。
          • 負荷分散(SAP メッセージ サーバーを介して)。このタイプを選択する場合は、次のフィールドに情報を入力します。SAP Message Server ホストSAP Message Server サービスまたはポート番号,、SAP システム ID(SID)SAP ログオン グループ名
        5. [コンテキスト] フィールドで、使用しているデータソースのタイプを選択します。

        6. [SAP ODP ソース名] フィールドに、使用しているデータソースの名前を入力します。

        7. [抽出のタイプ] フィールドで、データ抽出のタイプを選択します。デフォルトは [完全(すべてのデータ)] です。

        8. SAP 認証情報を提供します。SAP ログオンのユーザー名パスワードを SAP 管理者に問い合わせます。

        9. [JCo ライブラリの Cloud Storage パス] フィールドに、アップロードした SAP JCo ライブラリ ファイルを含む Cloud Storage の SAP Java Connector(SAP JCo)パスを入力します。

        10. SAP のデータ型を対応する Cloud Data Fusion のデータ型にマッピングする SAP のメタデータに基づいてスキーマを生成するには、[スキーマの取得] をクリックします。詳細については、データ型のマッピングをご覧ください。

        11. 省略可: SAP からの取り込み負荷を最適化するには、次のフィールドに情報を入力します。

          1. [SAP ODP Subscriber Name] フィールドに、有効な DataSource からのデータ抽出のサブスクライバーを指定します。
          2. フィルタ オプションを使用すると、選択条件に基づいてレコードを抽出できます。
          3. [分割数] フィールドでパーティションを作成して、データレコードを並列で抽出すると、パフォーマンスが向上します。スプリット数は SAP の作業プロセスに影響する可能性があるため、慎重に選択する必要があります。
          4. [パッケージ サイズ] フィールドに、単一の SAP ネットワーク呼び出しで抽出するレコードの数を指定します。パッケージ サイズはパフォーマンスと使用可能なリソースに影響するため、慎重に選択する必要があります。

      再利用可能な接続

      既存の接続を再利用する手順は次のとおりです。

      1. [接続を使用] をオンにします。
      2. [接続を参照] をクリックします。
      3. 接続名をクリックします。

      接続が存在しない場合に、再利用可能な接続を作成するには、次の手順に従います。

      1. [接続を追加] > [SapOdp] をクリックします。
      2. 表示された [SapOdp 接続を作成] ページで、接続名と説明を入力します。
      3. [SAP クライアント] フィールドに、SAP の特定のインスタンスのクライアント名または環境の名前を入力します。クライアント名は SAP 管理者が指定できます。
      4. [SAP の言語] フィールドに、SAP ログオン言語を入力します。デフォルトは EN(英語)です。
      5. 次の接続タイプのいずれかを選択します。

        • 直接(SAP アプリケーション サーバーを介して)。このデフォルト タイプを選択した場合は、[SAP アプリケーション サーバー ホスト]、[SAP システム番号]、[SAP ルーター] のフィールドに情報を入力します。
        • 負荷分散(SAP メッセージ サーバーを介して)。このタイプを選択する場合は、次のフィールドに情報を入力します。SAP Message Server ホストSAP Message Server サービスまたはポート番号,、SAP システム ID(SID)SAP ログオン グループ名
      6. SAP ODP ソース名に、SAP の ODP データソース名を入力します。

      7. SAP 認証情報を提供します。SAP ログオンのユーザー名パスワードの値を SAP 管理者に問い合わせます。

      8. [JCo ライブラリの Cloud Storage パス] フィールドに、アップロードした SAP JCo ライブラリ ファイルを含む Cloud Storage の SAP Java Connector(SAP JCo)パスを入力します。

      9. [待ち時間] フィールドに、次の再試行までの待ち時間(秒単位)を入力します(例: 60)。

      10. [再試行回数] フィールドに、再試行の最大数を入力します(例: 3)。

      11. 省略可: [追加の SAP 接続プロパティ] フィールドに、SAP JCo のデフォルトをオーバーライドする Key-Value ペアを入力します。

      12. [作成] をクリックします。

プロパティ

プロパティ マクロ対応 必要なプロパティ 説明
ラベル × データ パイプラインのノードの名。
接続を使用 × × 再利用可能な接続を使用します。接続を使用する場合は、認証情報を提供する必要はありません。詳細については、接続を管理するをご覧ください。
名前 × 再利用可能な接続の名前。
SAP クライアント SAP システム内の特定のインスタンスまたは環境。
SAP の言語 SAP ユーザー インターフェースとデータが表示、処理される言語。
接続タイプ × SAP 接続タイプ: 直接またはロード バランシング
SAP アプリケーション サーバーホスト × 直接接続タイプの場合のみ、このホスト名は SAP アプリケーション サーバーからのものになります。これは、SAP クライアント(SAP ウェブ インターフェース、ウェブブラウザ、モバイルアプリ、など)と基盤となるデータベースの間のミドルウェア レイヤとして機能します。
SAP システム番号 × 直接接続タイプの場合のみ、この番号は各 SAP システムに割り当てられた固有識別子です。例: 00
SAP ルーター × 直接接続タイプの場合のみ、これはプロキシ サーバー用のルーター文字列です。これは、SAP システムと外部クライアントまたはパートナー間の通信に安全なチャネルを提供します。
SAP メッセージ サーバーホスト × 負荷分散接続タイプの場合のみ、これはホストの名前です。これにより、SAP 内の複数のアプリケーション サーバー間の負荷分散が容易になります。
SAP メッセージ サーバー サービスまたはポート番号 × 負荷分散接続タイプの場合のみ、これは SAP メッセージ サーバーが SAP 内の SAP クライアントとアプリケーション サーバーからの受信接続をリッスンするネットワーク ポートです。
SAP システム ID(SID) × ロード バランシング接続タイプの場合のみ、この ID は各 SAP システムに割り当てられます。
SAP ログオン グループ名 × 複数の SAP アプリケーション サーバーの論理グループまたは構成の名前。デフォルトは PUBLIC です。
オブジェクトの種類 なし なし サポートされているオブジェクト タイプ: DataSources/Extractors または ABAP Core Data Services
SAP ODP ソース名 SAP DataSources または CDS ビューの名前(例: 2LIS_02_ITM)。
抽出のタイプ プラグインは、次の 2 種類のデータ抽出をサポートしています。
  • 完全(すべてのデータ): 利用可能なすべてのデータを抽出します。
  • 同期(前回の実行に基づく自動選択): 前回の実行タイプに基づいて、完全、デルタ(増分)、または復元(最後の実行からの復元)モードを実行する必要性の有無と SAP で使用可能なステータスを決定します。最初のパイプラインの実行時(ODP モード F)のすべてのデータを抽出して、その後のパイプラインの実行時(ODP モード D と R)のデータを変更します。
SAP ログオン ユーザー名 SAP のユーザー名
推奨: ユーザー名が定期的に変更される場合は、マクロを使用します。
SAP ログオン パスワード SAP パスワード。
推奨: セキュアマクロを使用します。
GCP プロジェクト ID Google Cloud プロジェクト ID。
SAP JCo ライブラリの GCS パス SAP JCo ライブラリ ファイルをアップロードした Cloud Storage のパス。
スキーマの取得 なし なし このプラグインは、SAP のメタデータに基づいてスキーマを生成し、SAP のデータ型を対応する Cloud Data Fusion のデータ型にマッピングします。データ型のマッピングをご覧ください。
SAP ODP サブスクライバー名 有効な SAP DataSource または CDS ビューからのデータ抽出用の ODP サブスクライバー。それは次を満たす必要があります。
  • 最大 32 文字(スペースを除く)
  • azAZ09_/ のみを含む
  • 同じ SAP DataSource からデータを抽出する異なるパイプラインに対して一意
このフィールドを空白のままにすると、Cloud Data Fusion はプロジェクト ID、名前空間、パイプライン名を組み合わせて ID を生成します。サードパーティ ツールで作成したサブスクリプションなど、以前のサブスクリプションを再利用できます。
待機時間 × このプロパティによって、データ エンジニアは、Cloud Data Fusion から SAP への各ネットワーク呼び出しの後に、適切な待ち時間を選択できます。
再試行回数 × ネットワーク呼び出しの完了を待機している間の再試行回数。
フィルタ オプション(Equal) × フィールドで読み取る必要がある値。
フィルタ オプションは、メタデータ フィールド名とその値のペアのリストです。それらは SAP DataSource からデータを読み取るときに適用するフィルタ条件を定義します。条件を満たすレコードのみが抽出されます。
フィルタキーは、スキーマ内のフィールドに対応します。ARRAYRECORDUNION ではなく、単純な型である必要があります。使用例:
フィールド名: MTART
値: FERT
フィルタ オプション(Range) × フィールドで読み取る必要がある値の下限と上限。
フィルタ オプションは、メタデータ フィールド名とその値のペアのリストです。それらは SAP DataSource からデータを読み取るときに適用するフィルタ条件を定義します。条件を満たすレコードのみが抽出されます。
フィルタキーは、スキーマ内のフィールドに対応します。それには低と高の形式があります。使用例:
フィールド名: ERDAT
低い値: 2023-11-01
高い値: 2023-11-30
フィルタ オプション(Less Equal) × フィールドの上限値。
フィルタ オプションは、メタデータ フィールド名とその値のペアのリストです。それらは SAP DataSource からデータを読み取るときに適用するフィルタ条件を定義します。条件を満たすレコードのみが抽出されます。
フィルタキーは、スキーマ内のフィールドに対応します。ARRAYRECORDUNION ではなく、単純な型である必要があります。使用例:
フィールド名: MATNR
値: 10008
フィルタ オプション(Greater Equal) × 読み取るためにフィールドで超えるべき値。
フィルタ オプションは、メタデータ フィールド名とその値のペアのリストです。それらは SAP DataSource からデータを読み取るときに適用するフィルタ条件を定義します。条件を満たすレコードのみが抽出されます。
フィルタキーは、スキーマ内のフィールドに対応します。ARRAYRECORDUNION ではなく、単純な型である必要があります。使用例:
フィールド名: MATNR
値: 10008
フィルタ オプション(Not Equal) × 読み取るためにフィールドで同じにしてはいけない値を定義します。
フィルタ オプションは、メタデータ フィールド名とその値のペアのリストです。それらは SAP DataSource からデータを読み取るときに適用するフィルタ条件を定義します。条件を満たすレコードのみが抽出されます。
フィルタキーは、スキーマ内のフィールドに対応します。ARRAYRECORDUNION ではなく、単純な型である必要があります。使用例:
フィールド名: MTART
値: FERT
生成するスプリット数 × パーティションを作成して、レコードを並行して抽出します。
ランタイム エンジンは、指定された数のパーティション(および SAP 接続)を作成しながら、レコードを抽出します。
この値を増やす場合は、SAP との同時接続が増加するため、注意してください
推奨: パイプラインごとに SAP 接続と、同時に実行されるパイプラインの合計数を計画します。
値が 0 の場合、または空白の場合、Cloud Data Fusion は、使用可能なエグゼキュータの数、抽出するレコード、パッケージ サイズに基づいて適切な値を選択します。
パッケージ サイズ(KB) × 単一の SAP ネットワーク呼び出しで抽出するレコードの数。これは、すべてのネットワーク抽出呼び出し中に SAP がメモリにバッファするレコードの数です。
このプロパティを設定する場合は注意が必要です。データを抽出する複数のデータ パイプラインによってメモリ使用量がピークに達し、Out of memory エラーによる障害が発生する可能性があります。
  • 正の整数を入力します。
  • 0 か空白の場合、プラグインでは標準値の 70,000 または適切に計算された値が使用されます。
  • Out of memory エラーでデータ パイプラインが失敗した場合は、パッケージ サイズを縮小するか、SAP の処理プロセスで使用できるメモリを増分してください。
追加の SAP 接続プロパティ × 追加の SAP JCo プロパティを設定して、SAP JCo のデフォルトをオーバーライドします。たとえば、jco.destination.pool_capacity = 10 を設定すると、デフォルトの接続プールの容量がオーバーライドされます。

データ型マッピング

次の表は、SAP のデータ型と対応する Cloud Data Fusion のタイプの一覧です。

SAP のデータ型 ABAP のタイプ SAP description Cloud Data Fusion のデータ型
INT1(数値) b 1 バイトの整数 int
INT2(数値) s 2 バイトの整数 int
INT4(数値) i 4 バイトの整数 int
INT8(数値) 8 8 バイトの整数 long
DEC(数値) p BCD 形式でパックされた番号(DEC) decimal
DF16_DECDF16_RAW(数値) a 10 進浮動小数点数 8 バイト IEEE 754r double
DF34_DECDF34_RAW(数値) e 10 進浮動小数点数 16 バイト IEEE 754r double
FLTP(数値) f バイナリ形式の浮動小数点数 double
CHARLCHR(文字) c 文字列 文字列
SSTRINGGEOM_EWKB(文字) 文字列 文字列 文字列
STRING(文字) 文字列 文字列 CLOB バイト
NUMCACCP(文字) n 数値テキスト 文字列
RAWLRAW(バイト) x バイナリデータ バイト
RAWSTRING(バイト) xstring バイト文字列 BLOB バイト
DATS(日付/時刻) d 日付 日付
TIMS(日付/時刻) t 時間 時間
TIMS(日付/時刻) utcl Utclong), TimeStamp timestamp

制限事項

パイプラインが正しく定義され、実行されるようにするには、次のプラグインの制限事項を確認してください。

  • 5 万を超えるパッケージ サイズはサポートされていません。
  • 差分抽出をサポートしていないデータソースは、同期モードでは失敗します。
  • カスタム データソースでパッケージ サイズが処理されていない場合、大規模なデータ抽出でパイプラインが失敗します。

ユースケース

次の 2 つの抽出コンテキストがサポートされています。

  • データソースまたはエクストラクタ(SAPI)
  • ODP コンテキスト ABAP CDS(ABAP_CDS)

ODP プラグインは、両方のコンテキストで次の標準とカスタムのデータソースをサポートします。

ODP データソース コンテキスト 完全な抽出 差分抽出
事前提供済みの SAP Standard SAPI サポート対象 サポート対象
カスタム(Z*) SAPI サポート対象 サポート対象
事前提供済みの SAP Standard ABAP_CDS サポート対象 サポート対象
カスタム(Z*) ABAP_CDS サポート対象 サポート対象

次のステップ