SAP ODP プラグインの概要

このガイドでは、SAP ODP プラグインを使用するデータ パイプラインをデプロイ、構成、実行する方法について説明します。SAP は、オペレーショナル データ プロビジョニング(ODP)を使用して、Cloud Data Fusion でのバッチベースおよびデルタベースのデータ抽出のソースとして使用できます。

このプラグインを使用すると、SAP アプリケーションから Cloud Data Fusion への一括データ統合を実施できます。SAP DataSources から一括データ移行を、コーディングすることなく構成して実行できます。

抽出用にサポートされている SAP アプリケーションと DataSource については、よくある質問をご覧ください。Google Cloud 上の SAP の詳細については、Google Cloud での SAP の概要をご覧ください。

目標

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

始める前に

To use this plugin, you will need domain knowledge in the following areas:

  • Building pipelines in Cloud Data Fusion
  • Access management with IAM
  • Configuring SAP Cloud and on-premises enterprise resource planning (ERP) systems

ユーザーロール

The tasks on this page are performed by people with the following roles in Google Cloud or in their SAP system:

User type Description
Google Cloud Admin Users assigned this role are administrators of Google Cloud accounts.
Cloud Data Fusion User Users assigned this role are authorized to design and run data pipelines. They are granted, at minimum, the Data Fusion Viewer ( roles/datafusion.viewer) role. If you are using role-based access control, you might need additional roles.
SAP Admin Users assigned this role are administrators of the SAP system. They have access to download software from the SAP service site. It is not an IAM role.
SAP User Users assigned this role are authorized to connect to an SAP system. It is not an IAM role.

ODP 抽出の前提条件

  1. DataSource は SAP システムで有効にする必要があります。

  2. データは DataSource に入力する必要があります。

  3. ODP 抽出を行うには、DataSource を有効にする必要があります。有効になっているかどうかを確認するには、次の手順に従います。

    1. SAP システムにログインします。T コード SE16N に移動します。
    2. テーブル名に ROOSATTR を指定し、データソース名を [OLTPSOURCE] に入力します。
    3. [実行] をクリックするか、F8 を押します。
    4. [EXPOSE_EXTERNAL] フィールドを X とマークすると、ODP 抽出に DataSource を使用できます。
  4. この DataSource がこのテーブルのリストに含まれていない場合や、[EXPOSE_EXTERNAL] フィールドが空白の場合、ODP 抽出用の DataSource を公開する手順は次のとおりです。

    1. SAP システムにログインします。t-code SA38 に移動します。
    2. プログラム名「RODPS_OS_EXPOSE」を入力し、[実行] をクリックします。
    3. DataSource 名を入力し、[DataSource のリリース] をクリックします。
    4. トランスポートの変更内容を保存します。

データ抽出モード

プラグインでは次のデータ抽出モードがサポートされています。

  • フル: すべてのデータを抽出します。
  • 同期: SAP の以前の実行ステータスに基づいて、現在の実行に対して完全(すべてのデータ)、デルタ(増分変更)、抽出(最後の実行を繰り返し)の抽出モードを使用するかを決定します。

DataSource のフィルタ可能列

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

フィールド情報を取得するには、次の手順に沿って操作します。

  1. SAP システムにログインします。t-code RSA3 に移動します。
  2. DataSource 名を指定し、[Enter] を押します。

    [選択] セクションに表示されているフィールドをフィルタとして使用できます。サポートされているオペレーションは Equalbetween(Range)です。

SAP ERP システムを構成する

SAP ODP で使用されるリモート機能モジュール(RFM)は、データが抽出される各 SAP Server にインストールする必要があります。この RFM は、SAP トランスポートとして配信されます。

SAP システムを構成する手順は次のとおりです。

  1. Cloud Data Fusion ユーザーは、SAP トランスポートを含む zip ファイルをダウンロードし、SAP 管理者に提供する必要があります。ダウンロードするには、Hub のプラグインで提供されるリンクを使用します。Cloud Data Fusion の設定をご覧ください。
  2. SAP 管理者は、SAP トランスポートを SAP システムにインポートし、作成されたオブジェクトを確認する必要があります。詳細については、SAP トランスポートのインストールをご覧ください。
  3. SAP ユーザーは、承認トランスポートをインポートするか、承認オブジェクトに基づいて承認ロールを作成できます。承認オブジェクトの詳細については、必要な SAP 承認をご覧ください。

