SAP BW Open Hub バッチソース

このガイドでは、SAP BW Open Hub バッチソース プラグインを使用するデータ パイプラインをデプロイ、構成、実行する方法について説明します。BW Open Hub Service を使用して、Cloud Data Fusion でバッチベースおよび差分ベースのデータ抽出用のソースとして SAP を使用できます。

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

抽出でサポートされている SAP アプリケーションとオブジェクトについては、サポートの詳細をご覧ください。Google Cloud で SAP を実行する詳細については、Google Cloud での SAP の概要をご覧ください。

目標

  • SAP BW システムを構成します。
  • Cloud Data Fusion 環境にプラグインをデプロイします。
  • Cloud Data Fusion から SAP トランスポートをダウンロードし、SAP にインストールします。
  • Cloud Data Fusion と SAP BW Open Hub バッチソースを使用して、SAP データを統合するためのデータ パイプラインを作成します。

準備

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

  • Cloud Data Fusion でのパイプラインのビルド
  • SAP BW または BW4HANA システムの構成

ユーザーロール

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

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

SAP BW の前提条件

データ転送プロセスとプロセスチェーンを作成、編集するには、SAP HANA Studio が必要です。

Cloud Data Fusion の前提条件

  • Cloud Data Fusion インスタンスの作成には、VPC ネットワークが必要です。
  • Cloud Data Fusion インスタンスのバージョン 6.8.0 以降のエディションが必要です。
  • 必要なロールは、Cloud Data Fusion インスタンスに割り当てられたサービス アカウントに付与する必要があります。詳細については、サービス アカウント ユーザーの権限の付与をご覧ください。
  • お客様の VPC と Google の共有 VPC ネットワーク間にピアリング接続を使用する必要があります。

SAP BW システムを構成する

SAP BW Open Hub バッチソースは、リモート機能モジュール(RFM)を使用します。これは、データが抽出される各 SAP Server にインストールする必要があります。この RFM は SAP トランスポートとして提供されます。

SAP システムを構成するには、次の手順に従います。

  1. Cloud Data Fusion ユーザーは、SAP トランスポートを含む zip ファイルをダウンロードし、SAP 管理者に提供する必要があります。詳細については、Cloud Data Fusion を設定するをご覧ください。
  2. SAP 管理者は、SAP トランスポートを SAP システムにインポートし、作成されたオブジェクトを確認する必要があります。詳細については、SAP トランスポートをインストールするをご覧ください。
  3. 省略可: SAP ユーザーは、組織のセキュリティ ポリシーに基づいて、提供されたロール /GOOG/BWOH_CDF_AUTH の SAP 標準承認オブジェクトを変更できます。

SAP トランスポート ファイルをインストールする

Cloud Data Fusion でデータ パイプラインを設計して実行するために、SAP コンポーネントが SAP トランスポート ファイルで提供され、これらは ZIP ファイルにアーカイブされます。これは Cloud Data Fusion Hub でプラグインをデプロイするときにダウンロードできます。

SAP BW OH トランスポート zip ファイルをダウンロードする

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

SAP トランスポート

トランスポート ID Cofile データファイル コンテンツ
BW1K900054 K900054.BW1 R900054.BW1 BWOH Cloud Data Fusion コネクタ バージョン 1.0
関数モジュール:
/GOOG/BWOH_GET_PC_LOG
/GOOG/BWOH_GET_PRO_CHA_DETAILS
/GOOG/BWOH_API_OHS_ETL_READ
/GOOG/BWOH_GET_PC_RUNS
/GOOG/BWOH_SET_LAST_RUN
/GOOG/BWOH_GET_PC_OHD_LIST
BW1K900055 K900055.BW1 R900055.BW1 承認のロール /GOOG/BWOH_CDF_AUTH

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. [オプション] タブで、[オリジナルを上書きする] と [無効なコンポーネント バージョンを無視する] を選択します。

    省略可: [後でインポートするためにトランスポート リクエストをキューに残す] を選択します。これにより、全リクエストの次回のインポート時に、リクエストは正しい順序で再インポートされます。このオプションは、個々のリクエストに事前にインポートする必要がある場合に役立ちます。

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

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

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

    tp addtobuffer TRANSPORT_REQUEST_ID SID
    

    例: tp addtobuffer BW1K900054 DD1

  3. トランスポート リクエストをインポートします。

    tp import TRANSPORT_REQUEST_ID SID client=NNN U1238
    

    NNN は、クライアント番号に置き換えます。例:

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

