SAP SLT レプリケーション プラグインの概要

このガイドでは、SAP Landscape Transformation(SLT)を使用して、SAP アプリケーションから Google Cloud へのデータのリアルタイム レプリケーションを有効にする方法について説明します。SAP ソースシステム、SLT、Cloud Storage、Cloud Data Fusion の構成手順について説明します。

Cloud Data Fusion の SAP SLT レプリケーションによって、SAP ソースから BigQuery に継続してリアルタイムにデータを複製できます。SAP システムからのデータ移行を、コーディングすることなく構成して実行できます。

Cloud Data Fusion の SLT レプリケーションのプロセスは次のとおりです。

  1. データは SAP ソースシステムから生成されます。
  2. SLT はデータを追跡して読み取り、Cloud Storage に push します。
  3. Cloud Data Fusion は、ストレージ バケットからデータを pull し、BigQuery に書き込みます。

Google Cloud でホストされている SAP システムなど、サポートされている SAP システムからデータを転送できます。

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

始める前に

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

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

構成を行う管理者とユーザー

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.

サポートされているレプリケーション オペレーション

SAP SLT レプリケーション プラグインは、次のオペレーションをサポートしています。

データ モデリング: すべてのデータ モデリング オペレーション(レコード insertdeleteupdate)は、このプラグインでサポートされています。

データ定義: SAP Note 2055599(表示に必要な SAP サポート ログイン)で説明しているように、どのソースシステム テーブルに関しても制限があります。構造の変更は自動的に SLT によって複製されます。一部のデータ定義オペレーションはプラグインでサポートされていません(手動で伝達する必要があります)。

  • サポート対象:
    • 非キーフィールドを追加する
  • サポート対象外:
    • キーフィールドを追加/削除
    • 非キーフィールドを削除する
    • データ型を変更

SAP の前提条件

SAP システムでは、次の項目が必要です。

  • ソース SAP システム(組み込み)に、または専用の SLT ハブシステムとして、SLT サーバー バージョン 2011 SP17 以降がインストールされている。
  • ソース SAP システムは、DMIS 2011 SP17 以降(DMIS 2018、DMIS 2020)をサポートする SAP ECC または SAP S/4HANA です。
  • SAP UI アドオンは、SAP NetWeaver バージョンとの互換性が必要です。
  • サポート パッケージでは、/UI2/CL_JSON クラス PL 12 以降がサポートされています。それ以外の場合は、UI アドオンバージョン(PL12 用の SAP ノート 2798102 など)に従って、/UI2/CL_JSON クラス corrections 用の最新の SAP ノートを実装します。

  • 次のセキュリティが適用されている。

Cloud Data Fusion の前提条件

  • Cloud Data Fusion インスタンス、バージョン 6.4.0 以降の任意のエディションが必要です。
  • Cloud Data Fusion インスタンスに割り当てられたサービス アカウントに必要なロールが付与されます(サービス アカウントのユーザーの権限の付与をご覧ください)。
  • プライベート Cloud Data Fusion インスタンスの場合、VPC ピアリングが必要です。

Google Cloud の前提条件

Storage バケットを作成する

SLT レプリケーション ジョブを作成する前に、Cloud Storage バケットを作成します。このジョブはデータをバケットに転送し、5 分ごとにステージング バケットを更新します。ジョブを実行すると、Cloud Data Fusion はストレージ バケット内のデータを読み取り、BigQuery に書き込みます。

SLT が Google Cloud にインストールされている場合

SLT サーバーには、作成したバケット内で Cloud Storage オブジェクトを作成および変更する権限が必要です。

少なくとも、サービス アカウントに次の役割を付与します。

SLT が Google Cloud にインストールされていない場合

SAP VM と Google Cloud の間に Cloud VPN または Cloud Interconnect をインストールして、内部メタデータ エンドポイントへの接続を許可します(オンプレミス ホスト用の限定公開の Google アクセスの構成を参照)。

内部メタデータをマッピングできない場合:

  • SLT が実行されているインフラストラクチャのオペレーティング システムに基づいて、Google Cloud CLI をインストールします。

  • Cloud Storage が有効になっている Google Cloud プロジェクトでサービス アカウントを作成します。

  • SLT オペレーティング システムで、サービス アカウントを使用して Google Cloud へのアクセスを承認します。

  • サービス アカウントの API キーを作成し、Cloud Storage に関連するスコープを承認します。

  • CLI を使用して、先ほどインストールした gcloud CLI に API キーをインポートします。

  • アクセス トークンを出力する gcloud CLI コマンドを許可するには、SLT システムのトランザクション SM69 ツールで SAP オペレーティング システム コマンドを構成します。

SAP 管理者が、Google Cloud からアクセス トークンを取得するオペレーティング システム コマンド SM69 を構成します。