DataSource の有効化

データを抽出するには、ソースの SAP システムで DataSource を有効にする必要があります。SAP でデータソースを有効にするには、次の手順に従います。

  1. トランザクション コード RSA5 に移動する
  2. DataSource のリストを展開します。
  3. [検索] をクリックします。
  4. DataSource 名を入力して [Enter] をクリックします。
  5. 検索が成功すると、結果リストに DataSource が表示されます。

    DataSource 名を選択し、 [Enter] をクリックします。

  6. DataSource を選択し、[DataSource を有効化] をクリックします。

  7. [オブジェクト ディレクトリ エントリの作成] ダイアログで、パッケージ名を入力し、[保存] をクリックします。

  8. [トランスポート可能なワークベンチ リクエストのプロンプト] ダイアログで、[リクエスト] フィールドにトランスポート番号を入力します。Enter キーを押します。

    選択した DataSource は SAP で有効になっています。

SAP トランスポート ファイルのインストール

SAP コンポーネントは、Cloud Data Fusion でデータ パイプラインを設計して実行するために必要です。これらのファイルは、zip ファイル(1 つのトランスポート リクエスト、1 つの cofile と 1 つのデータファイル)としてアーカイブされた SAP トランスポート ファイルとして配信されます。

次の表に、トランスポート リクエスト ID と関連ファイルを示します。

表 2: SAP の転送

トランスポート ID Cofile データファイル 内容
DE3K900079 K900079.DE3 R900079.DE3 RFC 対応関数モジュール
DE3K900042 K900042.DE3 R900042.DE3 承認のロール

トランスポートを SAP システムにインポートすると、次の SAP オブジェクトが作成されます。

  • RFC 対応関数モジュール:
    • /GOOG/ODP_DS_EXTRACT_DATA
    • /GOOG/ODP_DS_FETCH_DATA
    • /GOOG/ODP_DS_METADATA
  • 承認のロール: /GOOG/ODP_AUTH

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

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

  1. SAP システム管理者として SAP システムにログインします。
  2. cofile を /usr/sap/trans/cofiles フォルダにコピーします。
  3. データファイルを /usr/sap/trans/data フォルダにコピーします。

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

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

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

    (省略可)トランスポートの再インポートを後でスケジュールするには、[後でインポートするためにトランスポート リクエストをキューに残す]と[トランスポート リクエストを再度インポートする] を選択します。これは、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 承認

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

SAP Data Fusion でデータ パイプラインを設計、実行するための承認ロールを割り当てます。プラグインで提供される SAP トランスポートに含まれる承認ロール /GOOG/ODP_AUTH を割り当てるか、SAP で承認ロールを手動で作成します。

承認ロールを手動で作成するには、次の手順に沿って操作します。

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

    例: zcdf_role

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

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

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

    例: Authorizations for SAP ODP plugin

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

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

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

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

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

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

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

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

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

表 3: SAP の承認