必要な SAP 承認

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

SAP 用のコネクタを構成するには、SAP 承認が必要です。コネクタ固有の SAP 認可オブジェクトは、トランスポート リクエストの一部として出荷されます。SAP トランスポートのインストールの説明に沿って認証ロールのトランスポートをインポートし、システムにロールを導入して、PFCG トランザクション コードからロールを生成します。

標準の SAP 承認オブジェクトの場合、組織は独自のセキュリティ メカニズムを使用して権限を管理します。組織のセキュリティ ポリシーに基づいて承認オブジェクトを維持できます。

プロセス チェーン(PC)とデータ転送プロセス(DTP)を作成する

プロセス チェーンとデータ転送プロセスを作成するには、追加のスキルと背景知識が必要です。

背景概念

PC と DTP を作成または編集するには、SAP HANA Studio を使用します。

前提となるスキル

  • 変換を使用して、ソース オブジェクトとターゲット オブジェクト間のデータフローを定義している。
  • DataStore オブジェクト(DSO)、データ変換、InfoCubes、クエリの最適化、HANA のモデリング、HANA Studio を使用する HANA DB 機能など、BW と HANA の基本的なコンセプトに精通している。これらのコンセプトの詳細については、BW と HANA に関する SAP チュートリアルをご覧ください。

抽出タイプ

データ転送プロセスには、2 つのデータ抽出モード(完全と差分)があります。

  • 完全: DTP に記載されているフィルタ条件に基づいて、ソースで使用可能なすべてのデータが選択されます。データのソースが次のいずれかの InfoProvider である場合は、完全抽出モードのみを使用できます。

    • InfoObjects
    • InfoSets
    • 直接更新用の DataStore オブジェクト
  • 差分: InfoPackage とは異なり、DTP を使用する差分転送では、明示的な初期化を必要としません。DTP が差分抽出モードを使用して初めて実行されると、抽出時刻までの既存のリクエストがすべてソースから取得され、差分が自動的に初期化されます。

    抽出モードの Delta を使用する DTP では以下のオプションを使用できます。

    • Delta を 1 回のみ取得する
    • リクエストに応じてすべての新しいデータ リクエストを取得する
    • 新しいデータがなくなるまで取得する

パッケージ サイズ: 個々のデータ パッケージに存在するデータレコードの数。デフォルト値は 50,000 です。

プロセスチェーンを作成する

プロセス チェーン(PC)を作成するには、SAP GUI でトランザクション RSPC を使用します。開始プロセスを定義し、プロセスのステップと DTP を追加します。詳細については、SAP のドキュメントでプロセスチェーンの作成をご覧ください。

HANA Studio では、PC をモニタリングおよび管理するためのさまざまなオプションが用意されています。詳細については、SAP BW/4HANA プロセス チェーンの操作をご覧ください。

プロセス チェーンを使用してデータ転送プロセスを作成する

データ転送プロセスに使用するプロセス チェーンの [Planning] ビューに移動します。[Planning] ビューで、HANA Studio を使用して DTP を作成できます。詳細については、SAP のドキュメントでデータ転送プロセスの作成をご覧ください。

構成オプションの詳細については、データ転送プロセス(DTP)についての総括 - SAP BW 7 をご覧ください。

RFC 接続

