SAP ODP バッチソース

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

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

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

ソフトウェア Versions
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 コネクタを設定します。
  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 クライアント] フィールドに、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. [抽出タイプ] フィールドで、データ抽出のタイプを選択します。デフォルトは [Full (all data)] です。

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

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

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

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

          1. [SAP ODP サブスクライバー名] フィールドで、有効な 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 DataSource 名を入力します。

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

      8. [JCo Library 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 種類のデータ抽出をサポートしています。
  • Full (all data): 使用可能なすべてのデータを抽出します。
  • 同期(前回の実行に基づく自動選択): 前回の実行タイプに基づいて、完全、デルタ(増分)、または復元(最後の実行からの復元)モードを実行する必要性の有無と 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 バイトの整数 整数
INT2(数値) s 2 バイトの整数 整数
INT4(数値) i 4 バイトの整数 整数
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 文字列 string
SSTRINGGEOM_EWKB(文字) string 文字列 string
STRING(文字) string 文字列 CLOB バイト
NUMCACCP(文字) n 数値テキスト string
RAWLRAW(バイト) x バイナリデータ バイト
RAWSTRING(バイト) xstring バイト文字列 BLOB バイト
DATS(日付/時刻) d Date date
TIMS(日付/時刻) t 時間 時間帯
TIMS(日付/時刻) utcl Utclong), TimeStamp タイムスタンプ

制限事項

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

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

ユースケース

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

  • DataSources または Extractors(SAPI)
  • ODP コンテキスト ABAP CDS(ABAP_CDS)

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

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

次のステップ