オブジェクト クラス オブジェクト クラス テキスト 承認オブジェクト 承認オブジェクト テキスト 承認 テキスト
AAAB アプリケーション間承認オブジェクト S_RFC RFC アクセスの承認チェック ACTVT 作業内容 16
AAAB アプリケーション間承認オブジェクト S_RFC RFC アクセスの承認チェック RFC_NAME アクセスを許可する RFC オブジェクトの名前 /GOOG/CDF_ODP_FG,
/GOOG/ODP_DS_EXTRACT_DATA,
/GOOG/ODP_DS_FETCH_DATA,
/GOOG/ODP_DS_METADATA,
DDIF_FIELDINFO_GET,
RFCPING,
RFC_GET_FUNCTION_INTERFACE,
RODPS_REPL_ODP_CLOSE,
SAPTUNE_GET_SUMMARY_STATISTIC,
TH_WPINFO
AAAB アプリケーション間承認オブジェクト S_RFC RFC アクセスの承認チェック RFC_TYPE アクセスを許可する RFC オブジェクトのタイプ FUGR
FUNC
AAAB アプリケーション間承認オブジェクト S_TCODE トランザクション開始時のトランザクション コード チェック TCD トランザクション コード SM50
BC_A 基本: 管理 S_ADMI_FCD システム承認 S_ADMI_FCD システム管理機能 PADM,
ST0R
BC_A 基本: 管理 S_BTCH_ADM バックグラウンド処理: バックグラウンド管理者 BTCADMIN バックグラウンド管理者 ID Y
BC_A 基本: 管理 S_BTCH_JOB バックグラウンド処理: バックグラウンド ジョブのオペレーション JOBACTION ジョブ オペレーション RELE
BC_A 基本: 管理 S_BTCH_JOB バックグラウンド処理: バックグラウンド ジョブのオペレーション JOBGROUP グループのジョブの概要 RELE
RO 承認: BW Service API S_RO_OSOA SAP DataSource の承認 ACTVT 作業内容 03
RO 承認: BW Service API S_RO_OSOA SAP DataSource の承認 OLTPSOURCE DataSource(OSOA/OSOD) *
RO 承認: BW Service API S_RO_OSOA SAP DataSource の承認 OSOAAPCO DataSource のアプリケーション コンポーネント(OSOA/OSOD) *
RO 承認: BW Service API S_RO_OSOA SAP DataSource の承認 OSOAPART DataSource のサブオブジェクト DATA
* ユーザーが特定の DataSource で ODP パイプラインを実行できないようにするには、承認オブジェクト S_RO_OSOA にアスタリスク(*)を使用しないでください。代わりに、必要な DataSource 名を OLTPSOURCE で指定します(例: 2LIS_02_ITM, 0MATERIAL_ATTR)。

Cloud Data Fusion の設定

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

Cloud Data Fusion のユーザーの手順

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

  1. Google Cloud Console で、Cloud Data Fusion の [Instances] ページに移動します。

    [インスタンス] に移動

  2. 目的のインスタンスを選択します。

    [インスタンスの詳細] ページが開きます。

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

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

  5. [SAP] タブ > [SAP ODP] を選択します。

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

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

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

SAP 管理者と Google Cloud 管理者の手順

SAP 管理者は、次の JCo アーティファクトを SAP サポートサイトからダウンロードして Google Cloud 管理者に渡します。

  • 1 つのプラットフォームに依存しない(sapjco3.jar)
  • 1 つのプラットフォームに依存する(Unix では libsapjco3.so)

ファイルをダウンロードするには:

  1. [SAP コネクタ] ページに移動します。

  2. [SAP Java Connector] / [Tools and Services] をクリックします。ダウンロード用のプラットフォーム固有のリンクを選択できます。

  3. Cloud Data Fusion インスタンスを実行するプラットフォームを選択します。

    1. クラスタ内の VM に標準の Google Cloud イメージ(Cloud Data Fusion のデフォルト)を使用する場合は、[Linux for Intel 互換プロセッサ 64 ビット x86] を選択します。
    2. カスタム イメージを使用する場合は、対応するプラットフォームを選択します。
  4. Google Cloud 管理者は、JCo ファイルを読み取り可能な Cloud Storage バケットにコピーする必要があります。Cloud Data Fusion ユーザーのバケットパスを指定し、Cloud Data Fusion の対応するプラグイン プロパティに入力します。SAP JCo Library GCS Pathプラグインの構成)。

  5. Google Cloud 管理者は、設計環境の Cloud Data Fusion サービス アカウントと実行環境の Dataproc サービス アカウントに、2 つのファイルに対する読み取り権限を付与する必要があります。詳細については、Cloud Data Fusion のサービス アカウントをご覧ください。

プラグインの構成

SAP ODP プラグインは、SAP DataSource の内容を読み取ります。

レコードをフィルタリングするには、SAP ODP に対して次のプロパティを構成します。