データが利用可能であることを SAP BW Open Hub バッチソース プラグインなどのコールバック システムに通知するには、プロセス チェーンを更新して RFC 宛先を使用する必要があります。

  1. SM59 で、TCP/IP Connections タイプの RFC 接続を作成し、BI でデータの読み込みが完了したら BW からターゲット システムに通知します。

  2. RFC 接続をダブルクリックして、RFC 接続にプログラム ID が構成されていることを確認します。ランタイム リスナーの競合を回避するため、プログラム ID は RFC 宛先ごとに一意でなければなりません。

  3. プロセスチェーンで新しく作成された TCP/IP 接続を使用して通知を送信し、Cloud Data Fusion バッチジョブを完了します。プロセス チェーンの名前は、大文字と小文字が区別されません。エンドツーエンドの統合プロセスでは、プロセス チェーンの名前は大文字で正しく指定する必要があります。

プロセス チェーンとデータ転送プロセスのログを表示する

  1. Tcode : RSPC に移動し、[Process Chains] をクリックします。

  2. ログを表示するプロセスチェーンを右クリックし、[ログを表示] をクリックします。

プロセス チェーンを使用する場合の Dataproc クラスタを構成する

RFC サーバー経由の通信を有効にするには、Dataproc クラスタノード内の /etc/services ファイルに SAP Gateway ポートエントリを追加する必要があります。クラスタの初期化時に実行されるスクリプトである init action を使用することをおすすめします。詳細については、初期化アクションをご覧ください。

スクリプト ファイルを作成し、それを Cloud Storage バケットに保存します。次の例では、スクリプト ファイルの内容を示します。

gs://cdf-sap-dependent-files/addgw.sh
#!/bin/bash
echo 'sapgw00 3300/tcp' >> /etc/services
echo 'sapgw01 3301/tcp' >> /etc/services
echo 'sapgw02 3302/tcp' >> /etc/services
echo 'sapgw03 3303/tcp' >> /etc/services
echo 'sapgw04 3304/tcp' >> /etc/services

上の例では、次の点に注意してください。

  • エントリの形式は sapgwxx 33xx/tcp です。ここで、XX は SAP インスタンス番号です。

  • SAP インスタンス 00 のポートが 04 から追加されます。

エフェメラル Dataproc クラスタ、新しく作成した永続 Dataproc クラスタ、または既存の永続 Dataproc クラスタを使用する場合は、以下の手順を行います。

エフェメラル Dataproc クラスタ

エフェメラル Dataproc クラスタを使用している場合は、init スクリプトパスをクラスタ プロパティに追加します。

  1. ジョブモニターで、Cloud Data Fusion のパイプライン ページで [構成] をクリックします。
  2. コンピューティング プロファイルを選択し、[カスタマイズ] をクリックします。
  3. [詳細設定] の [初期化アクション] フィールドに、init スクリプトのパスを入力します。

新しい永続 Dataproc クラスタ

新しく作成した永続 Dataproc クラスタを使用する場合は、gcloud コマンドの init スクリプトを使用してクラスタを作成します。次に例を示します。

gcloud dataproc clusters create cluster-name \
  --region=${REGION} \
  --initialization-actions=gs://cdf-sap-dependent-files/addgw.sh \
  ... other flags ...

既存の永続 Dataproc クラスタ

既存の永続 Dataproc クラスタを使用している場合は、次の手順に従います。

init スクリプトを使用せずにクラスタがすでに作成されている場合は、Dataproc クラスタのマスターノードとワーカーノードの両方にエントリを手動で追加します。

  1. マスターノードとクラスタノードに SSH 接続します。
  2. root ユーザー ID にログインします。
  3. /etc/ に移動し、VI エディタで /etc/services ファイルを開きます。
  4. sapgwxx 33xx/tcp エントリを追加します。xx は、SAP インスタンス番号に置き換えます。
  5. /etc/services ファイルを保存します。

Cloud Data Fusion を設定する

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

