SAP OData バッチソース

このガイドでは、SAP OData プラグインを使用するデータ パイプラインをデプロイ、構成、実行する方法について説明します。

Open Data Protocol(OData)を使用して、Cloud Data Fusion でバッチベースのデータ抽出のソースとして SAP を使用できます。SAP OData プラグインは、コーディングなしで SAP OData Catalog サービスからのデータ転送を構成して実行する際に活用できます。

サポートされている SAP OData Catalog サービスと DataSource の詳細については、サポートの詳細をご覧ください。Google Cloud での SAP の詳細については、Google Cloud での SAP の概要をご覧ください。

目標

  • SAP ERP システムを構成します(SAP でデータソースを有効にする)。
  • Cloud Data Fusion 環境にプラグインをデプロイします。
  • Cloud Data Fusion から SAP トランスポートをダウンロードし、SAP にインストールします。
  • Cloud Data Fusion と SAP ODP を使用して、SAP データを統合するためのデータ パイプラインを作成します。

始める前に

このプラグインを使用するには、次の分野でのドメインに関する知識が必要です。

  • Cloud Data Fusion でのパイプラインのビルド。
  • IAM によるアクセス管理
  • SAP Cloud とオンプレミスのエンタープライズ リソース プランニング(ERP)システムの構成

ユーザーロール

このページのタスクは、Google Cloud または SAP システムで次のロールを持つユーザーが行います。

ユーザーの種類 説明
Google Cloud 管理者 このロールを割り当てられたユーザーは、Google Cloud アカウントの管理者です。
Cloud Data Fusion ユーザー このロールを割り当てられているユーザーは、データ パイプラインを設計して実行することを承認されています。少なくとも、Cloud Data Fusion 閲覧者(roles/datafusion.viewer)のロールが付与されます。ロールベースのアクセス制御を使用している場合は、追加のロールが必要になることがあります。
SAP 管理者 このロールを割り当てられたユーザーは、SAP システムの管理者です。SAP サービスサイトからソフトウェアをダウンロードするためのアクセス権を付与されています。これは IAM のロールではありません。
SAP ユーザー このロールを割り当てられているユーザーは、SAP システムに接続することを承認されています。 これは IAM のロールではありません。

OData 抽出の前提条件

  1. OData Catalog サービスは、SAP システムで有効にする必要があります。

  2. データは OData サービスに入力する必要があります。

SAP システムの前提条件

  • SAP NetWeaver 7.02 から SAP NetWeaver リリース 7.31 まで、OData と SAP Gateway の機能は、次の SAP ソフトウェア コンポーネントによって提供されています。

    • IW_FND
    • GW_CORE
    • IW_BEP
  • SAP NetWeaver リリース 7.40 以降では、すべての機能はコンポーネント SAP_GWFND で使用できます。これは SAP NetWeaver で使用できるようにする必要があります。

省略可: SAP トランスポート ファイルをインストールする

SAP へのロード バランシングの呼び出しに必要な SAP コンポーネントは、zip ファイル(1 つの cofile と 1 つのデータファイルで構成される 1 つのトランスポート リクエスト)としてアーカイブされた SAP トランスポート ファイルとして提供されます。このステップによって、SAP で使用可能な作業プロセスに基づいて、SAP への複数の同時呼び出しを制限できます。

ZIP ファイルのダウンロードは、Cloud Data Fusion Hub にプラグインをデプロイするときに使用できます。

トランスポート ファイルを SAP にインポートすると、次の SAP OData プロジェクトが作成されます。

  • OData プロジェクト

    • /GOOG/GET_STATISTIC
    • /GOOG/TH_WPINFO
  • ICF サービスノード: GOOG

SAP トランスポートをインストールするには、次の手順に沿って操作します。