基本

  • 参照名: リネージ、このメタデータのアノテーションなどのために、このソースを一意に識別するために使用される名前。
  • SAP クライアント: 使用する SAP クライアント(例: 100)。
  • SAP の言語: SAP ログオン言語(例: EN)。
  • Connection Type: SAP Connection Type(Direct または Load Balancing)。1 つのタイプを選択すると、使用可能な次のフィールドが変更されます。

    直接接続の場合 {:#direct-connection}:

    • SAP アプリケーション サーバーのホスト: SAP サーバーの名前または IP アドレス。
    • SAP システム番号: SAP システム番号(例: 00)。
    • SAP ルーター: ルーター文字列。

    負荷分散接続の場合

    • SAP メッセージ サーバー ホスト: SAP メッセージ ホスト名または IP アドレス。
    • SAP メッセージ サーバー サービスまたはポート番号: SAP メッセージ サーバー サービスまたはポート番号(例: sapms02)。
    • SAP システム ID (SID): SAP システム ID(例: N75)。
    • SAP ログオン グループ名: SAP ログオン グループ名(例: PUBLIC)。
  • SAP DataSource Name: SAP DataSources の名前(例: 2LIS_02_ITM)。

  • [スキーマの取得] ボタン: SAP からのメタデータに基づいてスキーマを生成し、SAP のデータタイプを対応する Cloud Data Fusion のデータタイプに自動的にマッピングします([検証] ボタンと同一の機能)。

  • 抽出タイプ: プラグインでは次の 2 種類のデータ抽出がサポートされています。

    • フル(すべてのデータ): 使用可能なすべてのデータを抽出します。
    • 同期(前回の実行に基づく自動選択): 前回の実行タイプに基づいて、完全、デルタ(増分)、または復元(最後の実行からの復元)モードを実行する必要性の有無と SAP で使用可能なステータスを決定します。最初のパイプラインの実行時(ODP モード F)のすべてのデータを抽出して、その後のパイプラインの実行時(ODP モード D と R)のデータを変更します。

      詳細については、抽出タイプをご覧ください。

認証情報

  • SAP ログオンのユーザー名: SAP ユーザー名。推奨: SAP ログオンのユーザー名が定期的に変更される場合は、マクロを使用します。
  • SAP ログオン パスワード: SAP ユーザーのパスワード。推奨: ユーザー パスワードなどの機密性の高い値に対しては、セキュアマクロを使用してください。

SAP JCo の詳細

  • GCP プロジェクト ID: プロジェクトを一意に識別する Google Cloud プロジェクト ID。これは Google Cloud Console のダッシュボードで確認できます。
  • SAP JCo ライブラリ GCS パス: ユーザーがアップロードした SAP JCo ライブラリ ファイルを含む Cloud Storage パス。

詳細

  • SAP ODP Subscriber Name: 有効な DataSource からのデータ抽出に、有効な ODP サブスクライバーサブスクライバーを識別します。この名前は 32 文字以下にする必要があり、スペースを含み、a-zA-Z0-9_/ のみを含めることができます。同じ DataSource からデータを抽出するさまざまなパイプラインに対して一意である必要があります。空または未指定の場合、実行フレームワークはプロジェクト ID、Namespace、パイプライン名のデフォルトの組み合わせを使用します。このデフォルト値が 32 文字を超えると、プラグインでは自動的に切り捨てられます。

  • Filter Options (Equal): フィールドが読み取る必要がある値を定義します。メタデータ フィールド名と値のペアのリストは、フィルタ オプションです。DataSource からデータを読み取るときに適用するフィルタ条件を指定します。フィルタを満たすレコードのみが抽出されます。フィルタキーはスキーマのフィールドに対応し、単純な型(ARRAYRECORDUNION ではない)である必要があります。

  • フィルタ オプション(範囲): フィールド値を読み取る必要がある下限と上限を定義します。形式は「低」と「高」です。メタデータ フィールド名とそれらの値のペアのリストは、フィルタ オプションです。DataSource からデータを読み取るときに適用するフィルタ条件を指定します。フィルタを満たすレコードのみが抽出されます。フィルタキーはスキーマのフィールドに対応し、単純な型(ARRAY、RECORD、UNION ではない)である必要があります。

  • 生成するスプリット数: テーブル レコードを並行して抽出するためのパーティションを作成します。ランタイム エンジンは、指定された数のパーティション(および SAP 接続)を作成し、同時にテーブル レコードを抽出します。並列処理が高いほど SAP との同時接続が増加するため、このプロパティを 16 より大きい数に設定する場合は注意してください。816 の値をおすすめします。値が 0 または空白の場合、システムは使用可能なエグゼキュータの数と抽出されるレコード、パッケージ サイズに基づいて適切な値を選択します。

  • Package Size(KB): 1 回の SAP ネットワーク呼び出しで抽出されるレコードの数。これは、すべてのネットワーク抽出の呼び出し中に SAP がメモリに保存するレコードの数です。データを抽出している複数のデータ パイプラインがメモリ使用量がピークに達し、Out of Memory エラーが原因で失敗する場合があります。このプロパティを設定する際は注意してください。

    正の整数を入力してください。0 を指定するか、空白にした場合、抽出されるレコード数が 70,000 未満の場合、プラグインは標準値 70000(または適切に計算された値)を使用します。

    Out of Memory エラーでデータ パイプラインが失敗した場合は、パッケージ サイズを縮小するか、SAP の処理プロセスで使用できるメモリを増分してください。

パイプラインの構成

スプリット数が多い(16 を超えるなど)、大きなデータセット(たとえば、数百万のレコード)の場合、SAP システムは重複するレコードを送信することがあります。これを防ぐには、Cloud Data Fusion パイプラインで次のいずれかの重複除去メソッドを使用することをおすすめします。

どちらの方法でも、DataSource のキーフィールドを使用して重複除去を実行します。

  • パイプラインで BigQuery シンクを使用する場合は、BigQuery シンクで Upsert モードを使用します。キーフィールドは、BigQuery シンク プラグインの [テーブルキー] セクションに指定します。

  • パイプラインで BigQuery シンクを使用しない場合は、SAP ODP ソース プラグインの後にパイプラインに挿入される重複除去プラグインを使用します。重複排除プラグインの [Unique Fields] セクションでキーフィールドを指定します。

データ型マッピング

表 4: Cloud Data Fusion タイプへの SAP データ型のマッピング

SAP のデータ型 ABAP のタイプ 説明(SAP) Cloud Data Fusion のデータ型
数値
INT1 b 1 バイトの整数 int
INT2 s 2 バイトの整数 int
INT4 i 4 バイトの整数 int
INT8 8 8 バイトの整数 long
12月 p BCD 形式でパックされた番号(DEC) decimal
DF16_DEC、
DF16_RAW
a 10 進浮動小数点数 8 バイト IEEE 754r decimal
DF34_DEC、
DF34_RAW
e 10 進浮動小数点数 16 バイト IEEE 754r decimal
FLTP f バイナリ形式の浮動小数点数 double
文字
CHAR、
LCHR
c 文字列 string
SSTRING、
GEOM_EWKB
string 文字列 string
STRING string 文字列 CLOB bytes
NUMC、
ACCP
n 数値テキスト string
Byte
RAW、
LRAW
x バイナリデータ bytes
RAWSTRING xstring バイト文字列 BLOB bytes
日時
DATS d 日付 date
時刻 t 実行時間 time
時刻 utcl Utclong)、
TimeStamp
timestamp