Cloud Data Fusion ユーザーを対象とする手順

  1. インスタンスの詳細(
    1. Google Cloud コンソールで、Cloud Data Fusion のページに移動します。

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

      [インスタンス] に移動

    )に移動します。
  2. インスタンスがバージョン 6.8.0 以降にアップグレードされていることを確認します。インスタンスが以前のバージョンの場合は、アップグレードする必要があります。
  3. インスタンスを開きます。Cloud Data Fusion UI が開いたら、[Hub] をクリックします。
  4. [SAP] タブ > [SAP BW] を選択します。[SAP] タブが表示されない場合は、SAP インテグレーションのトラブルシューティングをご覧ください。
  5. [Deploy SAP BW Plugin] をクリックします。プラグインが [Studio] ページの [ソース] メニューに表示されます。

SAP 管理者と Google Cloud 管理者を対象とする手順

SAP 管理者は、SAP サポートサイトから次の JCo アーティファクトをダウンロードし、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 ライブラリ GCS パス)。プラグインを構成するをご覧ください。

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

プラグインを構成する

SAP BW Open Hub バッチソース プラグインは、SAP DataSource のコンテンツを読み取ります。

レコードをフィルタするには、SAP BW Open Hub Batch Source に次のプロパティを構成します。

次のインジケーターがフィールドの定義に使用されます。

  • (M)は、該当するフィールドでマクロがサポートされていることを示します
  • (O): 省略可能なフィールド

ラベル: キャンバス上のプラグイン ラベル。

基本

次のプロパティのリストで、(M)はオプションがマクロをサポートし、SAP 接続を集中管理できることを意味します。たとえば、接続プロパティにマクロを使用し、ランタイム パラメータまたは Argument Setter プラグインを使用して実行時に値を設定できます。

  • 参照名: リネージとメタデータのアノテーションのために、このソースを一意に識別するために使用される名前。
  • 接続の使用(オン/オフの切り替え): 既存の接続を使用するかどうか(接続の管理をご覧ください)。既存の接続を使用する場合は、SAP 接続の詳細を指定する必要はありません。

  • 接続(接続をブラウジング): 使用する既存の接続を選択します。マクロ関数 ${conn(connection-name)} を使用することもできます。

  • SAP クライアント(M): 使用する SAP クライアント。例: 100

  • SAP の言語: SAP ログオン言語。例: EN

  • 接続タイプ: SAP 接続タイプ(直接または負荷分散)。 プロセス チェーン ベースの抽出にロード バランシング接続はサポートされていません。詳細については、サポートの詳細をご覧ください。

    接続タイプを選択すると、使用可能なフィールドが変わります。

    直接接続では、次のフィールドを使用できます。

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

    ロードバランス接続では、次のフィールドを使用できます。

    • SAP メッセージ サーバー ホスト(M): SAP メッセージのホスト名または IP アドレス。
    • SAP メッセージ サーバー サービスまたはポート番号(M): SAP メッセージ サーバー サービスまたはポート番号。例: sapms02
    • SAP システム ID(SID)(M): SAP システム ID。例: N75
    • SAP ログオン グループ名(M): SAP ログオングループ名。例: PUBLIC
  • プロセス チェーンを使用する(M): このフィールドには 2 つのオプションがあります。

    [はい] オプションを使用してプロセスチェーンを有効にすると、次のプロパティが有効になります。

    • PC エラーと DTP エラーを自動的に解決: 以前に失敗した実行が特定された場合の動作を制御します。無効にすると、プラグインは関連するエラーでパイプラインを失敗させます。有効になっている場合(デフォルト)、プラグインは SAP でプロセス チェーンとデータ転送プロセスのステータスを確認します。次のいずれかのエラーが検出されると、プラグインは自動的にエラーの解決を試みます。

    • Data Transfer Process in error state: プラグインが前のリクエストを削除する

    • 赤色の状態のプロセス チェーン(エラー previous request status has not been set): プラグインは、プロセス チェーンのログからリクエスト ID を取得した後にブロック リクエストを削除してから、PC を実行しようとします。

    • プロセス チェーン ステータス通知の待機時間(分)(M、O): プロセス チェーンがデータ ステージングを完了し、パイプラインに抽出の開始を通知するまでの時間(分)を指定します。0 を指定するか空白にした場合、値は 10 分(デフォルト)として扱われます。

    • プロセス チェーン(M): SAP プロセス チェーンの名前。例: PC_RFC

    [いいえ] オプションを使用してプロセスチェーンを無効にすると、次のプロパティが有効になります。

    • Open Hub の宛先(M): 読み取る Open Hub の宛先名。
    • リクエスト ID(M,O): すでに実行されているデータ転送プロセスのリクエスト ID。