アクセス トークンを出力するスクリプトを作成し、このスクリプトを SAP LT Replication Server ホストからユーザー <sid>adm として呼び出すように SAP オペレーティング システム コマンドを構成します。

Linux

OS コマンドを作成するには:

  1. SAP LT Replication Server ホストで、<sid>adm にアクセス可能なディレクトリに、次の行を含む bash スクリプトを作成します。

    PATH_TO_GCLOUD_CLI/bin/gcloud auth print-access-token SERVICE_ACCOUNT_NAME
    
  2. SAP GUI を使用して、外部 OS コマンドを作成します。

    1. トランザクション SM69 を入力します。
    2. [作成] をクリックします。
    3. [外部コマンド] パネルの [コマンド] セクションで、コマンドの名前(ZGOOGLE_CDF_TOKEN など)を入力します。
    4. [定義] セクションで次の操作を行います。

      1. [オペレーティング システム コマンド] フィールドに、スクリプト ファイルの拡張子として「sh」と入力します。
      2. [オペレーティング システム コマンドのパラメータ] フィールドに、次のように入力します。

        /PATH_TO_SCRIPT/FILE_NAME.sh
        
    5. [保存] をクリックします。

    6. スクリプトをテストするには、[実行] をクリックします。

    7. もう一度 [実行] をクリックします。

    Google Cloud トークンが返され、SAP GUI パネルの下部に表示されます。

Windows

SAP GUI を使用して、外部オペレーティング システム コマンドを作成します。

  1. トランザクション SM69 を入力します。
  2. [作成] をクリックします。
  3. [外部コマンド] パネルの [コマンド] セクションで、コマンドの名前(ZGOOGLE_CDF_TOKEN など)を入力します。
  4. [定義] セクションで次の操作を行います。

    1. [オペレーティング システム コマンド] フィールドに、「cmd /c」と入力します。
    2. [オペレーティング システム コマンドのパラメータ] フィールドに、次のように入力します。

      gcloud auth print-access-token SERVICE_ACCOUNT_NAME
      
  5. [保存] をクリックします。

  6. スクリプトをテストするには、[実行] をクリックします。

  7. もう一度 [実行] をクリックします。

Google Cloud トークンが返され、SAP GUI パネルの下部に表示されます。

SLT の前提条件

SLT コネクタの設定には次の前提条件があります。

  • コネクタは SAP ECC NW 7.02、DMIS 2011 SP17 以降をサポートしています。
  • SLT とソースシステムの間の RFC 接続またはデータベース接続を構成します。
  • STRUST トランザクション コードを使用して、ルートを含む Google API 証明書を googleapis.com から SLT にインポートします。
  • Internet Communication Manager(ICM)を HTTPS 用に設定する必要があります。SAP SLT システムで HTTP ポートと HTTPS ポートが維持され、有効になっていることを確認してください。これは、トランザクション コード SMICM > Services で確認できます。
  • SAP SLT システムがホストされている VM 上での Google Cloud APIs へのアクセスを有効にします。これにより、公共のインターネットを経由せずに、Google Cloud サービス間のプライベート通信が可能になります。
  • ネットワークが、SAP インフラストラクチャと Cloud Storage 間のデータ転送に必要なボリュームと速度をサポートできることを確認します。インストールが正常に完了するためには、Cloud VPN または Cloud Interconnect(またはその両方)をおすすめします。Google Cloud Storage Streaming API のスループットは、Cloud Storage プロジェクトに付与されたクライアントの割り当てによって異なります。

SLT レプリケーション サーバーを構成する

SAP ユーザーは次の手順を実行します。

次の手順では、ソースシステム、複製するデータテーブル、ターゲット ストレージ バケットを指定して、SLT サーバーをソースシステムと Cloud Storage のバケットに接続します。

Google ABAP SDK を構成する