検証

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

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

データ パイプラインの実行

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

パフォーマンスを最適化する

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

SAP 構成を最適する

推奨: ダイアログ ユーザーではなく、SAP コミュニケーション ユーザーを使用します(これにより、SAP システム リソースの使用量が少なくなります)。また、ランドスケープでメッセージ サーバーが使用可能な場合は、直接接続ではなく、負荷分散された SAP 接続を使用します。

分割数とパッケージ サイズの値を指定すると、使用可能な SAP 作業プロセスとメモリが不足しないように、プラグインによってこれらの値が調整されます。使用している SAP リソースの上限は次のとおりです。

  • 利用可能なワークプロセスの 50%
  • ワークプロセスごとに利用可能なメモリの 70%

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

推奨: SAP システムのメモリ設定に精通していない場合は、[Number of Splits to Generate] と [Package Size] は空白のままにします。デフォルトでは、これらの値はパフォーマンスを高めるために自動的に調整されます。

パイプラインの実行時に最適なパフォーマンスを得るには、次のプロパティを使用します。

  • 生成する分割数: これは Cloud Data Fusion 側の並列処理を直接制御します。ランタイム エンジンは、指定された数のパーティション(および SAP 接続)を作成し、同時にテーブル レコードを抽出します。816 の範囲の値が推奨されますが、SAP 側で適切な構成を使用して、32 または 64 まで増加する場合があります(作業に適切なメモリリソースが割り当てられます)。

    値が 0 または空の場合、使用可能な SAP ワークプロセスの数、抽出するレコード、パッケージ サイズに基づいて適切な値が自動的に選択されます。

  • Package Size: SAP へのすべてのネットワーク呼び出しでフェッチするデータの各パッケージのサイズ(バイト単位)。サイズが小さいと、ネットワーク コールが頻繁に発生し、関連するオーバーヘッドが繰り返されます。パッケージ サイズが大きい(100 MB 超)と、データの取得が遅くなる可能性があります。0 または入力なしのデフォルトは 50 MB です。