認証情報

  • SAP ログオンのユーザー名(M): SAP ユーザー名。推奨: SAP ログオンのユーザー名が定期的に変更される場合は、マクロを使用します。
  • SAP ログオン パスワード(M): SAP ユーザーのパスワード。推奨: ユーザー パスワードなどの機密値の場合は、安全なマクロを使用します。

SAP JCo の詳細

  • GCP プロジェクト ID(M): プロジェクトを一意に識別する Google Cloud プロジェクト ID。これは Google Cloud コンソールのダッシュボードで確認できます。
  • SAP JCo ライブラリ GCS パス(M): ユーザーがアップロードした SAP JCo ライブラリ ファイルを含む Cloud Storage パス。
  • [スキーマの取得]: プラグインで SAP のメタデータを基にスキーマを生成し、SAP のデータタイプを対応する Cloud Data Fusion のデータタイプに自動的にマッピングする場合は、これをクリックします。この機能は [検証] ボタンと同じです。

クライアント証明書の詳細については、ABAP 用 SAP NetWeaver アプリケーション サーバーでの X.509 クライアント証明書の使用をご覧ください。

Advanced

  • 生成するスプリット数(M、O): スプリット数は、入力データをパーティショニングするために使用されます。パーティションが増加すると並列処理のレベルは高くなりますが、より多くのリソースを必要とし、オーバーヘッドが大きくなります。SAP On-Prem システムで UI で値が指定されていない場合、スプリットは SAP で使用可能なダイアログ処理プロセスの 50% です。それ以外の場合、スプリットは、ユーザーが指定した内容と使用可能な作業プロセスの 50% との間で最適化されます。

    推奨: SAP システムの設定に精通していない限り、プロパティは空白のままにします。

  • 追加の SAP 接続プロパティ(M、O): SAP JCo のデフォルト値をオーバーライドする追加の SAP JCo プロパティを設定します。たとえば、jco.destination.pool_capacity = 10 を設定すると、デフォルトの接続プール容量がオーバーライドされます。

    次の表に、サポートされている SAP JCo プロパティを示します。

    プロパティ 説明
    jco.destination.peak_limit 宛先に対して同時に作成できるアクティブな接続の最大数。
    jco.destination.pool_capacity 宛先によって開いたままに保たれるアイドル接続の最大数。値が 0 の場合、接続プールが行われません。つまり、リクエストごとに接続が閉じられます。
    jco.destination.expiration_time 内部プールによって保持されている接続を閉じることができる時間(ms 単位)。
    jco.destination.expiration_check_period タイムアウト チェッカー スレッドがプール内の接続の有効期限を確認する間隔(ms)。
    jco.destination.max_get_client_time 許される最大接続数がアプリケーションによって割り当てられている場合に接続を待つ最大時間(ms)。

データ抽出モードの動作

データ抽出モードは、データ転送プロセスの設定で制御されます。プロセス チェーンを使用する場合と、オープンハブの宛先を使用する場合では、動作が異なります。

プロセス チェーンの使用時

Data Transfer プロセスレベルの設定では、完全な読み込みと差分ロードのどちらが実行されるかが制御されます。リクエスト ID は、SAP からプラグインへの通知として届きます。プラグインは、この単一のリクエスト ID に関連付けられたパケットデータを読み取ります。

リクエスト ID なしで Open Hub の宛先を使用する場合

完全読み込み: パイプラインを初めて実行すると、Open Hub テーブルで使用可能なすべてのリクエスト ID が取得されます。プラグインは、これらのリクエスト ID に関連付けられたパケットデータを読み取ります。