ステップ 1: トランスポート リクエスト ファイルをアップロードする

  1. SAP インスタンスのオペレーティング システムにログインします。
  2. SAP トランザクション コード AL11 を使用して、DIR_TRANS フォルダのパスを取得します。通常、パスは /usr/sap/trans/ です。
  3. cofile を DIR_TRANS/cofiles フォルダにコピーします。
  4. データファイルを DIR_TRANS/data フォルダにコピーします。
  5. データと cofile の ユーザーとグループを <sid>admsapsys に設定します。

ステップ 2: トランスポート リクエスト ファイルをインポートする

SAP 管理者は、次のいずれかの方法でトランスポート リクエスト ファイルをインポートできます。

オプション 1: SAP 転送管理システムを使用してトランスポート リクエスト ファイルをインポートする
  1. SAP 管理者として SAP システムにログインします。
  2. トランザクション STMS を入力します。
  3. [概要] > [インポート] をクリックします
  4. [キュー] 列で、現在の SID をダブルクリックします。
  5. [その他] > [その他のリクエスト] > [追加] をクリックします。
  6. トランスポート リクエスト ID を選択し、[続行] をクリックします。
  7. インポート キューでトランスポート リクエストを選択し、[リクエスト] > [インポート] をクリックします。
  8. クライアント番号を入力します。
  9. [オプション] タブで、[オリジナルを上書きする] と [無効なコンポーネント バージョンを無視する] を選択します(選択可能な場合)。

    (省略可)後で実施するトランスポートの再インポートをスケジュール設定するには、[後でインポートするためにトランスポート リクエストをキューに残す]、[トランスポート リクエストを再度インポートする] を選択します。これは、SAP システムのアップグレードとバックアップの復元を行う際に有用です。

  10. [続行] をクリックします。

  11. インポートを確認するには、SE80SU01 などの任意のトランザクションを使用します。

オプション 2: オペレーティング システムレベルでトランスポート リクエスト ファイルをインポートする
  1. SAP システム管理者として SAP システムにログインします。
  2. 次のコマンドを実行して、適切なリクエストをインポート バッファに追加します。

    tp addtobuffer TRANSPORT_REQUEST_ID SID
    

    例: tp addtobuffer IB1K903958 DD1

  3. 次のコマンドを実行して、トランスポート リクエストをインポートします。

    tp import TRANSPORT_REQUEST_ID SID client=NNN U1238
    

    NNN は、クライアント番号に置き換えます(例: tp import IB1K903958 DD1 client=800 U1238)。

  4. SE80SU01 などの適切なトランザクションを使用して、関数モジュールと承認ロールが正常にインポートされていることを確認します。

SAP カタログ サービス用のフィルタ可能な列のリストを取得する

フィルタ条件には一部の DataSource 列のみを使用できます(設計による SAP の制限です)。