データ レプリケーション用に SLT を構成するには(Cloud Data Fusion インスタンスごとに 1 回)、次の手順に沿って操作します。

  1. SLT コネクタを構成するために、SAP-User が構成画面(SAP トランザクション /GOOG/CDF_SETTINGS)に、Cloud Storage へのデータ転送のための Google Cloud サービス アカウント キーに関する次の情報を入力します。トランザクション SE16 を使用してテーブル /GOOG/CDF_CLT_KY に次のプロパティを構成し、このキーをメモします。
  • NAME: サービス アカウント キーの名前(例: CDFSLT
  • SERVICE ACCOUNT NAME: IAM サービス アカウント名
  • SCOPE: サービス アカウントのスコープ
  • PROJECT ID: Google Cloud プロジェクトの ID
  • (省略可)EXT OS コマンド: SLT が Google Cloud にインストールされていない場合にのみ、このフィールドを使用します。
  • AUTH CLASS: 固定値: /GOOG/CDF_CL_GCP_AUTH_GOOGLE
  • TOKEN REFRESH SEC: 認証トークンの更新にかかる時間

サービス アカウント キーの詳細を入力する

レプリケーション構成を作成する

トランザクション コード LTRC でレプリケーション構成を作成します。

  • LTRC 構成に進む前に、SLT とソース SAP システム間の RFC 接続を確立してください。
  • 1 つの SLT 構成で、複数の SAP テーブルをレプリケーションに割り当てることができます。
  1. トランザクション コード LTRC に移動し、[新しい構成] をクリックします。

    サービス アカウント キーの詳細を入力する

  2. [構成名] と [説明] に入力し、[次へ] をクリックします。

  3. SAP ソースシステムの RFC 接続を指定し、[次へ] をクリックします。

    ソースシステムの RFC 接続の詳細を指定する

  4. [ターゲットシステム接続の詳細] で [その他] を選択します。

  5. [RFC 通信のシナリオ] フィールドを展開して [SLT SDK] を選択し、[次へ] をクリックします。

  6. [転送設定の指定] ウィンドウに移動し、アプリケーション名 ZGOOGLE_CDF を入力します。

    転送設定の指定

  7. Data Transfer ジョブの数初期読み込みジョブの数計算ジョブの数を入力します。パフォーマンスの詳細については、SAP LT Replication Server パフォーマンス最適化ガイドをご覧ください。

    ヒント: ジョブの数がわからない場合は、10,10,10 を入力してから、後で詳細がわかってから値を編集します。

  8. [リアルタイム] > [次へ] をクリックします。

  9. 構成を確認したら、[保存] をクリックします。以降の手順で [Mass Transfer ID] をメモします。

    設定を保存して、一括転送 ID をメモします

  10. 一括転送 ID と SAP テーブルの詳細を維持するには、SAP トランザクション /GOOG/CDF_SETTINGS を実行します。

  11. [実行] をクリックするか、F8 を押します。

  12. 行追加のアイコンをクリックして新しいエントリを作成します。

    1. 一括転送 ID一括転送キーGCP キー名ターゲット GCS バケットを入力します。[Is Active] チェックボックスをオンにして、変更を保存します。

      トランスポート一括転送の詳細の入力

  13. [構成名] 列で構成を選択し、[データ プロビジョニング] をクリックします。

    データ プロビジョニングを選択する

  14. 省略可: テーブルとフィールド名をカスタマイズします。

    1. [カスタム名] をクリックして保存します。

    2. [表示] をクリックします。

    3. [行を追加] または [作成] ボタンをクリックして、新しいエントリを作成します。

    4. BigQuery で使用する SAP テーブル名と外部テーブル名を入力し、変更を保存します。

    5. [表示フィールド] 列の [表示] ボタンをクリックして、テーブル フィールドのマッピングを維持します。

    6. ページが開き、推奨されるマッピングが表示されます。省略可: [Temp Field Name] と [Field Description] を編集して、マッピングを保存します。

  15. LTRC トランザクションに進みます。

  16. [構成名] 列で値を選択し、[データ プロビジョニング] をクリックします。

  17. [データベースのテーブル名] フィールドにテーブル名を入力し、レプリケーションのシナリオを選択します。

    レプリケーション シナリオを選択する

  18. [実行] をクリックします。これにより、SLT SDK の実装がトリガーされ、Cloud Storage のターゲット バケットへのデータ転送が開始されます。

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

SAP コンポーネントは、Cloud Data Fusion でレプリケーション ジョブを設計および実行するために必要です。zip ファイルとしてアーカイブされた SAP トランスポート ファイルとして提供されます。

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

SAP トランスポート

トランスポート ID Cofile データファイル 内容
ED1K900346 K900346.ED1 K900346.ED1 SAP BADI 実装 ES_IUUC_REPL_RUNTIME_OLO_Exit
ED1K900340 K900340.ED1 K900340.ED1 承認ロール /GOOG/SLT_CDF_AUTH

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

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

  1. SAP アプリケーション インスタンスのオペレーティング システムにログインします。
  2. cofile を /usr/sap/trans/cofiles フォルダにコピーします。
  3. データファイルを /usr/sap/trans/data フォルダにコピーします。
  4. data/cofile の ユーザーとグループを <sid>admsapsys に設定します。

ステップ 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. SE80PFCG などのトランザクションを使用して、関数モジュールと承認のロールが正常にインポートされたことを確認します。

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

必要な SAP 承認

Cloud Data Fusion でデータ パイプラインを実行するには、SAP ユーザーが必要です。SAP ユーザーは、コミュニケーションまたはダイアログの種類である必要があります。SAP ダイアログ リソースの使用を防ぐために、通信タイプをおすすめします。ユーザーは、SAP トランザクション コード SU01 を使用して SAP 管理者が作成できます。

SAP 承認は、SAP の標準オブジェクトと新しいコネクタ承認オブジェクトを組み合わせた SAP 用のコネクタの維持と構成に必要です。組織のセキュリティ ポリシーに基づいて、承認オブジェクトを保持します。以下に、コネクタに必要ないくつかの重要な承認を示します。

  • 承認オブジェクト: 承認オブジェクト ZGOOGCDFMT は、トランスポート リクエスト ロールの一部として提供されます。

  • ロールの作成: トランザクション コード PFCG を使用して役割を作成します。

    SAP トランザクション コードを使用してロールを作成する

  • 標準の SAP 承認オブジェクトの場合、組織は独自のセキュリティ メカニズムを使用して権限を管理します。

  • カスタム承認オブジェクトの場合は、承認オブジェクト ZGOOGCDFMT の承認フィールドに値を指定します。

  • 詳細なアクセス制御のため、ZGOOGCDFMT は承認グループベースの承認を行います。承認グループに対する完全、部分的なアクセス権を保有する、またはまったくアクセス権を付与されていないユーザーには、ロールに割り当てられた承認グループに基づいてアクセス権が付与されます。

  • /GOOG/SLT_CDF_AUTH: すべての承認グループにアクセスできるロール。特定の承認グループに固有のアクセスを制限するには、認証グループの FICDF を維持します。

送信元の RFC 宛先を作成する

構成を開始する前に、ソースと宛先の間で RFC 接続が確立されていることを確認してください。

  1. トランザクション コード SM59 に移動する

  2. [作成] > [接続タイプ 3(ABAP 接続)] をクリックします。

    トランザクション コードを作成する

  3. [Technical Settings] ウィンドウで、RFC 宛先の詳細を入力します。

  4. [ログオンとセキュリティ] タブをクリックして、RFC 認証情報(RFC ユーザーとパスワード)を保持します。

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

  6. [接続テスト] をクリックします。テストが成功したら、次の手順に進みます。

  7. RFC 承認テストが成功したことを確認します。

  8. [ユーティリティ] > [テスト] > [承認テスト] をクリックします。

Cloud Data Fusion にプラグインをデプロイする

Cloud Data Fusion ユーザーが次の手順を行います。

Cloud Data Fusion レプリケーション ジョブを実行する前に、SAP SLT レプリケーション プラグインをデプロイする必要があります。

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

  2. 目的のインスタンスを開きます。

    Cloud Data Fusion UI が開きます。

  3. [Hub] > [SAP] > [SAP SLT] をクリックします。

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

レプリケーション ジョブを作成してデプロイする

SAP SLT レプリケーション プラグインは、Cloud Storage API ステージング バケットを使用して SAP テーブルのコンテンツを読み取ります。

データ転送のレプリケーション ジョブを作成するには、次の手順に沿って操作します。

  1. レプリケーション ジョブに一意の名前説明を入力します。

  2. [次へ] をクリックします。

ソースを構成します。

  1. 次のフィールドに値を入力して、ソースを構成します。

    • プロジェクト ID: Google Cloud プロジェクトの ID(このフィールドは事前入力されています)
    • データ レプリケーション GCS パス: レプリケーションのためのデータを含む Cloud Storage パス。SAP SLT ジョブで構成されたパスと同じにする必要があります。内部的には、指定されたパスは Mass Transfer IDSource Table Name で連結されます。

      形式: gs://<base-path>/<mass-transfer-id>/<source-table-name>

      例: gs://slt_bucket/012/MARA

    • GUID: SLT GUID(SAP SLT 一括転送 ID に割り当てられた一意の識別子)。

    • 一括転送 ID: SLT 一括転送 ID(SAP SLT の構成に割り当てられた一意の ID)。

    • SAP JCo ライブラリ GCS パス: ユーザーがアップロードした SAP JCo ライブラリ ファイルを含むストレージパス。SAP JCo ライブラリは、SAP サポート ポータルからダウンロードできます。

    • SLT サーバーホスト: SLT サーバーのホスト名または IP アドレス。

    • SAP システム番号: システム管理者によって提供されるインストール システム番号(00 など)。

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

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

    • SAP ログオンのユーザー名: SAP ユーザー名。

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

      • 推奨: パスワードなどの機密性の高い値にはセキュアなマクロを使用します。
    • CDF ジョブの停止時に SLT レプリケーションを停止する: Cloud Data Fusion のレプリケーション ジョブの停止時に SLT レプリケーション ジョブを停止(関連するテーブルの場合)するよう試みます。Cloud Data Fusion のジョブが予期せず停止した場合、失敗する可能性があります。

    • 既存データのレプリケート: ソーステーブルから既存のデータを複製するかどうかを示します。デフォルトでは、ジョブはソーステーブルから既存のデータをレプリケートします。false に設定した場合、ソーステーブル内の既存のデータは無視され、ジョブの開始後に発生した変更のみが複製されます。

    • サービス アカウント キー: Cloud Storage を操作するときに使用するキー。サービス アカウントには、Cloud Storage への書き込み権限が必要です。Google Cloud VM で実行する場合は、VM でサービス アカウント キーを使用する [自動検出] を設定できます。

  2. [テーブルを選択する] ステップで、SLT システムでレプリケーション用に選択されたテーブルのリストが表示されます。

  3. 複製するテーブルを選択し、[Next] をクリックします。

ターゲットを構成する

BigQuery にデータを書き込むには、プラグインに BigQuery とステージング バケットの両方への書き込みアクセス権が必要です。変更イベントは、最初に SLT から Cloud Storage にバッチで書き込まれます。これらは、BigQuery のステージング テーブルに読み込まれます。BigQuery のマージクエリを使用して、ステージング テーブルからの変更が最終的なターゲット テーブルにマージされます。

最終的なターゲット テーブルには、ソーステーブルのすべての元の列と、1 つの追加の _sequence_num 列が含まれます。シーケンス番号を使用することで、レプリケーターに障害が発生したシナリオでデータの重複や欠落を回避できます。

認証情報

プラグインを Dataproc クラスタで実行する場合は、サービス アカウント キーを指定する必要はなく、自動検出に設定できます。認証情報は、クラスタ環境から自動的に読み取られます。

プラグインが Dataproc クラスタで実行されていない場合は、サービス アカウント キーへのパスを指定する必要があります。サービス アカウント キーは、Google Cloud Console の IAM ページで確認できます。BigQuery にアクセスするための権限がアカウント キーに付与されていることを確認します。サービス アカウントの鍵ファイルは、クラスタ内のすべてのノードで使用可能であり、ジョブを実行しているすべてのユーザーから読み取り可能である必要があります。

制限事項

  • テーブルに複製する主キーが必要です。
  • テーブル名の変更オペレーションはサポートされていません。
  • テーブルの変更は部分的にサポートされています。
    • 既存の null 値が許可されない列は、null 値を指定できる列に変更できます。
    • null 値を指定できる既存の列は、既存のテーブルに追加できます。
    • テーブル スキーマに対するその他の種類の変更は失敗します。
    • 主キーの変更は失敗しませんが、既存のデータが新しい主キーで一意になるように書き換えられません。

プロパティ

  • プロジェクト ID: BigQuery データセットのプロジェクト。Dataproc クラスタで実行する場合は空白のままにでき、クラスタのプロジェクトが使用されます。
  • 認証情報: 認証情報をご覧ください。
  • ロケーション: BigQuery データセットと Cloud Storage ステージング バケットが作成されるロケーション。たとえば、リージョン バケットの場合は us-east1、マルチリージョン バケットの場合は us です(ロケーションをご覧ください)。既存のバケットが指定されている場合、ステージング バケットと BigQuery データセットはそのバケットと同じ場所に作成されるため、この値は無視されます。
  • ステージング バケット: 変更イベントがステージング テーブルに読み込まれる前に、書き込まれるバケット。変更は、レプリカ名と名前空間を含むディレクトリに書き込まれます。同じインスタンス内の複数のレプリカ間で同じバケットを使用しても安全です。複数のインスタンス間でレプリカが共有している場合は、名前空間と名前が一意であることを確認してください。それ以外の場合は、動作が未定義になります。バケットは、BigQuery データセットと同じロケーションに存在する必要があります。指定しないと、ジョブごとに df-rbq-<namespace-name>-<job-name>-<deployment-timestamp> という名前の新しいバケットが作成されます。

  • サービス アカウント キー: Cloud Storage や BigQuery とやり取りするときに使用するサービス アカウント キーの内容。Dataproc クラスタで実行する場合は空白のままにできます。クラスタのサービス アカウントが使用されます。

  • 読み込み間隔(秒): データのバッチを BigQuery に読み込むまでに待機する秒数。

  • ステージング テーブルのプレフィックス: まずステージング テーブルに変更が書き込まれた後、最終テーブルにマージされます。ステージング テーブル名は、ターゲット テーブル名の前にこのプレフィックスを付けることで生成されます。

  • 手動ドロップ処理の必要性: ドロップ テーブルまたはデータベース イベントが発生したときに、テーブルとデータセットを削除するために手動での管理アクションが必要かどうか。true に設定すると、レプリカはテーブルやデータセットを削除しません。代わりにテーブルやデータセットが存在するようになるまで失敗と再試行を繰り返します。データセットまたはテーブルが存在しない場合は、手動で操作する必要がありません。イベントは通常どおりスキップされます。

  • データセット名: BigQuery で作成するデータセットの名前。データセット名は省略可能で、デフォルトでは、ソース データベース名と同じです。有効な名前には英字、数字、アンダースコアのみ使用できます。最大長は 1,024 文字です。無効な文字は最終的なデータセット名でアンダースコアに置き換えられ、長さの上限を超える文字は切り捨てられます。

  • Encryption Key Name: このターゲットによって作成されたリソースを保護するために使用される顧客管理の暗号鍵(CMEK)。暗号鍵名は projects/<project-id>/locations/<key-location>/keyRings/<key-ring-name>/cryptoKeys/<key-name> の形式にする必要があります。

省略可: 詳細プロパティを構成する

1 時間あたりに複製するデータの量がわかっている場合は、適切なオプションを選択できます。

評価を確認する

レプリケーション中に発生したスキーマの問題、機能の不足、接続の問題の評価を得ることができます。

  1. [評価の確認] ページで [マッピングを表示] をクリックします。

    問題が発生した場合は、処理を進める前に問題を解決する必要があります。

  2. [次へ] をクリックします。

レプリケーション ジョブの概要とデプロイ

[レプリケーション ジョブの詳細の確認] ページで、設定を確認し、[レプリケーション ジョブのデプロイ] をクリックします。

Compute Engine プロファイルを選択する

  1. レプリケーション ジョブをデプロイしたら、Cloud Data Fusion UI の任意のページで [構成] をクリックします。

  2. このレプリケーション ジョブの実行に使用する Compute Engine プロファイルを選択します。

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

    Cloud Data Fusion UI でコンピューティング プロファイルを選択する

レプリケーション ジョブの開始とモニタリングを行う

レプリケーション ジョブを実行するには、[開始] をクリックします。

Cloud Data Fusion UI でレプリケーション ジョブを開始する

ジョブ ステータスをモニタリングするには、レプリケーション ジョブのログを確認します。レプリケーション ジョブは、選択されたソーステーブルのレプリケーション ジョブのステータスを 5 分間隔で SAP からフェッチします。

省略可: パフォーマンスを最適化する

デフォルトでは、プラグインは最適なパフォーマンスが得られるように構成されています。その他の最適化については、ランタイム引数をご覧ください。

SLT と Cloud Data Fusion の通信のパフォーマンスは、次の要因によって左右されます。

  • ソースシステム上の SLT と専用の中央 SLT システム(推奨オプション)
  • SLT システムでのバックグラウンド ジョブの処理
  • ソース SAP システムでのダイアログ処理プロセス
  • [LTRC アドミニストレーション] タブで各一括転送 ID に割り当てられるバックグラウンド ジョブ プロセスの数
  • LTRS の設定
  • SLT システムのハードウェア(CPU とメモリ)
  • 使用するデータベース(HANA、Sybase、DB2 など)
  • インターネット帯域幅(SAP システムと Google Cloud の間のインターネット経由の接続)
  • システム上の既存の使用率(負荷)
  • テーブル内の列数列数が多いと、レプリケーションが遅くなり、レイテンシが増加する可能性があります。

初期読み込みでは、LTRS 設定で次の読み取りタイプを使用することをおすすめします。

SLT システム ソースシステム テーブルタイプ 推奨される読み取りタイプ
[初期読み込み]
SLT 3.0 スタンドアロン
[DMIS 2018_1_752 SP 2]
S/4 HANA 1909 透過(小 / 中)
透過(大)
クラスタ テーブル
1 範囲の計算
1 範囲の計算
4 送信者キュー
SLT 組み込み
[S4CORE 104 HANA 1909]
該当なし 透過(小 / 中)
透過(大)
クラスタ テーブル
1 範囲の計算
1 範囲の計算
4 送信者キュー
SLT 2.0 スタンドアロン
[DMIS 2011_1_731 SP 17]
ECC NW 7.02 透過(小 / 中)
透過(大)
クラスタ テーブル
5 個の送信者キュー
5 個の送信者キュー
4 個の送信者キュー
SLT 埋め込み
[DMIS 2011_1_700 SP 17]
該当なし 透過(小 / 中)
透過(大)
クラスタ テーブル
5 個の送信者キュー
5 個の送信者キュー
4 個の送信者キュー
  • レプリケーションの場合、範囲がないと、パフォーマンスが向上します。
    • 範囲は、高レイテンシのロギング テーブルにバックログが生成される場合にのみ使用してください。
    • 1 個の範囲計算の使用: SLT 2.0 システムと HANA 以外のシステムでは、初期読み込みの読み取りタイプはおすすめしません。
    • 1 個の範囲計算の使用: 初期ロードの読み取りタイプにより、BigQuery でレコードが重複することがあります。
  • スタンドアロン SLT システムを使用すると、常にパフォーマンスが向上します。
  • ソースシステムのリソース使用率がすでに高い場合については、スタンドアロンの SLT システムを常におすすめします。

ランタイム引数

  • snapshot.thread.count: SNAPSHOT/INITIAL データの読み込みを並行して開始するスレッドの数を渡します。デフォルトでは、レプリケーション ジョブを実行する Dataproc クラスタで使用可能な vCPU の数が使用されます。

    推奨: このパラメータは、並列スレッド数を正確に制御する必要がある場合にのみ使用します(クラスタ上での使用量を減らす場合など)。

  • poll.file.count: UI の [Data Replication GCS Path] フィールドに指定された Cloud Storage パスから、ポーリングするファイルの数を渡します。デフォルトでは、ポーリングごとに 500 ですが、クラスタ構成に基づいて増減できます。

    推奨: このパラメータは、レプリケーションの遅延に関する厳密な要件がある場合にのみ設定します。値が小さいと、遅延が短くなる可能性があります。これを使用すると、スループットが向上します(応答がない場合は、デフォルトよりも大きい値を使用します)。

  • bad.files.base.path: レプリケーション中に見つかったすべてのエラーまたは問題のあるデータファイルがコピーされたベース Cloud Storage パスを渡します。これは、データ監査の要件が厳格で、失敗した転送を記録するために特定のロケーションを使用する必要がある場合に便利です。

    デフォルトでは、問題のあるファイルはすべて、UI の [Data Replication Cloud Storage Path] フィールドで指定された Cloud Storage パスにコピーされます。

    • 問題のあるデータファイルの最終的なパスパターン:

      gs://BASE_FILE_PATH/MASS_TRANSFER_ID/SOURCE_TABLE_NAME/bad_files/REPLICATION_JOB_NAME/REPLICATION_JOB_ID/BAD_FILE_NAME
      

    • 例:

      gs://slt_to_cdf_bucket/001/MARA/bad_files/MaraRepl/05f97349-7398-11ec-9443-8
      ac0640fc83c/20220205_1901205168830_DATA_INIT.xml
      

    不正なファイルの条件は、破損または無効な XML ファイル、PK 値が見つからない、Field データ型の不一致の問題です。

サポートの詳細

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

  • SAP Landscape Transformation(SLT)Server バージョン 2011 SP17 以降
  • DMIS 2011 SP17 以降をサポートする SAP ECC または SAP S/4HANA(DMIS 2018 や DMIS 2020 など)。

サポートされている SLT バージョン

SLT バージョン 2 と 3 がサポートされています。

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

スタンドアロン システムとしての SLT、またはソースシステムに組み込まれた SLT。

SLT の使用を開始する前に実装する必要がある SAP Note

PL12 以降に対する /UI2/CL_JSON クラスの修正がサポート パッケージに含まれていない場合は、/UI2/CL_JSON クラス訂正用の最新の SAP Note(PL12 用の SAP Note 2798102 など)を実装します。

推奨: セントラル システムまたはソースシステムの条件に基づいて、レポート CNV_NOTE_ANALYZER_SLT で推奨される SAP Notes を実装します。詳細については、SAP Note 3016862 をご覧ください(SAP ログインが必要です)。

SAP がすでに設定されている場合、追加のメモを実装する必要はありません。特定のエラーまたは問題については、SLT リリースの中央の SAP Note をご覧ください。

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

抽出されるデータの量とレコードの幅に対して定義された上限はありません。

SAP SLT レプリケーション プラグインのスループットの想定値

パフォーマンスの最適化のガイドラインに沿って構成された環境では、プラグインは初期読み込みに約 13 GB/時間、レプリケーション(CDC)に約 3 GB/時間を抽出します。実際のパフォーマンスは、Cloud Data Fusion、SAP システムの負荷やネットワーク トラフィックによって異なる場合があります。

SAP デルタ(変更データ)抽出のサポート

SAP デルタ抽出(変更データ)抽出がサポートされています。

必須: Cloud Data Fusion インスタンスのテナント ピアリング

テナント ピアリングは、Cloud Data Fusion インスタンスがプライベート IP アドレスで作成される場合に必要です。テナント ピアリングの詳細については、プライベート インスタンスの作成をご覧ください。

トラブルシューティング

レプリケーション ジョブが自動的に再起動し続ける場合は、レプリケーション ジョブクラスタのメモリを増やしてから、レプリケーション ジョブを再実行します。

エラーのシナリオ

次の表に、いくつかの一般的なエラー メッセージを示します(角かっこ内のテキストは、実行時に実際の値に置き換えられます)。

メッセージ ID メッセージ 推奨される対応
CDF_SAP_SLT_0140 エラー: 「根本原因」により指定されたサービス アカウント キーは無効です。有効なサービス アカウント キーを指定してください。 メッセージに表示された根本原因を確認し、適切な措置を講じます。
CDF_SAP_SLT_02403 ユーザーには、「一括転送IDからのUI値」、SAP SLT の一括転送 ID にアクセスする権限がありません。適切な承認が割り当てられていることを確認してください。 メッセージに表示された根本原因を確認し、適切な措置を講じます。
CDF_SAP_SLT_01404 一括転送 ID または GUID が見つかりませんでした。SAP SLT に存在し、アクティブであることを確認してください。 指定された一括転送 ID と GUID が存在することを確認します。
CDF_SAP_SLT_01502 指定されたデータ レプリケーションの Cloud Storage パスの「UI フィールド Data Replication GCS パス」が見つかりませんでした。Cloud Storage に存在することを確認してください。 指定した Cloud Storage のパスが正しいことを確認します。
CDF_SAP_SLT_01503 無効な SLT レプリケーション オペレーション タイプ。サポートされている型は「RESUME」と「SUSPEND」です。 メッセージに表示された根本原因を確認し、適切な措置を講じます。
CDF_SAP_SLT_01400 無効な SAP テーブル「選択したテーブル名」で無効な構成が見つかりました。指定した GUID と一括転送 ID が正しいことを確認してください。 メッセージに表示された根本原因を確認し、適切な措置を講じます。
CDF_SAP_SLT_01504 テーブル「選択したテーブル名」のレプリケーション ジョブを「再開 / 停止」できませんでした。詳細についてはログを確認してください。 メッセージに表示された根本原因を確認し、適切な措置を講じます。
CDF_SAP_SLT_02400 指定されたテーブル「テーブル名」のレプリケーション ステータスを取得できませんでした。詳細についてはログを確認してください。 メッセージに表示された根本原因を確認し、適切な措置を講じます。
CDF_SAP_SLT_02503 指定されたテーブル「テーブル名」のレプリケーション ステータスを取得できませんでした。詳細についてはログを確認してください。 メッセージに表示された根本原因を確認し、適切な措置を講じます。
CDF_SAP_SLT_03403 指定されたテーブル「選択したテーブル名」のレプリケーション ジョブを開始することを承認されていません。レプリケーションに使用される SAP ユーザーに必要な承認が割り当てられていることを確認してください。 メッセージに表示された根本原因を確認し、適切な措置を講じます。
CDF_SAP_SLT_03408 イベント リーダーを開始できませんでした。 メッセージに表示された根本原因を確認し、適切な措置を講じます。
CDF_SAP_SLT_03409 ソーステーブル「テーブル名」の「ストレージ データ レプリケーション ファイルのパス」ファイルの処理中にエラーが発生しました。根本原因: 「根本原因」。 メッセージに表示された根本原因を確認し、適切な措置を講じます。
CDF_SAP_SLT_03410 ファイル「ストレージ データ レプリケーション ファイルのパス」からソーステーブル「テーブル名」のデータを複製できませんでした。根本原因: 「根本原因」。 メッセージに表示された根本原因を確認し、適切な措置を講じます。
CDF_SAP_SLT_03411 ソーステーブル「テーブル名」のデータ レプリケーションに失敗しました。根本原因: 「根本原因」。 メッセージに表示された根本原因を確認し、適切な措置を講じます。
CDF_SAP_SLT_03412 ソーステーブル「テーブル名」のターゲット テーブルを作成できませんでした。根本原因: 「根本原因」。 メッセージに表示された根本原因を確認し、適切な措置を講じます。
CDF_SAP_SLT_03413 ソーステーブル「選択したテーブル名」の SLT レプリケーション ジョブを一時停止できませんでした。 メッセージに表示された根本原因を確認し、適切な措置を講じます。
CDF_SAP_SLT_03414 ソーステーブル「テーブル名」の SLT レプリケーション ジョブのステータスを取得できませんでした。 メッセージに表示された根本原因を確認し、適切な措置を講じます。

データ型マッピング

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

SAP のデータ型 ABAP のタイプ 説明(SAP) Cloud Data Fusion のデータ型
数値
INT1 b 1 バイトの整数 int
INT2 2 バイトの整数 int
INT4 i 4 バイトの整数 int
INT8 8 8 バイトの整数 long
12月 p BCD 形式でパックされた番号(DEC) decimal
DF16_DEC
DF16_RAW
&nbsp; 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
GEOM_EWKB
文字列 文字列 CLOB bytes
NUMC
ACCP
n 数値テキスト string
Byte
RAW
LRAW
x バイナリデータ bytes
RAWSTRING xstring バイト文字列 BLOB bytes
日時
DATS d 日付 date
時刻 t 時間 time
タイムスタンプ utcl ( Utclong )
TimeStamp
timestamp

次のステップ