差分読み込み: 次回同じパイプラインを実行すると、最後に取得されたリクエスト ID の後に使用可能なすべての差分リクエスト ID が取得されます。プラグインは、これらのリクエスト ID に関連付けられたパケットデータを読み取ります。

リクエスト ID で Open Hub の宛先を使用する場合

完全読み込み: パイプラインを初めて実行すると、指定されたリクエスト ID よりも大きく次に利用可能なすべてのリクエスト ID が取得されます。プラグインは、これらのリクエスト ID に関連付けられたパケットデータを読み取ります。

差分読み込み: 次回同じパイプラインを実行すると、最後に取得されたリクエスト ID の後に使用可能なすべての差分リクエスト ID が取得されます。プラグインは、これらのリクエスト ID に関連付けられたパケットデータを読み取ります。

データ型マッピング

次の表では、SAP BW と Cloud Data Fusion で使用されるデータ型のマッピングを示します。

BW データ型 ABAP のタイプ 説明(SAP) Cloud Data Fusion のデータ型
数値
INT1 b 1 バイトの整数 integer
INT2 s 2 バイトの整数 integer
INT4 i 4 バイトの整数 integer
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

検証

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

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

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

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

パフォーマンスの最適化

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

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

  • Cloud Data Fusion プラグイン プロパティでの生成するスプリット数: Cloud Data Fusion 側で並列度を直接制御します。ランタイム エンジンは、指定された数のパーティション(および SAP 接続)を作成し、同時にテーブル レコードを抽出します。816 の値を推奨しますが、SAP 側の適切な構成により、SAP のワークプロセスに適切なメモリリソースが割り当てることで、32 または 64 まで増やせます。

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

  • BW データ転送プロセス プロパティのパッケージ サイズ: 個々のデータ パッケージに存在するデータレコードの数を制御します。デフォルト値は 50,000 です。この値を増やすとパフォーマンスは向上しますが、リソースの負荷が高くなります。すでに大きい値を使用している場合は、抽出の並列化を改善するためにこの値を減らしてください。

Cloud Data Fusion リソースの設定

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

Dataproc クラスタの設定

推奨: 少なくとも、ワーカー全体でスプリット数より多く CPU を割り当てます(プラグインの構成をご覧ください)。

たとえば、16 のスプリットがある場合は、ワーカー全体で合計 20 以上の CPU を定義します。調整用に 4 CPU のオーバーヘッドが発生します。

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

サポートの詳細

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

サポート対象のソース:

  • SAP NW BW 7.5 以降
  • SAP BW4HANA 2.0 SP9(Open Hub Destination API を含む。BW4HANA の以前のリリースでは Open Hub Destination API がサポートされていません)

SAP のロード バランシング(メッセージ サーバー)接続のサポート

SAP Hub のロード バランシング(メッセージ サーバー)接続は、RFC サーバーが使用されない Open Hub の宛先ベースの抽出でサポートされています。

プロセス チェーンベースの抽出に SAP ロード バランシング(メッセージ サーバー)接続はサポートされていません。その理由は、data ready 通知をクライアント システムに提供する際に SAP の制限が適用されるため、BW 環境内の各 SAP サーバーに RFC サーバー(プラグイン リスナー)を登録する必要があり、それによってコネクタと SAP のパフォーマンスとリソースの使用量に影響を与える可能性があるためです。詳細については、SAP Note 2572564 をご覧ください(表示には SAP サポートへのログインが必要です)。

サポートされている SAP デプロイモデル

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

サポートされている SAP オブジェクト

Open Hub の宛先用のデータソース: InfoProviders(InfoObject、InfoCube、DataStore Object、Advanced Datastore Store Object、複合プロバイダ)

プロセス チェーン。Open Hub の宛先へのデータ転送プロセスを自動的に実行します。

Oracle HTTP Server を使用して SAP からデータを抽出するための個別のライセンス

Oracle HTTP Server(OHS)を使用して SAP からデータを抽出する際に、別途ライセンスは必要ありません。ただし、具体的な契約とユースケースについては、SAP の担当者にお問い合わせください。

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

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

次のステップ