SAP カタログ サービス用のフィルタ可能列のリストを取得するには、次の手順に沿って操作します。

  1. SAP システムにログインします。
  2. t-code SEGW に移動します。
  3. OData プロジェクト名を入力します。これはサービス名の部分文字列です。次に例を示します。

    • サービス名: MM_PUR_POITEMS_MONI_SRV
    • プロジェクト名(MM_PUR_POITEMS_MONI
  4. Enter キーを押します。

  5. フィルタするエンティティに移動し、[プロパティ] を選択します。

    [プロパティ] に表示されるフィールドをフィルタとして使用できます。サポートされているオペレーションは EqualBetween(Range)です。

    SAP でプロパティをフィルタする

式言語でサポートされる演算子のリストについては、OData オープンソース ドキュメント URI 規則(OData バージョン 2.0)をご覧ください。

フィルタを使用した URI の例:

/sap/opu/odata/sap/MM_PUR_POITEMS_MONI_SRV/C_PurchaseOrderItemMoni(P_DisplayCurrency='USD')/Results/?$filter=(PurchaseOrder eq '4500000000')

SAP ERP システムを構成する

SAP OData プラグインは、データが抽出される各 SAP Server でアクティブ化された OData サービスを使用します。この OData サービスは、SAP が提供する標準または SAP システムで開発されたカスタム OData サービスとして設定できます。

ステップ 1: SAP Gateway 2.0 をインストールする

SAP(Basis)管理者は、NetWeaver のリリースに応じて、SAP ソースシステムで SAP Gateway 2.0 コンポーネントが使用可能であることを確認する必要があります。SAP Gateway 2.0 のインストールの詳細については、SAP ONE Support Launchpad にログインして注 1569624 をご覧ください(ログインが必要です)。

ステップ 2: OData サービスを有効にする

移行元システムで必要な OData サービスを有効にします。詳細については、フロントエンド サーバー: OData サービスを有効にするをご覧ください。

ステップ 3: 承認ロールを作成する

DataSource に接続するには、SAP で必要な承認を含む承認ロールを作成し、SAP ユーザーに付与します。

SAP で承認ロールを作成するには、次の手順を行います。

  1. SAP GUI で、トランザクション コード PFCG を入力して [Role Maintenance] ウィンドウを開きます。
  2. [ロール] フィールドにロールの名前を入力します。

    例: ZODATA_AUTH

  3. [Single Role] をクリックします。

    [Create Roles] ウィンドウが開きます。

  4. [説明] 欄に説明を入力し、[保存] をクリックします。

    例: Authorizations for SAP OData plugin

  5. [承認] タブをクリックします。ウィンドウのタイトルが [ロールを変更] に変わります。

  6. [認証データの編集とプロファイルの作成] で、 [認証データの変更] をクリックします。

    [テンプレートを選択] ウィンドウが開きます。

  7. [テンプレートを選択しない] をクリックします。

    [Change role: Authorizations] ウィンドウが開きます。

  8. [手動] をクリックします。

  9. 次の SAP 承認テーブルに示されている承認を指定してください。

  10. [保存] をクリックします。

  11. 承認のロールを有効にするには、生成アイコンをクリックします。

SAP の承認

オブジェクト クラス オブジェクト クラス テキスト 承認オブジェクト 承認オブジェクトのテキスト 承認 テキスト
AAAB アプリケーション間承認オブジェクト S_SERVICE 外部サービスの開始時に確認 SRV_NAME プログラム、トランザクション、または関数モジュール名 *
AAAB アプリケーション間承認オブジェクト S_SERVICE 外部サービスの開始時に確認 SRV_TYPE チェックフラグと承認のデフォルト値のタイプ HT
FI 財務会計 F_UNI_HIER ユニバーサル階層アクセス ACTVT アクティビティ 03
FI 財務会計 F_UNI_HIER ユニバーサル階層アクセス HRYTYPE 階層タイプ *
FI 財務会計 F_UNI_HIER ユニバーサル階層アクセス HRYID 階層 ID *

Cloud Data Fusion で Cloud Data Fusion ユーザーとしてデータ パイプラインを設計して実行するには、DataSource に接続するプラグインを構成するための SAP ユーザー認証情報(ユーザー名とパスワード)が必要です。

SAP ユーザーは、Communications または Dialog のタイプであることが必要です。SAP ダイアログ リソースの使用を回避するには、Communications タイプをおすすめします。ユーザーは、SAP トランザクション コード SU01 を使用して作成できます。

省略可: ステップ 4: 接続を保護する

プライベート Cloud Data Fusion インスタンスと SAP 間のネットワーク通信を保護できます。

接続を保護するには、次の手順に沿って操作します。

  1. SAP 管理者は X509 証明書を生成する必要があります。証明書を生成するには、SSL サーバー PSE の作成をご覧ください。
  2. Google Cloud 管理者は、X509 ファイルを、Cloud Data Fusion インスタンスと同じプロジェクト内の読み取り可能な Cloud Storage バケットにコピーし、プラグインを構成するときにバケットのパスを、それを入力する Cloud Data Fusion ユーザーに渡す必要があります。
  3. Google Cloud 管理者は、パイプラインを設計して実行する Cloud Data Fusion ユーザーに X509 ファイルの読み取り権限を付与する必要があります。

省略可: ステップ 5: カスタム OData サービスを作成する

SAP でカスタム OData サービスを作成することで、データの抽出方法をカスタマイズできます。

  • カスタム OData サービスを作成するには、初心者向けの OData サービスの作成をご覧ください。
  • Core Data Service(CDS)ビューを使用してカスタム OData サービスを作成するには、OData サービスを作成する方法と CDS ビューを OData サービスとして公開するをご覧ください。
  • カスタム OData サービスでは、$top$skip$count の各クエリがサポートされている必要があります。これらのクエリにより、プラグインはデータを順次抽出および並列抽出するためにデータを分割できます。使用する場合は、$filter$expand、または $select のクエリもサポートされている必要があります。

Cloud Data Fusion を設定する

Cloud Data Fusion インスタンスと SAP サーバー間の通信が有効になっていることを確認します。プライベート インスタンスの場合は、ネットワーク ピアリングを設定します。 SAP システムがホストされているプロジェクトでネットワーク ピアリングが確立されると、Cloud Data Fusion インスタンスに接続するために追加の構成を行う必要はありません。SAP システムと Cloud Data Fusion インスタンスの両方が、同じプロジェクト内に存在する必要があります。

ステップ 1: Cloud Data Fusion 環境を設定する

プラグイン用に Cloud Data Fusion 環境を構成するには:

  1. インスタンスの詳細(

    1. Google Cloud コンソールで、Cloud Data Fusion のページに移動します。

    2. [インスタンス]、インスタンス名の順にクリックして、[インスタンスの詳細] ページに移動します。

      [インスタンス] に移動

    )に移動します。

  2. インスタンスがバージョン 6.4.0 以降にアップグレードされていることを確認します。インスタンスが以前のバージョンの場合は、アップグレードする必要があります。

  3. [インスタンスの表示] をクリックします。 Cloud Data Fusion UI が開いたら、[Hub] をクリックします。

  4. [SAP] タブ > [SAP OData] を選択します。

    [SAP] タブが表示されない場合は、SAP インテグレーションのトラブルシューティングをご覧ください。

  5. [SAP OData プラグインのデプロイ] をクリックします。

    プラグインが [Studio] ページの [ソース] メニューに表示されます。

    Data Fusion Studio ページの [ソース] メニューの OData

ステップ 2: プラグインを構成する

SAP OData プラグインは、SAP DataSource のコンテンツを読み取ります。

レコードをフィルタするには、[SAP OData プロパティ] ページで次のプロパティを構成します。

プロパティ名 説明
Basic
参照名 リネージまたはメタデータのアノテーションのために、このソースを一意に識別するために使用される名前。
SAP OData ベース URL SAP Gateway OData ベース URL(https://ADDRESS:PORT/sap/opu/odata/sap/ のように完全な URL パスを使用します)。
OData Version サポートされている SAP OData のバージョン。
サービス名 エンティティの抽出元である SAP OData サービスの名前。
エンティティ名 抽出されるエンティティの名前(Results など)。接頭辞(C_PurchaseOrderItemMoni/Results など)を使用できます。このフィールドは、Category パラメータと Entity パラメータをサポートします。例:
  • カテゴリのパラメータ: C_PurchaseOrderItemMoni(P_DisplayCurrency='USD')/Results
  • エンティティのパラメータ: C_PurchaseOrderItemMoni/Results('.1~4500000000.2~00010-PUSD')
  • カテゴリとエンティティのパラメータ: C_PurchaseOrderItemMoni('USD')/Results('.1~4500000000.2~00010-PUSD')
認証情報*
SAP タイプ 基本(ユーザー名とパスワードを使用)
SAP ログオン ユーザー名 SAP ユーザー名
推奨: SAP ログオンのユーザー名が定期的に変更される場合は、 マクロを使用します。
SAP ログオン パスワード SAP ユーザーのパスワード
推奨: パスワードなどの機密性の高い値には、 セキュアなマクロを使用します。
SAP X.509 クライアント証明書
ABAP 用 SAP NetWeaver アプリケーション サーバーでの X.509 クライアント証明書の使用をご覧ください)。
GCP プロジェクト ID プロジェクトのグローバルに一意の識別子。[X.509 Certificate Cloud Storage Path] フィールドにマクロ値が含まれていない場合、このフィールドは必須です。
GCS パス ユーザーがアップロードした X.509 証明書を含む Cloud Storage バケットパス。これは、要件に基づいて、安全な呼び出しのために SAP アプリケーション サーバーに対応します(接続のセキュリティ保護ステップをご覧ください)。
パスフレーズ 指定された X.509 証明書に対応するパスフレーズ。
[スキーマの取得] ボタン SAP からのメタデータに基づいてスキーマを生成し、SAP のデータタイプを対応する Cloud Data Fusion のデータタイプに自動的にマッピングします([検証] ボタンと同一の機能)。
上級
フィルタ オプション フィールドで読み取る必要がある値を示します。このフィルタ条件を使用して、出力データの量を制限します。たとえば、「Price Gt 200」は、「Price」フィールド値が「200」より大きいレコードを選択します。(SAP カタログ サービス用のフィルタ可能な列のリストを取得するをご覧ください)。
フィールドの選択 抽出されたデータ内に保持するフィールド(例: カテゴリ、価格、名前、サプライヤー/住所)。
フィールドを展開する 抽出された出力データで展開する複雑なフィールドのリスト(例: 製品/サプライヤー)。
スキップする行数 スキップする行の合計数(例: 10)。
取得する行数 抽出する行の合計数。
生成するスプリット数 入力データのパーティション分割に使用されるスプリット数。パーティションが増加すると並列処理のレベルは高くなりますが、より多くのリソースとオーバーヘッドが必要になります。
空白のままにすると、プラグインによって最適な値が選択されます(推奨)。
バッチサイズ SAP への各ネットワーク呼び出しで取得する行数。サイズが小さいと、ネットワーク呼び出しが頻繁に行われ、関連するオーバーヘッドが繰り返されます。サイズが大きくなると、SAP でのデータ取得が遅くなり、過剰なリソース使用量の原因となる可能性があります。値が 0 に設定されている場合、デフォルト値は 2500 で、各バッチで取得する行の上限は 5000 です。
読み取りタイムアウト SAP OData サービスを待機する時間(秒)。デフォルト値は 300 です。制限なしの場合は 0 に設定します。

* マクロは、認証情報プロパティでサポートされています。マクロを使用すると、SAP 接続を集中的に管理できます。たとえば、ランタイム パラメータや Argument Setter プラグインを使用して、実行時に値を設定できます。

サポートされている OData タイプ

次の表に、SAP アプリケーションで使用される OData v2 データ型と Cloud Data Fusion データ型のマッピングを示します。

OData タイプ 説明(SAP) Cloud Data Fusion のデータ型
数値
SByte 符号付き 8 ビット整数値 int
Byte 符号なし 8 ビット整数値 int
Int16 符号付き 16 ビット整数値 int
Int32 符号付き 32 ビット整数値 int
Int64 文字「L」が付加された符号付き 64 ビット整数値
例: 64L-352L
long
Single およそ ± 1.18e -38 ~ ± 3.40e +38 の値を表すことができる 7 桁の精度を持つ浮動小数点数で、文字「f」を付加します。
例: 2.0f
float
Double およそ 2.23e -308 ~ ± 1.79e +308 の範囲の値を表すことができる 15 桁の精度を持つ浮動小数点数で、文字「d」が付加されます。
例: 1E+10d2.029d2.0d
double
小数 固定精度とスケールを持つ数値。負の 10^255 + 1 から正の 10^255 -1 までの数値を表し、文字「M」または「m」が付加されます。
      例:2.345M
decimal
文字
GUID 16 バイト(128 ビット)の一意の ID 値。先頭は「guid」です。
      例: guid'12345678-aaaa-bbbb-cccc-ddddeeeeffff'
string
文字列 UTF-8 でエンコードされた固定長または可変長の文字データ string
Byte
バイナリ 「X」または「binary」で始まる固定または可変長のバイナリデータ(どちらも大文字と小文字が区別されます)
例: X'23AB'binary'23ABFF'
bytes
論理
ブール値 バイナリ値ロジックの数学的概念 boolean
日時
日時 1753 年 1 月 1 日午前 12 時 00 分 00 秒から 9999 年 12 月 31 日午後 11 時 59 分 59 秒までの値を持つ日時 timestamp
Time 0:00:00.x~23:59:59.y の範囲の時刻(x と y は精度によって異なる) time
DateTimeOffset オフセットとしての日時(GMT からの分単位)。1753 年 1 月 1 日午前 12 時 00 分 00 秒から 9999 年 12 月 31 日午後 11 時 59 分 59 秒までの値を持つ timestamp
複合施設
ナビゲーション プロパティと非ナビゲーション プロパティ(多重度 = *) 多重度が 1 対多の型のコレクション。 array
string
int
プロパティ(多重度 = 0.1) 多重度が 1 対 1 の他の複雑な型への参照 record

検証

右上の [検証] または [スキーマを取得] をクリックします。

プラグインはプロパティを検証し、SAP のメタデータに基づいてスキーマを生成します。SAP のデータ型は対応する Cloud Data Fusion のデータ型に自動的にマッピングされます。

データ パイプラインを実行する

  1. パイプラインをデプロイしたら、上部中央パネルで [構成] をクリックします。
  2. [リソース] を選択します。
  3. 必要に応じて、パイプラインで使用されるデータの全体的なサイズと変換数に基づいて、[エグゼキュータの CPU] と [メモリ] を変更します。
  4. [保存] をクリックします。
  5. データ パイプラインを開始するには、[実行] をクリックします。

パフォーマンス

このプラグインは、Cloud Data Fusion の並列化機能を使用します。次のガイドラインは、ランタイム環境を構成して、ランタイム エンジンに十分なリソースを提供し、意図したレベルの並列性とパフォーマンスを達成する際に有効です。

プラグインの構成を最適化する

推奨: SAP システムのメモリ設定に精通されていない場合は、[生成するスプリット数] と [バッチサイズ] は空白(未指定)のままにしておきます。

パイプライン実行時のパフォーマンスを改善するには、次の構成を使用します。

  • 生成するスプリット数: 816 の値をおすすめします。ただし、SAP 側で適切な構成を使用して、32 または 64 に引き上げることができます(SAP の作業プロセスに適切なメモリリソースを割り当てます)。この構成により、Cloud Data Fusion 側の並列処理が改善されます。ランタイム エンジンは、指定された数のパーティション(および SAP 接続)を作成し、同時にレコードを抽出します。

    • 構成サービス(SAP トランスポート ファイルをインポートするときにプラグインに付属)が使用可能な場合: プラグインはデフォルトで SAP システムの構成を使用します。スプリットは、SAP で使用可能なダイアログ処理プロセスの 50% です。注: 構成サービスは、S4HANA システムからのみインポートできます。

    • 構成サービスが利用できない場合、デフォルトは 7 分割です。

    • いずれの場合も、別の値を指定すると、指定した値はデフォルトの分割値よりも優先されます。ただし、SAP で使用可能なダイアログ プロセスから 2 つの分割を差し引いた値が制限されます。

    • 抽出するレコード数が 2500 より少ない場合、スプリット数は 1 です。

  • バッチサイズ: SAP へのすべてのネットワーク呼び出しでフェッチするレコードの数。バッチサイズが小さいと、ネットワーク呼び出しが頻繁に行われ、関連するオーバーヘッドが繰り返されます。デフォルトでは、最小数は 1000、最大数は 50000 です。

詳細については、OData エンティティの上限をご覧ください。

Cloud Data Fusion リソースの設定

推奨: エグゼキュータごとに 1 つの CPU と 4 GB のメモリを使用します(この値は各エグゼキュータ プロセスに適用されます)。これらは [構成] > [リソース] ダイアログで設定します。

Cloud Data Fusion の [構成] ウィンドウでリソース設定を最適化する

Dataproc クラスタの設定

推奨: 少なくとも、意図したスプリット数よりも多い CPU 総数を(ワーカー間で)割り当ててください(プラグインの構成を参照)。

各ワーカーには、Dataproc の設定で CPU ごとに 6.5 GB 以上のメモリを割り当てることが必要です(Cloud Data Fusion のエグゼキュータごとに使用可能な 4 GB 以上のメモリが割り当てられます)。その他の設定はデフォルト値のままにできます。

推奨: 永続的な Dataproc クラスタを使用して、データ パイプラインのランタイムを削減します(これにより、数分以上を要する場合があるプロビジョニングの手順が不要になります)。これは、Compute Engine 構成セクションで設定します。

構成とスループットの例

以降のセクションでは、開発環境と本番環境の構成とスループットの例について説明します。

開発とテスト構成の例

  • 8 個のワーカーを持つ Dataproc クラスタ(それぞれ 4 個の CPU と 26 GB のメモリ)。最大 28 個のスプリットを生成します。
  • 2 個のワーカーを持つ Dataproc クラスタ(それぞれ 8 個の CPU と 52 GB のメモリ)。最大 12 個のスプリットを生成します。

本番環境の構成とスループットの例

  • 8 個のワーカーを持つ Dataproc クラスタ(それぞれ 8 個の CPU と 32 GB のメモリ)。最大 32 個のスプリットを生成します(使用可能な CPU の半分)。
  • 16 個のワーカーを持つ Dataproc クラスタ(それぞれ 8 個の CPU と 32 GB のメモリを搭載)。最大 64 個のスプリットを生成します(使用可能な CPU の半分)。

SAP S4HANA 1909 本番環境ソース システムのスループットの例

次の表に、スループットの例を示します。表示されるスループットは、特に指定しない限り、フィルタ オプションなしです。フィルタ オプションを使用すると、スループットが低下します。

バッチサイズ スプリット OData サービス 合計行数 抽出された行数 スループット(1 秒あたりの行数)
1000 4 ZACDOCA_CDS 5.37 M 5.37 M 1069
2500 10 ZACDOCA_CDS 5.37 M 5.37 M 3384
5000 8 ZACDOCA_CDS 5.37 M 5.37 M 4630
5000 9 ZACDOCA_CDS 5.37 M 5.37 M 4817

SAP S4HANA クラウド本番環境ソース システムのスループットの例

バッチサイズ スプリット OData サービス 合計行数 抽出された行数 スループット(GB / 時間)
2500 40 TEST_04_UOM_ODATA_CDS/ 201 M 10 M 25.48
5000 50 TEST_04_UOM_ODATA_CDS/ 201 M 10 M 26.78

サポートの詳細

このプラグインは、次のユースケースをサポートしています。

サポートされている SAP のプロダクトとバージョン

  • サポートされているソースには、SAP S4/HANA 1909 以降、SAP Cloud 上の S4/HANA、OData サービスを公開できる SAP アプリケーションが含まれます。

  • SAP への呼び出しのロード バランシング用のカスタム OData サービスを含むトランスポート ファイルは、S4/HANA 1909 以降でインポートする必要があります。このサービスは、プラグインが並列で読み取ることができるスプリット数(データパーティション)の計算に役立ちます(スプリット数をご覧ください)。

  • OData バージョン 2 がサポートされています。

  • プラグインは、Google Cloud にデプロイされた SAP S/4HANA サーバーでテストされました。

SAP OData Catalog サービスは抽出用にサポートされています

プラグインは、次の DataSource タイプをサポートしています。

  • トランザクション データ
  • OData を通じて公開される CDS ビュー
  • マスターデータ

    • 属性
    • テキスト
    • 階層

SAP ノート

抽出前に SAP Note は必要ありませんが、SAP システムで SAP Gateway を使用できる必要があります。詳細については、Note 1560585 をご覧ください(この外部サイトには SAP ログインが必要です)。

データ量またはレコードの幅の上限

抽出されるデータの量に対して定義された上限はありません。Google で、1 回の呼び出しで抽出された最大 600 万行をテストしたところ、レコードの幅は 1 KB でした。クラウド上の SAP S4/HANA については、1 回の呼び出しで最大 1,000 万行が抽出され、レコードの幅は 1 KB でした。

予想されるプラグインのスループット

[パフォーマンス] セクションのガイドラインに従って構成された環境の場合、プラグインは約 38 GB / 時間の抽出が可能です。実際のパフォーマンスは、Cloud Data Fusion と SAP システムの負荷またはネットワーク トラフィックによって異なる場合があります。

デルタ(変更データ)抽出

デルタ抽出はサポートされていません。

エラーのシナリオ

実行時に、プラグインは Cloud Data Fusion データ パイプライン ログにログエントリを書き込みます。これらのエントリには、識別のために CDF_SAP が接頭辞として付加されます。

設計時に、プラグインの設定を検証すると、[プロパティ] タブにメッセージが表示され、赤でハイライト表示されます。

次のリストに、エラーの一部を示します。

メッセージ ID メッセージ 推奨される対処方法
なし Required property 'CONNECTION_PROPERTY' for connection type 'CONNECTION_PROPERTY_SETTING'. 実際の値またはマクロ変数を入力します。
なし Invalid value for property 'PROPERTY_NAME'. 負でない整数(小数点のない 0 以上の整数)またはマクロ変数を入力します。
CDF_SAP_ODATA_01505 Failed to prepare the Cloud Data Fusion output schema. Please check the provided runtime macros value. 指定したマクロ値が正しいことを確認します。
なし SAP X509 certificated 'STORAGE_PATH' is missing. Please make sure the required X509 certificate is uploaded to your specified Cloud Storage bucket 'BUCKET_NAME'. 指定した Cloud Storage のパスが正しいことを確認します。
CDF_SAP_ODATA_01532 SAP OData 接続の問題に関連する一般的なエラーコード
Failed to call given SAP OData service. Root Cause: MESSAGE.
メッセージに表示された根本原因を確認し、適切な措置を講じます。
CDF_SAP_ODATA_01534 SAP OData サービスエラーに関連する一般的なエラーコード。
Service validation failed. Root Cause: MESSAGE.
メッセージに表示された根本原因を確認し、適切な措置を講じます。
CDF_SAP_ODATA_01503 Failed to fetch total available record count from SAP_ODATA_SERVICE_ENTITY_NAME. Root Cause: MESSAGE. メッセージに表示された根本原因を確認し、適切な措置を講じます。
CDF_SAP_ODATA_01506 No records found to extract in SAP_ODATA_SERVICE_ENTITY_NAME. Please ensure that the provided entity contains records. メッセージに表示された根本原因を確認し、適切な措置を講じます。
CDF_SAP_ODATA_01537 Failed to process records for SAP_ODATA_SERVICE_ENTITY_NAME. Root Cause: MESSAGE. メッセージに表示された根本原因を確認し、適切な措置を講じます。
CDF_SAP_ODATA_01536 Failed to pull records from SAP_ODATA_SERVICE_ENTITY_NAME. Root Cause: MESSAGE. メッセージに表示された根本原因を確認し、適切な措置を講じます。
CDF_SAP_ODATA_01504 Failed to generate the encoded metadata string for the given OData service SAP_ODATA_SERVICE_NAME. Root Cause: MESSAGE. メッセージに表示された根本原因を確認し、適切な措置を講じます。
CDF_SAP_ODATA_01533 Failed to decode the metadata from the given encoded metadata string for service SAP_ODATA_SERVICE_NAME. Root Cause: MESSAGE. メッセージに表示された根本原因を確認し、適切な措置を講じます。

次のステップ