型を抽出する

  • 抽出タイプが Full の場合、プラグインは常に DataSource から完全なデータをリクエストします。
  • 抽出タイプが Sync の場合、プラグインはまず SAP で前の実行のステータスを確認します。
    • 以前に実行がない場合は、フル(F)データを選択します。
    • 以前の実行タイプが完全(F)の場合:
      • 実行が正常に完了した場合は、デルタ(D)モードで現在のコマンドを実行します。
      • それ以外の場合は、現在をフル(F)モードで実行します。これにより、以前にエラーが発生したデータを回復できます。
    • 以前の実行タイプがデルタ(D)モードまたはリカバリ(R)モードの場合:
      • 実行が正常に完了した場合は、デルタ(D)モードで現在のコマンドを実行します。
      • それ以外の場合は、リカバリー(R)モードで現在のコマンドを実行します。これにより、以前にエラーが発生したデルタデータを回復できます。

同じ DataSource からの複数パイプラインの抽出

現在、この機能はサポートされていません。一度に 1 つのパイプラインからのみ 1 つの DataSource からデータを抽出できます。

推奨: [SAP ODP Subscriber Name] フィールドを空白のままにし、同じ DataSource からデータを抽出するパイプラインを複数実行しないでください。

Cloud Data Fusion のリソース設定

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

Dataproc クラスタの設定

推奨: 少なくとも、意図した分割数よりも多い CPU 総数を(ワーカー間で)割り当ててください(プラグインの構成を参照)。たとえば、16 の分割がある場合は、すべてのワーカーで合計 20 以上の CPU を定義します(調整に使用される 4 つの CPU のオーバーヘッドがあります)。

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

よくある質問

どの SAP プロダクトとバージョンがサポートされていますか?

サポート対象のソース:

  • SAP S4/HANA 1909 以降。
  • SAP ERP6 NW 7.31 SP16 以降。SAP Note 2232584 をインポートして、システムで追加の DataSources を有効にします。
  • NW 7.31 SP16 以降の SAP ERP システム。

どのような SAP デプロイモデルがサポートされていますか?

プラグインのテストは、Google Cloud にデプロイされた SAP サーバーで行われました。

どのタイプの SAP DataSource が抽出でサポートされていますか?

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

  • トランザクション データ
  • マスターデータ
  • 属性
  • テキスト
  • 階層

このプラグインを使用する前に実装する必要がある SAP ノートはありますか?

追加の DataSource を有効にする必要がある場合は、ERP6 システム(2232584)に ODP レプリケーション用の SAP エクストラクタ(ODP SAPI)のリリースを実装します。この外部サイトには SAP ログインが必要です。

データ量またはレコードの幅に上限はありますか?

抽出する行数または DataSource のサイズに対して定義された上限はありません。1 回のパイプライン実行で最大 3 億 600 万行を抽出し、レコード幅を 1 KB にしてテストしました。

予想されるプラグインのスループットはどの程度ですか?

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

次のステップ