BigQuery Connector for SAP を Google Cloud の外部のホストにインストールして構成する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

このガイドでは、オンプレミス、別のクラウド プロバイダ、または Google 以外の別の環境にあるホストで実行されている SAP LT Replication Server にバージョン 2.5(最新) の BigQuery Connector for SAP をインストールして構成する方法について説明します。

このガイドでは、BigQuery、SAP Landscape Transformation Replication Server(SAP LT Replication Server)、BigQuery Connector for SAP を準備し、SAP アプリケーションから SAP データをリアルタイムで直接かつ安全に BigQuery にレプリケートする方法を説明します。

このガイドは、SAP 管理者、Google Cloud 管理者などの SAP と Google Cloud のセキュリティやデータの専門家を対象としています。

前提条件

BigQuery Connector for SAP をインストールする前に、次の前提条件を満たしていることを確認してください。

  • BigQuery Connector for SAP のプランニング ガイドを確認している。このプランニング ガイドでは、BigQuery Connector for SAP のオプション、パフォーマンスに関する考慮事項、フィールド マッピングなど、BigQuery Connector for SAP の最適な構成に必要な情報について説明します。
  • Google Cloud プロジェクトが存在しない場合は作成します。

    プロジェクト セレクタに移動

  • プロジェクトで課金が有効になっている。プロジェクトで課金が有効になっていることを確認してください。BigQuery ストリーミング API と BigQuery を使用する場合と、BigQuery Connector for SAP をダウンロードする場合は、請求先アカウントが必要です。

  • SAP のプロダクトの可用性マトリックスで説明されているように、インストールされている SAP ソフトウェアのメンテナンスは最新状態であり、すべての SAP ソフトウェアのバージョン間に互換性がある。

  • ソフトウェアの要件に記載されているとおり、使用している SAP ソフトウェアのバージョンが BigQuery Connector for SAP でサポートされている。

  • SAP LT Replication Server SDK を使用して任意のターゲットにデータを複製するには、正しい SAP ライセンスが必要です。SAP ライセンスの詳細については、SAP Note 2707835 をご覧ください。

  • SAP LT Replication Server がインストールされている。SAP LT Replication Server のインストールの詳細については、SAP のドキュメントをご覧ください。

  • SAP LT Replication Server とソースシステムの間の RFC 接続またはデータベース接続が構成されている。必要に応じて、SAP トランザクション SM59 を使用し、RFC 接続をテストしてください。データベース接続は、SAP トランザクション DBACOCKPIT を使用して、テストしてください。

インストールと構成のプロセスの概要

次の表に、このガイドで説明する手順と、対象の手順を行うロールを示します。

手順 ロール
必要に応じて、SAP から適切なライセンスをすべて検証したら、SAP の手順に沿って SAP Landscape Transformation Replication Server をインストールします。 SAP 管理者。
必要に応じて、SAP NetWeaver のユーザー インターフェース(UI)アドオンをインストールします。詳細については、SAP ソフトウェア バージョンの要件をご覧ください。 SAP 管理者。
SAP システムと Google Cloud との間で、ネットワーク接続を確立します。 ネットワーク管理者。
必要な Google Cloud APIs を有効にします Google Cloud 管理者。
Google Cloud APIs への限定公開アクセスを有効にします Google Cloud ネットワーク管理者。
必要に応じて、SAP LT Replication Server ホストに CLI をインストールします。 SAP 管理者。
BigQuery データセットを作成します。 Google Cloud の管理者またはデータ エンジニア。
Google Cloud の認証と認可を設定します Google Cloud セキュリティ管理者。
BigQuery Connector for SAP インストール パッケージをダウンロードします Google Cloud 請求先アカウント所有者。
BigQuery Connector for SAP をインストールします SAP 管理者。
BigQuery Connector for SAP の SAP ロールと権限を作成します SAP 管理者。
レプリケーションを構成します データ エンジニアまたは管理者。
レプリケーションをテストします データ エンジニアまたは管理者。
レプリケーションを検証します データ エンジニアまたは管理者。

Google Cloud へのネットワーク接続を確立する

SAP ワークロードが Google Cloud で実行されていない場合は、ユーザーまたはネットワーク管理者が、Google Cloud に対する安全で高帯域幅、かつ低レイテンシの接続を確立する必要があります。

接続には次の 2 つの方法があります。

接続を設定するには、選択した Google Cloud 接続サービスが指定する手順に沿って操作します。

接続サービスごとにシナリオが異なれば手順も異なるため、サービス ドキュメントを確認し、目的のシナリオに従ってください。

必要な Google Cloud APIs を有効にする

BigQuery Connector for SAP が BigQuery にアクセスするには、次の Google Cloud APIs を有効にする必要があります。

  • BigQuery API
  • IAM Service Account Credentials API

Google Cloud APIs を有効にする方法については、API を有効にするをご覧ください。

Google Cloud APIs への限定公開アクセスを有効にする

Google Cloud で SAP ワークロードが実行されていない場合は、Google Cloud へのネットワーク接続を確立した後、Google Cloud APIs への限定公開アクセスを有効にする必要があります。

限定公開 API アクセスを有効にするには、オンプレミス ホスト用の限定公開の Google アクセスを構成するをご覧ください。

BigQuery データセットを作成する

BigQuery の Google Cloud 認証と認可をテストするか、ターゲット BigQuery テーブルを作成するには、まずユーザーまたはデータ エンジニア、あるいは管理者が BigQuery データセットを作成する必要があります。

BigQuery データセットを作成するには、ユーザー アカウントに、BigQuery に対する適切な IAM 権限が必要です。詳細については、必要な権限をご覧ください。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    BigQuery に移動

  2. プロジェクト ID の横にある View actions アイコン、、[データセットを作成] を順にクリックします。

    図は前述のテキストで説明されています。

  3. [データセット ID] フィールドに、SAP LT Replication Server の要件に従ってテキスト ID を大文字で入力します。

Google Cloud の認証と認可を設定したら、このデータセットに関する情報を取得して、Google Cloud へのアクセスをテストします。

BigQuery データセットの作成の詳細については、データセットの作成をご覧ください。

Google Cloud の認証と認可を設定する

Google Cloud に対する認証と BigQuery へのアクセス承認のために、Google Cloud セキュリティ管理者と SAP 管理者は次のいずれかの方法を使用する必要があります。

OS コマンドを使用したアクセス トークンの取得

このセクションでは、オペレーティング システム(OS)コマンドを使用して Google Cloud からアクセス トークンを取得するときに、Google Cloud への認証と BigQuery へのアクセスの承認を設定する方法について説明します。

大まかな設定手順は次のとおりです。

gcloud CLI をインストールする

BigQuery へのレプリケーションには、sidadm ユーザー アカウントに SAP LT Replication Server ホストの Google Cloud CLI(gcloud CLI)へのアクセス権が必要です。

gcloud CLI は、SAP 管理者がインストールできます。

gcloud CLI をインストールするには、次の手順を行います。

  1. gcloud CLI のインストール手順を行います。

  2. sidadm ユーザー アカウントが gcloud CLI インストール ディレクトリにアクセスすることを許可します。

  3. 必要に応じて sidadm として、gcloud CLI のデフォルト プロジェクトを設定します。

    gcloud config set project PROJECT_ID

    PROJECT_ID は、BigQuery データセットを含むプロジェクトの ID に置き換えます。例: example-project-123456

    gcloud CLI のデフォルト プロジェクトを設定していない場合は、発行する各 gcloud コマンドで --project プロパティを指定する必要があります。

プロキシ サーバーを使用して HTTP リクエストを Google Cloud に送信する場合は、プロキシの背後で使用されるように gcloud CLI を構成します。構成の詳細については、プロキシ / ファイアウォールの背後で gcloud CLI を使用する場合の構成をご覧ください。

gcloud CLI に対する BigQuery Connector for SAP の要件の詳細については、gcloud CLI の要件をご覧ください。

サービス アカウントを作成する

BigQuery Connector for SAP には、BigQuery にアクセスするための認証と認可のための IAM サービス アカウントが必要です。

このサービス アカウントは、BigQuery データセットを含む Cloud プロジェクトで、プリンシパルでなければなりません。サービス アカウントを BigQuery データセットと同じプロジェクトで作成すると、そのサービス アカウントはプリンシパルとして自動的にプロジェクトに追加されます。

BigQuery データセットを含むプロジェクト以外のプロジェクトでサービス アカウントを作成する場合は、別のステップで BigQuery データセット プロジェクトにサービス アカウントを追加する必要があります。

サービス アカウントを作成するには、次の手順を行います。

  1. Google Cloud コンソールで、[IAM と管理] の [サービス アカウント] ページに移動します。

    [サービス アカウント] に移動

  2. プロンプトが表示されたら、Google Cloud プロジェクトを選択します。

  3. [サービス アカウントを作成] をクリックします。

  4. サービス アカウントの名前を指定します。必要であれば、説明も入力します。

  5. [作成して続行] をクリックします。

  6. サービス アカウントを BigQuery データセットと同じプロジェクトで作成する場合は、[このサービス アカウントにプロジェクトへのアクセスを許可する] パネルで次のロールを選択します。

    • BigQuery データ編集者
    • BigQuery ジョブユーザー

    サービス アカウントを BigQuery データセットとは異なるプロジェクトで作成する場合は、サービス アカウントにロールを付与しないでください。

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

  8. 必要に応じて、他のユーザーにサービス アカウントへのアクセス権を付与します。

  9. [完了] をクリックします。プロジェクトのサービス アカウントのリストにサービス アカウントが表示されます。

  10. サービス アカウントを BigQuery データセットを含むプロジェクトとは別のプロジェクトで作成した場合は、サービス アカウントの名前をメモします。この名前は、BigQuery プロジェクトにサービス アカウントを追加するときに指定します。詳細については、 サービス アカウントを BigQuery プロジェクトに追加します

サービス アカウントは、サービス アカウントが作成された Google Cloud プロジェクトの [IAM 権限] ページにプリンシパルとして表示されます。

サービス アカウント キーを作成する

JSON サービス アカウント キーを作成して、SAP LT Replication Server ホストに保存する必要があります。

サービス アカウント キーを作成するには、次の手順を行います。

  1. Google Cloud コンソールで、[IAM と管理] の [サービス アカウント] ページに移動します。

    [サービス アカウント] に移動

  2. Google Cloud プロジェクトを選択します。

  3. 前のセクションの サービス アカウントの作成

  4. サービス アカウント名で [キー] タブをクリックします。

  5. [鍵を追加] プルダウン メニューをクリックして [新しい鍵を作成] を選択し、サービス アカウント キーを作成します。

  6. 鍵のタイプとして JSON を使用し、[作成] をクリックします。

    秘密鍵がパソコンに保存されます。この鍵は、SAP LT Replication Server ホストにサービス アカウント キーをインストールするに説明されているとおり、SAP LT Replication Server ホストにアップロードするために SAP 管理者へ渡します。

サービス アカウントを BigQuery プロジェクトに追加する

ターゲット BigQuery データセットを含むプロジェクト以外のプロジェクトで BigQuery Connector for SAP のサービス アカウントを作成した場合は、BigQuery データセット プロジェクトにサービス アカウントを追加する必要があります。

BigQuery データセットと同じプロジェクトでサービス アカウントを作成した場合は、このステップをスキップできます。

既存のサービス アカウントを BigQuery データセット プロジェクトに追加するには、次の手順を行います。

  1. Google Cloud コンソールで IAM の [権限] ページに移動します。

    IAM の [権限] に移動

  2. ターゲット BigQuery データセットが含まれるプロジェクトの名前がページの上部付近に表示されていることを確認します。例:

    プロジェクト「PROJECT_NAME」の権限

    表示されていない場合は、プロジェクトを切り替えます。

  3. [IAM] ページで、[追加] をクリックします。[PROJECT_NAME」にプリンシパルを追加します] ダイアログが開きます。

  4. [PROJECT_NAME」プロジェクトにプリンシパルを追加する] ダイアログで、次の手順を行います。

    1. [新しいプリンシパル] フィールドに、サービス アカウントの名前を指定します。
    2. [ロールを選択] フィールドで [BigQuery データ編集者] を指定します。
    3. [別のロールを追加] をクリックします。[ロールを選択] フィールドが再び表示されます。
    4. [ロールを選択] フィールドで、[BigQuery ジョブユーザー] を指定します。
    5. [保存] をクリックします。サービス アカウントは、[IAM] ページのプロジェクト プリンシパルのリストに表示されます。

これで、サービス アカウントを使用して、このプロジェクト内の BigQuery データセットにアクセスできるようになりました。

SAP LT Replication Server ホストで Google Cloud に対するセキュリティ設定を構成します

サービス アカウント キーを SAP LT Replication Server ホストにインストールする

前のセクションで作成したサービス アカウント キーを SAP LT Replication Server ホストにアップロードし、サービス アカウント キーを使用するように gcloud CLI を構成します。

これらの手順は通常、SAP 管理者が行います。

サービス アカウント キーをインストールするには、次の手順を行います。

  1. JSON キーファイルを SAP LT Replication Server ホスト上の安全な場所にアップロードします。

  2. SAP LT Replication Server ホストで、sidadm ユーザーに切り替えます。

    sudo su - sidadm
  3. 認証にサービス アカウント キーを使用するように gcloud CLI を構成します。

    gcloud auth activate-service-account SERVICE_ACCOUNT --key-file=SERVICE_ACCOUNT_KEY

    次のように置き換えます。

    • SERVICE_ACCOUNT: 前のステップで BigQuery Connector for SAP 用に作成したサービス アカウントの名前。例: bq-connector-for-sap@example-project-123456.iam.gserviceaccount.com
    • SERVICE_ACCOUNT_KEY: SAP LT Replication Server ホストにアップロードした JSON サービス アカウント キーのディレクトリ パスとファイル名。例: PATH_TO_JSON_KEY_FILE/KEY_FILE_NAME.json
  4. gcloud CLI でサービス アカウントが有効になったら、SERVICE_ACCOUNT_KEY を削除できます。gcloud CLI では、サービス アカウントがアクティブになったときに鍵のコピーが保存されます。

gcloud CLI の認可の詳細については、サービス アカウントでの認可をご覧ください。

アクセス トークンを出力する OS コマンドを作成する

ユーザーまたは SAP 管理者が Google Cloud からアクセス トークンを取得するオペレーティング システム コマンドを構成する必要があります。

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

通常、この作業は SAP 管理者によって実行されます。

OS コマンドを作成するには、ご使用のオペレーティング システムのタブをクリックして次の手順を行います。

Linux

  1. SAP LT Replication Server ホストで、sidadm がアクセスできるディレクトリに、次の行を含む bash スクリプトを作成します。

    #!/bin/bash
    /PATH_TO_GCLOUD_CLI/bin/gcloud auth print-access-token | fold -sw 127
  2. SAP GUI を使用して、外部オペレーティング システムのコマンドを作成します。

    1. トランザクション SM69 を入力します。
    2. [Create] をクリックします。
    3. 外部コマンドパネルの [Command] セクションで、コマンドの名前を入力します。例: ZGOOG_SLTBQ
    4. [Definition] セクションで次の操作を行います。

      • [Operating System Command] フィールドに、スクリプト ファイルの拡張子として「sh」と入力します。
      • [Parameters for Operating System Command] フィールドに、次のように入力します。

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

    6. [Execute] をクリックしてスクリプトをテストします。

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

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

Windows

  1. Windows ホストにログインします。
  2. Windows PowerShell を管理者として使用して、新しい PowerShell サブディレクトリに Windows PowerShell モジュールを作成し、SAP システムのアクセス トークンをリクエストしてフォーマットします。

    1. 次のコマンド シーケンスを使用して、Windows Server システムにディレクトリとモジュール ファイルを作成します。ディレクトリとモジュールには同じ名前を使用します。

      cd C:\Windows\system32\WindowsPowerShell\v1.0\Modules
      mkdir MODULE_NAME
      cd MODULE_NAME
      notepad MODULE_NAME.psm1
    2. 次の 2 つの関数定義をコピーして MODULE_NAME.psm1 ファイルに貼り付けます。

      Function Fold-Token{
          [CmdletBinding()]
          Param(
              [Parameter(ValueFromPipeline)]
              $token
          )
          $token -split "(.{127})" | Where-Object{$_}
      }
      
      Function Get-Token{
          gcloud auth print-access-token | Fold-Token
      }
      
      Export-ModuleMember -function Get-Token
  3. Windows PowerShell で、コマンド Get-Token をテストします。

    Get-Token

    Google Cloud のアクセス トークンが Windows PowerShell コンソールに表示されます。

  4. SAP GUI で、トランザクション コード SM69 を入力します。

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

  6. [External Command] パネルの [Command] セクションで、コマンドの名前を入力します。例: ZGOOG_SLTBQ

  7. [Definition] セクションで次の操作を行います。

    1. [Operating System Command] フィールドに、「powershell」と入力します。
    2. [Parameters for Operating System Command] フィールドに、前の手順で作成した MODULE_NAME.psm1 モジュールで定義された関数の名前を入力します。
    Get-Token
  8. [Save] をクリックします。

  9. [Execute] をクリックしてスクリプトをテストします。

  10. もう一度 [Execute] をクリックします。

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

SSL 証明書と HTTPS を設定する

BigQuery Connector for SAP と BigQuery API 間の通信は、SSL と HTTPS を使用して保護されます。

  1. Google Trust Services リポジトリから、次の証明書をダウンロードします。

    • GTS Root R1
    • GTS CA 1C3
  2. SAP GUI で、STRUST トランザクションを使用して、ルート証明書と下位証明書の両方を SSL client SSL Client (Standard) PSE フォルダにインポートします。

    SAP の詳細については、SAP ヘルプ - PSE 認定資格のリストの保守をご覧ください。

  3. SAP LT Replication Server ホストで、HTTPS ポートから BigQuery API への下り(外向き)トラフィックを許可するように、ファイアウォール ルールかプロキシが構成されていることを確認します。

    具体的には、SAP LT Replication Server は、次の Google Cloud APIs にアクセスできる必要があります。

    • https://bigquery.googleapis.com
    • https://iamcredentials.googleapis.com

    BigQuery Connector for SAP で VPC ネットワーク内の Private Service Connect エンドポイントを介して Google Cloud API にアクセスする場合は、RFC 宛先を構成して、その RFC 宛先の Private Service Connect エンドポイントを指定する必要があります。詳細については、RFC の宛先をご覧ください。

SSL の設定に関する SAP からの詳細情報については、SAP Note 510007 - Additional considerations for setting up SSL on Application Server ABAP をご覧ください。

Google Cloud の認証と認可をテストする

Google Cloud の認証が正しく構成されていることは、アクセス トークンをリクエストして BigQuery データセットに関する情報を取得することで確認します。

SAP LT Replication Server ホストからの Google Cloud の認証と認可をテストするには、次の手順を使用します。

  1. SAP LT Replication Server ホストで、コマンドライン シェルを開きます。

  2. sidadm として、Google Cloud にアクセス トークンをリクエストします。

    /home/SIDadm/google-cloud-sdk/bin/gcloud auth print-access-token \
     SERVICE_ACCOUNT
    

    次のように置き換えます。

    • SERVICE_ACCOUNT: 前の手順で BigQuery Connector for SAP 用に作成したサービス アカウント。
    • SID: SAP システム ID。

    メタデータ サーバーは、次の例のようなアクセス トークンを返します。ACCESS_TOKEN_STRING は、次のステップでコマンドにコピーするアクセス トークン文字列です。

    {"access_token":"ACCESS_TOKEN_STRING","expires_in":3599,"token_type":"Bearer"}
  3. BigQuery データセットに関する情報を、BigQuery API から取得します。

    curl "https://bigquery.googleapis.com/bigquery/v2/projects/PROJECT_ID/datasets/DATASET_NAME" \
     -H "Accept: application/json" -H "Authorization: Bearer ACCESS_TOKEN_STRING"
    

    次のように置き換えます。

    • PROJECT_ID: BigQuery データセットを含むプロジェクトの ID。
    • DATASET_NAME: BigQuery で定義されているターゲット データセットの名前。
    • ACCESS_TOKEN_STRING: 前のステップで Google Cloud から返されたアクセス トークン文字列。

    Google Cloud 認証が正しく構成されていれば、BigQuery はデータセットに関する情報を返します。

    データセット情報が想定どおりに返されない場合は、構成手順を確認してください。トラブルシューティングの詳細については、BigQuery Connector for SAP のトラブルシューティングをご覧ください。

JWT を使用したアクセス トークンの取得

このセクションでは、Google Cloud 署名付き JSON ウェブトークン(JWT)を使用して Google Cloud からアクセス トークンを取得するときに、Google Cloud への認証と BigQuery へのアクセスの承認を設定する方法について説明します。

JWT ベースの認証では、Google Cloud CLI をインストールし、SAP LT Replication Server ホストに OS レベルのコマンドを作成しなくても、Google Cloud で認証できます。

大まかな設定手順は次のとおりです。

JWT ベースのトークン取得用のサービス アカウントの作成

サービス アカウントを作成する

Google Cloud に対する JWT ベースの認証には、SAP 用 BigQuery コネクタに IAM サービス アカウントが必要です。

JWT ベースのトークン取得用のサービス アカウントを作成するには、次の手順を行います。

  1. Google Cloud コンソールで、[IAM と管理] の [サービス アカウント] ページに移動します。

    [サービス アカウント] に移動

  2. プロンプトが表示されたら、Google Cloud プロジェクトを選択します。

  3. [サービス アカウントを作成] をクリックします。

  4. サービス アカウントの名前を指定します。必要であれば、説明も入力します。

  5. [作成して続行] をクリックします。

  6. [このサービス アカウントにプロジェクトへのアクセスを許可する] パネルで、[サービス アカウント トークン作成者] 役割を選択します。

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

  8. 必要に応じて、他のユーザーにサービス アカウントへのアクセス権を付与します。

  9. [完了] をクリックします。Google Cloud プロジェクトのサービス アカウントのリストにサービス アカウントが表示されます。

サービス アカウント キーを作成する

JWT ベースのトークン取得に使用するサービス アカウントに P12 サービス アカウント キーを作成する必要があります。

サービス アカウント キーを作成するには、次の手順を行います。

  1. Google Cloud コンソールで、[IAM と管理] の [サービス アカウント] ページに移動します。

    [サービス アカウント] に移動

  2. Google Cloud プロジェクトを選択します。

  3. 前のセクションのサービス アカウントの作成で JWT ベースのトークン取得用に作成したサービス アカウントのメールアドレスをクリックします。

  4. サービス アカウント名で [キー] タブをクリックします。

  5. [鍵を追加] プルダウン メニューをクリックして [新しい鍵を作成] を選択し、サービス アカウント キーを作成します。

  6. 鍵のタイプとして P12 を使用し、[作成] をクリックします。

    秘密鍵がパソコンに保存されます。

  7. 秘密鍵ファイル notasecret のパスワードをメモします。

    サービス アカウント キーを STRUST にインポートするの説明に従って、秘密鍵を SAP 管理者に提供して STRUST に秘密鍵をインポートします。

SAP LT Replication Server ホストでサービス アカウントの JWT 署名を有効にする

JWT ベースのトークン取得用に作成したサービス アカウントの JWT 署名を有効にするには、テーブル /GOOG/BQ_PARAM にパラメータ JWT_SERVC_ACCT を追加し、サービス アカウントを構成する必要があります。

サービス アカウントの JWT 署名を有効にするには、次の操作を行います。

  1. SAP GUI で、/n で始まる /GOOG/SLT_SETTINGS トランザクションを入力します。

    /n/GOOG/SLT_SETTINGS
  2. /GOOG/SLT_SETTINGS トランザクションの起動画面の [Settings Table] プルダウン メニューから [Parameters] を選択します。

  3. [Execute] アイコンをクリックします。[BigQuery 設定メンテナンス - パラメータ] 画面が表示されます。

  4. [行を挿入] アイコンをクリックします。

  5. 表示された行で、次の設定を指定します。

    1. [Parameter Name] フィールドに「JWT_SERVC_ACCT」と入力します。パラメータの説明は自動的に入力されます。
    2. [Parameter Value] フィールドに、前のセクションの「サービス アカウントの作成」で JWT ベースのトークン取得用に作成したサービス アカウントのメールアドレスを入力します。
  6. [保存] をクリックします。

    設定はレコードとして /GOOG/BQ_PARAM 構成テーブルに保存され、[Changed By]、[Changed On]、[Changed At] の各フィールドに自動的に挿入されます。

SAP LT Replication Server ホストで Google Cloud に対するセキュリティ設定を構成します

新しいセキュアストアと転送(SSF)アプリケーションの作成

テーブル SSFAPPLIC では、ZG_JWT エントリが SAP コネクタの BigQuery コネクタの一部としてインポートされます。ZG_JWT エントリがインポートされていない場合は、トランザクション SE16 を使用して ZG_JWT という名前の新しいエントリを作成する必要があります。

テーブル SSFAPPLIC に新しいエントリを作成するには、次の手順に沿って操作します。

  1. SAP GUI で、トランザクション コード SE16 を入力します。
  2. [Table Name] フィールドに「SSFAPPLIC」と入力して、新しいエントリを作成します。
  3. [APPLIC] フィールドに「ZG_JWT」と入力します。
  4. B_INCCERTSB_DETACHEDB_ASKPWDB_DISTRIB の各フィールドを除いて、その他のフィールドはすべて選択します。
  5. [DESCRIPT] フィールドに「JWT Signature for GCP」と入力します。
  6. 新しいエントリを保存します。

    このエントリは、サービス アカウント キーをインポートするトランザクション STRUST の新しいノードになります。

STRUST ノードを有効にする

トランザクション SSFA を使用して、JWT Signature for GCPSTRUST ノードを有効にします。

STRUST ノードを有効にするには、次の手順を行います。

  1. SAP GUI で、トランザクション コード SSFA を入力します。
  2. [新しいエントリ] をクリックします。
  3. [SSF Application] プルダウン リストで、[JWT Signature for GCP] を選択します。 これは、テーブル SSFAPPLIC に作成した新しいエントリです。

    アプリケーション固有の SSF パラメータは自動的に入力されます。

  4. 新しいエントリを保存します。

    トランザクション STRUST で新しいノード SSF JWT Signature for GCP が有効になっています。サービス アカウント キーをこのノードにインポートします。

サービス アカウント キーを STRUST にインポートします

サービス アカウント キーを STRUST にインポートするには、次の手順を行います。

  1. SAP GUI で、トランザクション コード STRUST を入力します。

    トランザクション STRUST の新しいノードが SSF JWT Signature for GCP であることを確認します。

  2. 秘密鍵ファイルをインポートします。

    1. メニューバーから [PSE] > [Import] を選択します。
    2. ソースシステムの種類に応じて、適切な秘密鍵を選択します。
      • S4/HANA
        1. P12 秘密鍵を選択します。
        2. ファイル パスワード notasecret を入力し、[OK] をクリックします。
      • ECC
        1. PSE 秘密鍵を選択します。先ほどダウンロードした P12 秘密鍵を PSE 秘密鍵に変換する必要があります。P12 鍵を PSE 鍵に変換する方法について詳しくは、P12 鍵を PSE 鍵に変換するをご覧ください。
        2. P12 鍵から PSE 鍵への秘密鍵変換中に作成したファイル PIN を入力し、[OK] をクリックします。
  3. [PSE] > [Save as] を選択します。

  4. [SSF Application] のオプション ボタンを選択し、新しいセキュアストアと転送(SSF)アプリケーションの作成で作成した新しい SSF アプリケーション ノードを、対応するフィールドに選択します。

  5. 新しいエントリを保存します。

    サービスキーは SSF アプリケーション ノード SSF JWT Signature for GCP に接続されています。

P12 秘密鍵を PSE 鍵に変換する

ソースシステムが SAP NetWeaver 7.0x(SAP ECC)の場合、P12 鍵を PSE 鍵に変換する必要があります。

P12 鍵を PSE 鍵に変換するには、次の手順を実行します。

  1. パスに移動します。

    /usr/sap/SID/SYS/exe/run/

    SID は、SAP システム ID に置き換えます。

  2. プレースホルダを置き換えてから、次のコマンドを実行します。

    sapgenpse import_p12 -p PSE_PATH_AND_FILE_NAME P12_PATH_AND_FILE_NAME.p12

    以下を置き換えます。

    • PSE_PATH_AND_FILE_NAME: PSE ファイルのパスとファイル名を指定します
    • P12_PATH_AND_FILE_NAME: P12 鍵ファイルのパスとファイル名を指定します
  3. P12 秘密鍵ファイル(notasecret)のパスワードを入力します。

  4. PSE 秘密鍵用の新しい PIN を作成し、再入力します。

  5. PIN をメモしておきます。PSE 秘密鍵ファイルを STRUST にインポートする際に、この PIN を指定する必要があります。

P12 鍵を PSE 鍵に変換する方法については、SAP Note 2148457 - How to transform a keypair of the PKCS#12 / PFX container to a PSE file をご覧ください。

BigQuery へのアクセスを承認するためのサービス アカウントを作成する

サービス アカウントを作成する

BigQuery Connector for SAP には、BigQuery にアクセスするための認証と認可のための IAM サービス アカウントが必要です。

このサービス アカウントは、BigQuery データセットを含む Cloud プロジェクトで、プリンシパルでなければなりません。サービス アカウントを BigQuery データセットと同じプロジェクトで作成すると、そのサービス アカウントはプリンシパルとして自動的にプロジェクトに追加されます。

BigQuery データセットを含むプロジェクト以外のプロジェクトでサービス アカウントを作成する場合は、別のステップで BigQuery データセット プロジェクトにサービス アカウントを追加する必要があります。

サービス アカウントを作成するには、次の手順を行います。

  1. Google Cloud コンソールで、[IAM と管理] の [サービス アカウント] ページに移動します。

    [サービス アカウント] に移動

  2. プロンプトが表示されたら、Google Cloud プロジェクトを選択します。

  3. [サービス アカウントを作成] をクリックします。

  4. サービス アカウントの名前を指定します。必要であれば、説明も入力します。

  5. [作成して続行] をクリックします。

  6. サービス アカウントを BigQuery データセットと同じプロジェクトで作成する場合は、[このサービス アカウントにプロジェクトへのアクセスを許可する] パネルで次のロールを選択します。

    • BigQuery データ編集者
    • BigQuery ジョブユーザー

    サービス アカウントを BigQuery データセットとは異なるプロジェクトで作成する場合は、サービス アカウントにロールを付与しないでください。

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

  8. 必要に応じて、他のユーザーにサービス アカウントへのアクセス権を付与します。

  9. [完了] をクリックします。プロジェクトのサービス アカウントのリストにサービス アカウントが表示されます。

  10. サービス アカウントを BigQuery データセットを含むプロジェクトとは別のプロジェクトで作成した場合は、サービス アカウントの名前をメモします。この名前は、BigQuery プロジェクトにサービス アカウントを追加するときに指定します。詳細については、サービス アカウントを BigQuery プロジェクトに追加するをご覧ください。

サービス アカウントは、サービス アカウントが作成された Google Cloud プロジェクトの [IAM 権限] ページにプリンシパルとして表示されます。

サービス アカウントを BigQuery プロジェクトに追加する

ターゲット BigQuery データセットを含むプロジェクト以外のプロジェクトで BigQuery Connector for SAP のサービス アカウントを作成した場合は、BigQuery データセット プロジェクトにサービス アカウントを追加する必要があります。

BigQuery データセットと同じプロジェクトでサービス アカウントを作成した場合は、このステップをスキップできます。

既存のサービス アカウントを BigQuery データセット プロジェクトに追加するには、次の手順を行います。

  1. Google Cloud コンソールで IAM の [権限] ページに移動します。

    IAM の [権限] に移動

  2. ターゲット BigQuery データセットが含まれるプロジェクトの名前がページの上部付近に表示されていることを確認します。例:

    プロジェクト「PROJECT_NAME」の権限

    表示されていない場合は、プロジェクトを切り替えます。

  3. [IAM] ページで、[追加] をクリックします。[PROJECT_NAME」にプリンシパルを追加します] ダイアログが開きます。

  4. [PROJECT_NAME」プロジェクトにプリンシパルを追加する] ダイアログで、次の手順を行います。

    1. [新しいプリンシパル] フィールドに、サービス アカウントの名前を指定します。
    2. [ロールを選択] フィールドで [BigQuery データ編集者] を指定します。
    3. [別のロールを追加] をクリックします。[ロールを選択] フィールドが再び表示されます。
    4. [ロールを選択] フィールドで、[BigQuery ジョブユーザー] を指定します。
    5. [保存] をクリックします。サービス アカウントは、[IAM] ページのプロジェクト プリンシパルのリストに表示されます。

これで、サービス アカウントを使用して、このプロジェクト内の BigQuery データセットにアクセスできるようになりました。

SSL 証明書と HTTPS を設定する

BigQuery Connector for SAP と BigQuery API 間の通信は、SSL と HTTPS を使用して保護されます。

  1. Google Trust Services リポジトリから、次の証明書をダウンロードします。

    • GTS Root R1
    • GTS CA 1C3
  2. SAP GUI で、STRUST トランザクションを使用して、ルート証明書と下位証明書の両方を SSL client SSL Client (Standard) PSE フォルダにインポートします。

    SAP の詳細については、SAP ヘルプ - PSE 認定資格のリストの保守をご覧ください。

  3. SAP LT Replication Server ホストで、HTTPS ポートから BigQuery API への下り(外向き)トラフィックを許可するように、ファイアウォール ルールかプロキシが構成されていることを確認します。

    具体的には、SAP LT Replication Server は、次の Google Cloud APIs にアクセスできる必要があります。

    • https://bigquery.googleapis.com
    • https://iamcredentials.googleapis.com

    BigQuery Connector for SAP で VPC ネットワーク内の Private Service Connect エンドポイントを介して Google Cloud API にアクセスする場合は、RFC 宛先を構成して、その RFC 宛先の Private Service Connect エンドポイントを指定する必要があります。詳細については、RFC の宛先をご覧ください。

SSL の設定に関する SAP からの詳細情報については、SAP Note 510007 - Additional considerations for setting up SSL on Application Server ABAP をご覧ください。

ABAP 構成を作成する

RFC 宛先を作成する

RFC 宛先 GOOG_OAUTH2_TOKENGOOG_IAMCREDENTIALSGOOG_BIGQUERY は、SAP トランスポート用の BigQuery コネクタの一部としてインポートされます。これらの RFC 宛先がインポートされない場合、トランザクション SM59 を使用して新しい RFC 宛先 GOOG_OAUTH2_TOKENGOOG_IAMCREDENTIALSGOOG_BIGQUERY を作成する必要があります。

RFC 宛先の作成については、RFC 宛先の構成をご覧ください。

/GOOG/CLIENT_KEY にアクセス設定を指定する

トランザクション SM30 を使用して、Google Cloud へのアクセスを指定します。BigQuery Connector for SAP は、/GOOG/CLIENT_KEY カスタム構成テーブルにレコードとして設定を保存します。

アクセス設定を指定するには、次の手順を行います。

  1. SAP GUI で、トランザクション コード SM30 を入力します。

  2. /GOOG/CLIENT_KEY 構成テーブルを選択します。

  3. 次のテーブル フィールドに値を入力します。

    フィールド データ型 説明
    名前 文字列 この CLIENT_KEY 構成の名前。
    サービス アカウント名 文字列

    サービス アカウントを作成するで BigQuery Connector for SAP 用に作成したサービス アカウントの名前(メールアドレス形式)。例: sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com

    範囲 String アクセス スコープ。

    Compute Engine の推奨事項に従って、https://www.googleapis.com/auth/cloud-platform API アクセス スコープを指定します。

    プロジェクト ID 文字列 対象とする BigQuery データセットを含むプロジェクトの ID。
    コマンド名 String このフィールドは空白のままにしておきます。
    認可クラス String 認証クラス。

    /GOOG/CL_GCP_AUTH_JWT を指定します。

    認可フィールド 該当なし このフィールドは空白のままにしておきます。
    トークンの更新期限(秒) Integer このフィールドは空白のままにしておきます。
/GOOG/SERVIC_MAP で RFC 宛先を指定する

トランザクション SM30 を使用して、サービス マッピング テーブル /GOOG/SERVIC_MAP に RFC 宛先を指定します。

RFC 宛先を指定するには、次の手順を実行します。

  1. SAP GUI で、トランザクション コード SM30 を入力します。

  2. 前のセクションで作成した /GOOG/CLIENT_KEY テーブルで、[名前] フィールドの値をメモします。

  3. テーブル /GOOG/SERVIC_MAP で、次のフィールド値を持つエントリを作成します。

名前 サービス名 RFC 宛先
CLIENT_KEY_TABLE_NAME googleapis.com/oauth2 GOOG_OAUTH2_TOKEN
CLIENT_KEY_TABLE_NAME iamcredentials.googleapis.com GOOG_IAMCREDENTIALS

CLIENT_KEY_TABLE_NAME は、前の手順でメモしたテーブル名に置き換えます。

インストール パッケージをダウンロードする

BigQuery Connector for SAP のダウンロード ポータルから最新の BigQuery Connector for SAP のインストール パッケージをダウンロードします。

ダウンロードを完了するには、Cloud Billing 請求番号が必要です。請求先アカウントについて詳しくは、Cloud Billing とお支払いプロファイルをご覧ください。

インストール パッケージには、SAP LT Replication Server の適切なトランスポート ディレクトリにコピーするトランスポート ファイルが含まれています。

BigQuery Connector for SAP をインストールする

BigQuery Connector for SAP トランスポート ファイルを含むインストール パッケージを受け取ったら、SAP 管理者は、トランスポート ファイルを SAP LT Replication Server にインポートすることで、BigQuery Connector for SAP をインストールできます。

BigQuery Connector for SAP 用の SAP トランスポートには、/GOOG/ 名前空間、DDIC オブジェクト、SLT SDK BADI の実装とクラスなど、BigQuery Connector for SAP に必要なすべてのオブジェクトが含まれています。

トランスポート ファイルを SAP LT Replication Server にインポートする前に、ソフトウェア要件に記載されているとおり、SAP LT Replication Server が BigQuery Connector for SAP でサポートされていることを確認します。

サポートされているバージョンの SAP LT Replication Server を使用していても、トランスポート ファイルをインポートする際に、エラー メッセージ Requests do not match the component version of the target system が表示される場合があります。このような場合は、トランスポート ファイルを SAP LT Replication Server に再インポートする必要があります。再インポート中は、[Import Transport Request] 画面 > [Options] タブで [Ignore Invalid Component Version] チェックボックスをオンにします。

次の手順は、おおまかな手順です。SAP システムはそれぞれ異なるため、SAP 管理者と連携して、SAP システムに必要な手順への変更点を確認してください。

  1. BigQuery Connector for SAP トランスポート ファイルを、次の SAP LT Replication Server トランスポート インポート ディレクトリにコピーします。

    • /usr/sap/trans/cofiles/KXXXXXX.ED1
    • /usr/sap/trans/data/RXXXXXX.ED1

    上記の例で、XXXXXX は、番号付きのファイル名を表します。

  2. SAP GUI で、トランザクション コード STMS_IMPORT または STMS を使用して、ファイルを SAP システムにインポートします。

  3. /GOOG/SLT_SDK パッケージのすべてのオブジェクトがアクティブで、整合性のある状態にします。

    1. SAP インターフェースで、トランザクション コード SE80 を入力します。
    2. パッケージ セレクタで、/GOOG/SLT_SDK を選択します。
    3. [Object name] フィールドで、パッケージ /GOOG/SLT_SDK を右クリックし、[Check] > [Package Check] > [Objects of Package] を選択します。

      [Result] 列の緑色のチェックは、すべてのオブジェクトがパッケージ チェックに合格したことを示します。

BigQuery Connector for SAP が構成できることを確認する

トランスポート ファイルが正しくインポートされ、BigQuery Connector for SAP を構成する準備ができていることを確認するには、BigQuery Connector for SAP Business Add-In(BAdI)の実装が有効で、BigQuery Connector for SAP レプリケーション アプリケーションには、IUUC_REPL_APPL テーブルのエントリがあります。

  1. BAdI の実装を確認します。
    1. トランザクション SE80 を使用して移動し、/GOOG/EI_IUUC_REPL_RUNTIME_BQ 拡張オブジェクト フォルダを選択します。
    2. ページの右側にある [Enh. Implementation Elements] をクリックします。
    3. [Runtime Behavior] で、[Implementation is active] がオンになっていることを確認します。
  2. レプリケーション アプリケーションを確認します。
    1. SAP データブラウザかトランザクション SE16 を使用して、IUUC_REPL_APPL テーブルを表示します。
    2. 次のアプリケーションが IUUC_REPL_APPL テーブルに表示されていることを確認します。
      • /GOOG/SLT_BQ
      • ZGOOG_SLT_BQ: /GOOG/ 名前空間が登録されていないときに使用します。

BigQuery Connector for SAP のロールと認可を作成する

BigQuery Connector for SAP を使用するには、標準の SAP LT Replication Server 承認に加えて、BigQuery Connector for SAP に付属のカスタム トランザクション /GOOG/SLT_SETTINGS/GOOG/REPLIC_VALID です。

負荷シミュレーション ツールを使用するには、BigQuery Connector for SAP に付属のカスタム トランザクション /GOOG/LOAD_SIMULATE にアクセスする必要があります。

デフォルトでは、カスタム トランザクションにアクセスできるユーザーがどの構成の設定も変更できるため、必要に応じて特定の構成へのアクセスを制限できます。

BigQuery Connector for SAP トランスポート ファイルには、BigQuery Connector for SAP に固有の承認用の Google BigQuery Settings Authorization オブジェクト ZGOOG_MTID が含まれています。

カスタム トランザクションへのアクセス権を付与し、特定の構成へのアクセスを制限するには:

  1. SAP トランザクション コード PFCG を使用して、BigQuery Connector for SAP のロールを定義します。

  2. そのロールに、カスタム トランザクション /GOOG/SLT_SETTINGS/GOOG/REPLIC_VALID/GOOG/LOAD_SIMULATE へのアクセス権を付与します。

  3. ロールのアクセスを制限するには、ZGOOG_MTID 認可オブジェクトを使用してロールがアクセスできる各構成の認可グループを指定します。例:

    • BigQuery Connector for SAP(ZGOOG_MTID)の認可オブジェクト:
      • Activity 01
      • Authorization Group AUTH_GROUP_1,AUTH_GROUP_N

    AUTH_GROUP_01AUTH_GROUP_N は、SAP LT Replication Server 構成で定義されている値です。

    ZGOOG_MTID に指定された認可グループは、SAP S_DMIS_SLT 認可オブジェクト内のロールに指定された認可グループと一致する必要があります。

レプリケーションの構成

レプリケーションを構成するには、BigQuery Connector for SAP と SAP LT Replication Server の両方の設定を指定します。

/GOOG/CLIENT_KEY にアクセス設定を指定する

トランザクション SM30 を使用して、BigQuery へのアクセス用の設定を指定します。BigQuery Connector for SAP は、/GOOG/CLIENT_KEY カスタム構成テーブルにレコードとして設定を保存します。

アクセス設定を指定するには:

  1. SAP GUI で、トランザクション コード SM30 を入力します。

  2. /GOOG/CLIENT_KEY 構成テーブルを選択します。

  3. 次のテーブル フィールドに値を入力します。

    フィールド データ型 説明
    名前 文字列 この CLIENT_KEY 構成の名前。
    サービス アカウント名 文字列

    このフィールドは空白のままにしておきます。

    範囲 文字列

    このフィールドは空白のままにしておきます。

    プロジェクト ID 文字列 対象とする BigQuery データセットを含むプロジェクトの ID。
    コマンド名 文字列

    アクセス トークンを出力する OS コマンドを作成するで定義した外部オペレーティング システム コマンドの名前。

    認可クラス 文字列 レプリケーションに使用する認可クラス。

    /GOOG/CL_GCP_AUTH を指定します。

    認可フィールド 該当なし このフィールドは空白のままにしておきます。
    トークンの更新期限(秒) Integer

    アクセス トークンの有効期限が切れ、更新が必要になるまでの時間(秒)。デフォルト値は 3500 です。このデフォルト値は、詳細設定CMD_SECS_DEFLT パラメータの値を設定することで上書きできます。

    1 から 3599 まで値を指定すると、デフォルトの有効期限がオーバーライドされます。0 を指定すると、SAP 用 BigQuery コネクタはデフォルト値を使用します。

    トークンのキャッシュ保存 ブール値 Google Cloud から取得したアクセス トークンをキャッシュに保存するかどうかを決定するフラグ。

    BigQuery Connector for SAP の構成と Google Cloud への接続テストが完了したら、トークンのキャッシュ保存を有効にすることをおすすめします。トークンのキャッシュ保存の詳細については、トークンのキャッシュ保存の有効化をご覧ください。

RFC 宛先を構成する

BigQuery Connector for SAP を Google Cloud に接続するには、RFC 宛先を使用することをおすすめします。

レプリケーションの RFC 宛先を構成するには:

  1. SAP GUI で、トランザクション コード SM59 を入力します。

  2. (推奨)サンプルの RFC 宛先 GOOG_BIGQUERYGOOG_IAMCREDENTIALS をコピーして新しい RFC 宛先を作成し、新しい RFC 宛先の名前をメモします。これらは、後のステップで使用します。

    BigQuery Connector for SAP は RFC 宛先を使用して BigQuery と IAM API にそれぞれ接続します。

    RFC 宛先ベースの接続をテストする場合は、この手順をスキップしてサンプルの RFC 宛先を使用できます。

  3. 作成した RFC 宛先に対して、次の手順を行います。

    1. [Technical Settings] タブに移動して、[Service No.] フィールドの値が 443 に設定されていることを確認します。これは、RFC 宛先が安全な通信に使用するポートです。

    2. [ログオンとセキュリティ] タブに移動し、[SSL 証明書] フィールドが [DFAULT SSL Client (Standard)] のオプションで設定されていることを確認します。

    3. 必要に応じて、プロキシ設定を構成し、HTTP 圧縮を有効化して、Private Service Connect エンドポイントを指定します。

    4. 変更を保存します。

    5. 接続をテストするには、[Connection Test] をクリックします。

      RFC 宛先で指定されたエンドポイントが Google Cloud サービスに対応し、サービスによってホストされる特定のリソースではないため、404 Not Found を含むレスポンスは許容され、想定されます。このようなレスポンスは、ターゲットの Google Cloud サービスに到達でき、ターゲット リソースが見つからなかったことを示します。

  4. SAP GUI で、トランザクション コード SM30 を入力します。

  5. 前のセクションで作成した /GOOG/CLIENT_KEY テーブルで、[名前] フィールドの値をメモします。

  6. テーブル /GOOG/SERVIC_MAP で、次のフィールド値を持つエントリを作成します。

    Google Cloud キー名 Google サービス名 RFC 宛先
    CLIENT_KEY_TABLE_NAME bigquery.googleapis.com BigQuery をターゲットとする RFC 宛先の名前を指定します。テスト目的でサンプル RFC 宛先を使用している場合は、GOOG_BIGQUERY を指定します。
    CLIENT_KEY_TABLE_NAME iamcredentials.googleapis.com IAM をターゲットとする RFC 宛先の名前を指定します。テスト目的でサンプル RFC 宛先を使用している場合は、GOOG_IAMCREDENTIALS を指定します。

    CLIENT_KEY_TABLE_NAME は、前の手順でメモしたクライアント キー名で置き換えます。

プロキシを設定する

RFC 宛先を使用して Google Cloud に接続する場合は、SAP ランドスケープで使用しているプロキシ サーバーを介して、BigQuery Connector for SAP から通信をルーティングできます。

プロキシ サーバーを使用しない場合や、SAP ランドスケープにプロキシ サーバーがない場合は、この手順をスキップできます。

BigQuery Connector for SAP のプロキシ サーバー設定を構成するには、次の手順を行います。

  1. SAP GUI で、トランザクション コード SM59 を入力します。

  2. IAM をターゲットとする RFC 宛先を選択します。

  3. [Technical Settings] タブに移動して、[HTTP Proxy Options] セクションのフィールドに値を入力します。

  4. BigQuery をターゲットとする RFC 宛先で、前の手順を繰り返します。

HTTP 圧縮を有効にする

RFC 宛先を使用して Google Cloud に接続する場合は、HTTP 圧縮を有効にできます。

この機能を有効にしない場合は、この手順をスキップできます。

HTTP 圧縮を有効にするには、次の手順を実行します。

  1. SAP GUI で、トランザクション コード SM59 を入力します。

  2. BigQuery をターゲットとする RFC の宛先を選択します。

  3. [Special Options] タブに移動します。

  4. [HTTP バージョン] フィールドで [HTTP 1.1] を選択します。

  5. [Compression] フィールドで、適切な値を選択します。

    圧縮オプションの詳細については、SAP Note 1037677 - HTTP 圧縮 特定のドキュメントのみを圧縮するをご覧ください。

Private Service Connect エンドポイントを指定する

BigQuery Connector for SAP で Private Service Connect エンドポイントを使用して、BigQuery と IAM のプライベート使用を許可する場合は、Cloud プロジェクトでこれらのエンドポイントを作成し、エンドポイントをそれぞれの RFC 宛先で指定する必要があります。

BigQuery Connector for SAP で、引き続きデフォルトのパブリック API エンドポイントを使用して BigQuery と IAM に接続する場合は、この手順をスキップします。

Private Service Connect エンドポイントを使用するように BigQuery Connector for SAP を構成するには、次の手順を行います。

  1. SAP GUI で、トランザクション コード SM59 を入力します。

  2. BigQuery と IAM に新しい RFC 宛先が作成されていることを確認します。これらの RFC 宛先の作成方法については、RFC 宛先の構成をご覧ください。

  3. BigQuery をターゲットとする RFC 宛先を選択し、次の手順を行います。

    1. [Technical Settings] タブに移動します。

    2. [Target Host] フィールドに、BigQuery にアクセスするために作成した Private Service Connect エンドポイントの名前を入力します。

    3. [ログオンとセキュリティ] タブに移動します。

    4. [サービス番号] 項目で、値 443 が指定されていることを確認します。

    5. [SSL Certificate] フィールドで、[DFAULT SSL Client (Standard)] オプションが選択されていることを確認します。

  4. IAM をターゲットとする RFC の宛先を選択し、次の手順を行います。

    1. [Technical Settings] タブに移動します。

    2. [Target Host] フィールドに、IAM にアクセスするために作成した Private Service Connect エンドポイントの名前を入力します。

    3. [ログオンとセキュリティ] タブに移動します。

    4. [サービス番号] 項目で、値 443 が指定されていることを確認します。

    5. [SSL Certificate] フィールドで、[DFAULT SSL Client (Standard)] オプションが選択されていることを確認します。

トークンのキャッシュを有効にする

レプリケーションのパフォーマンスを向上させるために、Google Cloud から取得するアクセス トークンのキャッシュを有効にして、BigQuery にアクセスすることをおすすめします。

トークン キャッシュを有効化すると、アクセス トークンの有効期限が切れるか取り消されるまで、アクセス トークンを再利用されます。これにより、新しいアクセス トークンを取得する HTTP 呼び出しの回数が減少します。

トークンのキャッシュ保存を有効にするには、クライアント キー テーブル /GOOG/CLIENT_KEY の [トークンのキャッシュ保存] フラグを選択します。

トークン キャッシュを有効にすると、アクセス トークンは、/GOOG/CLIENT_KEY テーブルの Token Refresh Seconds フィールドで設定されている期間、SAP LT Replication Server アプリケーション サーバーの共有メモリにキャッシュされます。Token Refresh Seconds が指定されていない場合、または 0 に設定されている場合、アクセス トークンは、詳細設定CMD_SECS_DEFLT パラメータで指定された値でキャッシュされます。

Google Cloud で実行されていない SAP ワークロードの場合、キャッシュされたアクセス トークンを使用すると、SAP LT Replication Server の複数のプロセスが同時にデータ リクエストアクセス トークンを取得できます。

キャッシュされたアクセス トークンを消去する

トークン キャッシュが有効であり、BigQuery Connector for SAP が BigQuery へのアクセスに使用するサービス アカウントに割り当てられたロールを更新すると、更新されたロールに対応する新しいアクセス トークンは、キャッシュされた既存のトークンの有効期限が切れた後にのみ取得されます。このような場合は、アクセス トークンを手動で消去できます。

キャッシュされたアクセス トークンを消去するには、トランザクション SE38 を入力してから、プログラム /GOOG/R_CLEAR_TOKEN_CACHE を実行します。

SAP LT Replication Server レプリケーション構成を作成する

SAP トランザクション LTRC を使用して、SAP LT Replication Server レプリケーション構成を作成します。

SAP LT Replication Server がソース SAP システムとは異なるサーバーで稼働している場合は、レプリケーション構成を作成する前に、2 つのシステム間に RFC 接続があることを確認します。

レプリケーション構成の一部の設定がパフォーマンスに影響を与えます。インストールに適した設定値については、SAP ヘルプポータルで、ご使用の SAP LT Replication Server バージョンのパフォーマンス最適化ガイドをご覧ください。

SAP LT Replication Server のインターフェースと構成オプションは、使用しているバージョンによって若干異なる場合があります。

レプリケーションを構成するには、SAP LT Replication Server のバージョンに応じた手順を使用します。

DMIS 2011 SP17、DMIS 2018 SP02 以降でレプリケーションを構成する

次の手順では、新しいバージョンの SAP LT Replication Server でレプリケーションを構成します。以前のバージョンを使用している場合は、DMIS 2011 SP16、DMIS 2018 SP01 以前でレプリケーションを構成するをご覧ください。

  1. SAP GUI で、トランザクション コード LTRC を入力します。

  2. [Create configuration] アイコンをクリックします。[Create configuration] ウィザードが開きます。

  3. [Configuration Name] フィールドと [Description] フィールドに、構成の名前と説明を入力し、[Next] をクリックします。

    認可グループを指定して、特定の認可グループへのアクセスを制限できます。これは後で指定するもできます。

  4. [Source System Connection Details] パネルで次の操作を行います。

    • [RFC Connection] ラジオボタンをオンにします。
    • [RFC Destination] フィールドに、ソースシステムへの RFC 接続の名前を指定します。
    • 必要に応じて、[Allow Multiple Usage] と [Read from Single Client] のチェックボックスをオンにします。詳細については、SAP LT Replication Server のドキュメントをご覧ください。
    • [Next] をクリックします。

    上記の手順は RFC 接続の場合ですが、ソースがデータベースで、トランザクション DBACOCKPIT を使用してすでに接続を定義している場合は、[DB Connection] を選択できます。

  5. [Target System Connection Details] パネルで次の操作を行います。

    • [Other] のラジオボタンを選択します。
    • [Scenario] フィールドで、プルダウン メニューから [SLT SDK] を選択します。
    • [Next] をクリックします。
  6. [Specify Transfer Settings] パネルで、次の操作を行います。

    1. [Data Transfer Settings] セクションの [Application] フィールドに、「/GOOG/SLT_BQ」または「ZGOOG_SLT_BQ」と入力します。

    2. [Job options] セクションで、次の各フィールドに初期値を入力します。

      • Number of Data Transfer Jobs
      • Number of Initial Load Jobs
      • Number of Calculation Jobs
    3. [Replication Options] セクションで、[Real Time] ラジオボタンを選択します。

    4. [Next] をクリックします。

  7. 構成を確認したら、[Save] をクリックします。

  8. [Mass Transfer] 列の 3 桁の ID をメモします。この値は、後のステップで使用します。

詳細については、SAP Note 2652704 に付属の PDF(Replicating Data Using SLT SDK - DMIS 2011 SP17, DMIS 2018 SP02.pdf)をご覧ください。

DMIS 2011 SP16、DMIS 2018 SP01 以前でレプリケーションを構成する

次の手順では、以前のバージョンの SAP LT Replication Server でレプリケーションを構成します。これよりも後のバージョンを使用している場合は、DMIS 2011 SP17、DMIS 2018 SP02 以降でレプリケーションを構成するをご覧ください。

  1. SAP GUI で、トランザクション コード LTRC を入力します。
  2. [New] をクリックします。新しい構成を指定するためのダイアログが開きます。
  3. [Specify Source System] で次の操作を行います。
    • 接続タイプとして [RFC Connection] を選択します。
    • RFC 接続名を入力します。
    • [Allow Multiple Usage] が選択されていることを確認します。
  4. [Specify Target System] ステップで、次の操作を行います。
    • ターゲット システムへの接続データを入力します。
    • 接続タイプとして [RFC Connection] を選択します。
    • [Scenario for RFC Communication] フィールドで、プルダウン リストから [Write Data to Target Using BAdI] という値を選択します。RFC 接続は自動的に [NONE] に設定されます。
  5. [Specify Transfer Settings] の手順で、[F4 Help] を押します。以前に定義したアプリケーションが [Application] フィールドに表示されます。
  6. [Mass Transfer] 列の 3 桁の ID をメモします。この値は、後のステップで使用します。

詳細については、SAP Note 2652704 に付属の PDF(Replicating Data Using SLT SDK - DMIS 2011 SP15, SP16, DMIS 2018 SP00, SP01.pdf)をご覧ください。

BigQuery への大量転送構成を作成する

カスタム /GOOG/SLT_SETTINGS トランザクションを使用して、BigQuery の一括転送を構成し、テーブルとフィールドのマッピングを指定します。

初期の一括転送オプションを選択する

/GOOG/SLT_SETTINGS トランザクションを初めて入力するときに、BigQuery の一括転送構成で編集が必要な部分を選択します。

一括転送構成の部分を選択するには:

  1. SAP GUI で、/n で始まる /GOOG/SLT_SETTINGS トランザクションを入力します。

    /n/GOOG/SLT_SETTINGS
  2. /GOOG/SLT_SETTINGS トランザクションの起動画面の [Settings Table] プルダウン メニューから [Mass Transfers] を選択します。

    新しい転送構成の場合は、[Mass Transfer Key] フィールドを空白のままにします。

  3. [Execute] アイコンをクリックします。[BigQuery Settings Maintenance - Mass Transfers] 画面が表示されます。

テーブル作成とその他の一般的な属性を指定する

BigQuery の一括転送構成の最初のセクションで、一括転送構成を特定し、関連するクライアント キーと、ターゲット BigQuery テーブルの作成に関連する特定のプロパティを指定します。

SAP LT Replication Server が一括転送設定をレコードとして /GOOG/BQ_MASTR カスタム構成テーブルに保存します。

次の手順で指定するフィールドは必須になります。

  1. [BigQuery Settings Maintenance - Mass Transfers] 画面で、[Append Row] アイコンをクリックします。

  2. 表示された行で、次の設定を指定します。

    1. [Mass Transfer Key] フィールドで、この転送の名前を定義します。この名前が一括転送の主キーになります。
    2. [Mass Transfer ID] フィールドに、対応する SAP LT Replication Server レプリケーション構成の作成時に生成された 3 桁の ID を入力します。
    3. BigQuery でターゲット フィールドの名前としてソース フィールドのラベルまたは簡単な説明を使用するには、[Use Custom Names Flag] チェックボックスをオンにします。フィールド名の詳細については、フィールドのデフォルトの命名オプションをご覧ください。
    4. 挿入をトリガーした変更の種類を保存し、ソーステーブル、SAP LT Replication Server 統計情報、BigQuery テーブル間のレコード数の検証を有効にするには、[Extra Fields Flag] チェックボックスをオンにします。

      このフラグを設定すると、BigQuery Connector for SAP は BigQuery テーブル スキーマに列を追加します。詳しくは、レコード変更とカウントクエリ用の追加フィールドをご覧ください。

    5. データエラーのあるレコードが発生したときにデータの送信を停止するには、[Break at First Error Flag] チェックボックスをオンにします。また、そうすることが推奨されます。詳細については、BREAK フラグをご覧ください。

    6. 必要に応じて、チャンクのバイトサイズが、BigQuery が受け入れる HTTP リクエストの最大バイトサイズを超えた場合にチャンクサイズを自動的に小さくするには、[動的チャンクサイズのフラグ] チェックボックスをオンにします。動的チャンクサイズの詳細については、動的チャンクサイズをご覧ください。

    7. データエラーのあるレコードが検出されたときに、レコードをスキップして BigQuery テーブルにレコードを挿入し続けるには、[Skip Invalid Records Flag] チェックボックスをオンにします。これは、オフのままにすることをおすすめします。詳細については、SKIP フラグをご覧ください。

    8. [Google Cloud Key Name] フィールドに、対応する /GOOG/CLIENT_KEY 構成の名前を入力します。

      BigQuery Connector for SAP は、/GOOG/CLIENT_KEY 構成から自動的に Google Cloud プロジェクト ID を取得します。

    9. [BigQuery Dataset] フィールドに、前の手順で作成したターゲット BigQuery データセットの名前を入力します。

    10. [Is Setting Active Flag] フィールドで、チェックボックスをオンにして一括転送構成を有効にします。

    11. [Save] をクリックします。

      一括転送レコードは /GOOG/BQ_MASTR テーブルに追加され、[Changed By]、[Changed On]、[Changed At] フィールドに自動的に値が挿入されます。

    12. [Display Table] をクリックします。

      新しい一括転送レコードが表示され、その後にテーブル属性のエントリパネルが表示されます。

テーブル属性を指定する

/GOOG/SLT_SETTINGS トランザクションの 2 番目のセクションで、テーブル名やテーブルのパーティショニングなどのテーブル属性や、各転送に含めるレコード数や BigQuery に送信されるチャンクを指定できます。

指定した設定は、レコードとして /GOOG/BQ_TABLE 構成テーブルに保存されます。

これらの設定は任意です。

テーブル属性を指定するには:

  1. 行を追加アイコンをクリックします。

  2. [SAP Table Name] フィールドに、ソース SAP テーブルの名前を入力します。

  3. [External Table Name] フィールドに、ターゲット BigQuery テーブルの名前を入力します。ターゲット テーブルが存在しない場合、BigQuery Connector for SAP は、この名前のテーブルを作成します。BigQuery のテーブル命名規則については、テーブルの命名をご覧ください。

  4. [Send Uncompressed Flag] フィールドで、レコードの圧縮を無効にします。BigQuery Connector for SAP がソーステーブルで初期化された値を使用してソースレコードの空のフィールドを複製する必要がある場合にのみ、このフラグを指定します。パフォーマンスを向上させるには、このフラグを指定しないでください。詳細については、レコードの圧縮をご覧ください。

  5. 必要に応じて、[Chunk Size] フィールドに、BigQuery に送信される各チャンクに含めるレコードの最大数を指定します。BigQuery Connector for SAP ではデフォルトのチャンクサイズ(10,000 レコード)を使用することをおすすめします。必要に応じて、チャンクサイズを 50,000 レコードまで増やすことができます。これは、BigQuery Connector for SAP で許可されている最大チャンクサイズです。

    ソースレコードに多くのフィールドがある場合、フィールド数によってはチャンクの全体的なバイトサイズが増加し、チャンクエラーが発生することがあります。この場合は、チャンクサイズを小さくしてバイトサイズを減らしてみてください。詳細については、BigQuery Connector for SAP のチャンクサイズをご覧ください。チャンクサイズを自動的に調整するには、動的チャンクサイズを有効にします。詳細については、動的チャンクサイズをご覧ください。

  6. 必要に応じて、[Partition Type] フィールドで、パーティショニングに使用する時間の増分を指定します。有効な値は HOURDAYMONTH、または YEAR です。詳細については、テーブル パーティショニングをご覧ください。

  7. 必要に応じて、[Partition Field] フィールドに、ターゲット BigQuery テーブルでパーティショニングに使用するタイムスタンプを含むフィールド名を指定します。[Partition Field] を指定する場合は、[Partition Type] も指定する必要があります。詳細については、テーブル パーティショニングをご覧ください。

  8. [Is Setting Active Flag] フィールドで、チェックボックスをクリックしてテーブル属性を有効にします。[Is Setting Active Flag] ボックスがオンでない場合、BigQuery Connector for SAP は、SAP ソーステーブルの名前とデフォルトのチャンクサイズを使用して、パーティショニングは行わずに BigQuery テーブルを作成します。

  9. [Save] をクリックします。

    属性はレコードとして /GOOG/BQ_TABLE 構成テーブルに保存され、[Changed By]、[Changed On]、[Changed At] の各フィールドに自動的に挿入されます。

  10. [Display Fields] をクリックします。

    新しいテーブル属性レコードが表示され、その後にフィールド マッピングのエントリパネルが表示されます。

デフォルトのフィールド マッピングをカスタマイズする

ソース SAP テーブルにタイムスタンプ フィールドやブール値が含まれている場合は、ターゲット BigQuery テーブルのデータタイプを正確に反映するように、デフォルトのデータ型マッピングを変更します。

他のデータ型やターゲット フィールドの名前を変更することもできます。

デフォルトのマッピングは SAP GUI で直接編集できます。他のユーザーが SAP LT Replication Server にアクセスせずに値を編集できるように、デフォルトのマッピングをスプレッドシートまたはテキスト ファイルにエクスポートすることもできます。

デフォルトのフィールド マッピングと実施できる変更の詳細については、フィールド マッピングをご覧ください。

ターゲット BigQuery フィールドのデフォルト マッピングをカスタマイズするには:

  1. トランザクション /GOOG/SLT_SETTINGS の [BigQuery Settings Maintenance - Fields] ページで、現在構成している一括転送のデフォルト フィールド マッピングを表示します。

  2. 必要に応じて、[External Data Element] 列でデフォルトのターゲット データ型を編集します。特に、以下のデータ型のターゲット データ型を変更します。

    • タイムスタンプ。デフォルトのターゲット データ型を、NUMERIC から TIMESTAMP または TIMESTAMP (LONG) に変更します。
    • ブール値。デフォルトのターゲット データ型を STRING から BOOLEAN に変更します。
    • 16 進数。デフォルトのターゲット データ型を STRING から BYTES に変更します。

    デフォルトのデータ型マッピングを編集するには:

    1. 編集が必要なフィールドの行で、[External Data Element] フィールドをクリックします。
    2. データ型のダイアログで、必要な BigQuery データ型を選択します。
    3. 変更内容を確認し、[Save] をクリックします。
  3. [BigQuery Settings Maintenance] ページで [Custom Names] フラグを指定した場合は、必要に応じて [Temporary Field Name] 列のデフォルトのターゲット フィールド名を編集します。

    指定した値は、[External Field Name] 列に表示されるデフォルトの名前をオーバーライドします。

  4. 必要に応じて、[Field Description] 列のデフォルトのターゲット フィールドの説明を編集します。

  5. 必要に応じて、外部編集用にフィールド マップをエクスポートします。手順については、CSV ファイルで BigQuery のフィールド マップを編集するをご覧ください。

  6. すべての変更が完了し、外部で編集された値がアップロードされたら、[Is Setting Active Flag] チェックボックスがオンになっていることを確認します。[Is Setting Active Flag] がオンになっていない場合、BigQuery Connector for SAP によってターゲット テーブルがデフォルト値で作成されます。

  7. [Save] をクリックします。

    変更は、/GOOG/BQ_FIELD 構成テーブルに保存され、[Changed By]、[Changed On]、[Changed At] フィールドに自動的に挿入されます。

レプリケーションをテストする

レプリケーションの構成をテストするには、データ プロビジョニングを開始します。

  1. SAP GUI で、SAP LT Replication Server Cockpit(トランザクション LTRC)を開きます。

  2. テストしているテーブル レプリケーションの一括転送構成をクリックします。

  3. [Data Provisioning] をクリックします。

  4. [Data Provisioning] パネルで、データ プロビジョニングを開始します。

    1. ソーステーブルの名前を入力します。
    2. テストするデータ プロビジョニングの種類のラジオボタンをオンにします([Start Load] など)。
    3. [Execute] アイコンをクリックします。データ転送が開始され、[Participating objects] 画面に進行状況が表示されます。

      テーブルが BigQuery に存在しない場合、BigQuery Connector for SAP は、以前に /GOOG/SLT_SETTINGS トランザクションで定義したテーブルとフィールド属性から構築するスキーマからテーブルを作成します。

      テーブルの初期読み込みにかかる時間は、テーブルのサイズとレコード数によって異なります。

      メッセージは、SAP LT Replication Server でトランザクション LTRC の [Application Logs] セクションに書き込まれます。

または、負荷シミュレーション ツールを使用して、BigQuery へのレプリケーションをテストできます。詳細については、負荷シミュレーション ツールをご覧ください。

S/4HANA のレプリケーション

レプリケーションは、次の方法を使用して検証できます。

  • SAP LT Replication Server の場合:
    • [Data Provisioning] 画面でレプリケーションをモニタリングします。
    • [Application Logs] 画面でエラー メッセージを確認します。
  • BigQuery のテーブル情報タブ:
    • [スキーマ] タブで、スキーマが正しく表示されることを確認します。
    • [プレビュー] タブで、挿入された行のプレビュー表示を確認します。
    • [詳細] タブで、挿入された行数、テーブルサイズ、その他の情報を確認します。
  • BigQuery テーブルの構成時に [Extra Fields Flag] チェックボックスがオンになっている場合は、/GOOG/REPLIC_VALID カスタム トランザクションを入力して、レプリケーション検証ツールを実行します。

SAP LT Replication Server のレプリケーションを確認する

トランザクション LTRC を使用して、初期読み込みまたはレプリケーション ジョブの開始後に進行状況を確認し、エラー メッセージをチェックします。

SAP LT Replication Server の [Load Statistics] タブで読み込みのステータスを確認し、[Data Transfer Monitor] タブでジョブの進行状況を確認します。

トランザクション LTRC の [Application Logs] 画面には、BigQuery、BigQuery Connector for SAP、SAP LT Replication Server によって返されるすべてのメッセージが表示されます。

SAP LT Replication Server の BigQuery Connector for SAP コードによって発行されたメッセージの先頭には、接頭辞 /GOOG/SLT が付いています。BigQuery API から返されるメッセージの先頭には、接頭辞 /GOOG/MSG が付いています。

SAP LT Replication Server によって返されるメッセージの先頭には、/GOOG/ 接頭辞は付きません。

BigQuery でレプリケーションを確認する

Google Cloud コンソールで、テーブルが作成され、BigQuery によってデータが挿入されていることを確認します。

  1. Google Cloud コンソールで、BigQuery の [SQL ワークスペース] ページに移動します。

    BigQuery に移動

  2. [エクスプローラ] セクションの検索フィールドに、ターゲット BigQuery テーブルの名前を入力し、Enter を押します。

    ページの右側にあるコンテンツ ペインのタブの下に、テーブル情報が表示されます。

  3. テーブル情報セクションで、次の見出しをクリックして、テーブルと行の挿入を確認します。

    • プレビュー: BigQuery テーブルに挿入された行とフィールドを表示します。
    • スキーマ: フィールド名とデータ型を表示します。
    • 詳細: テーブルサイズ、行の合計数などの詳細を表示します。

Replication Validation ツールを実行する

BigQuery テーブルの構成時に [Extra Fields Flag] が選択されている場合は、Replication Validation ツールを使用して、BigQuery テーブルのレコード数と SAP LT Replication Server 統計またはソーステーブルのレコード数を比較するレポートを生成できます。

Replication Validation ツールを実行するには:

  1. SAP GUI で、/n で始まる /GOOG/REPLIC_VALID トランザクションを入力します。

    /n/GOOG/REPLIC_VALID
  2. [Processing Options] セクションで、[Execute Validation] ラジオボタンをクリックします。

  3. [Selection Options] セクションで、次の仕様を入力します。

    • [GCP Partner Identifier] フィールドのプルダウン メニューから、[BigQuery] を選択します。
    • [Check Type] フィールドのプルダウン メニューから、生成するレポートの種類を選択します。
      • 初期読み込み数
      • レプリケーション数
      • 現在のカウント
    • [Check Date] フィールドが表示されている場合は、カウントが必要な日付を指定します。
    • [Mass Transfer Key] フィールドに、一括転送構成名を入力します。
  4. [Execute] アイコンをクリックして、Replication Validation ツールを実行します。

  5. 検証チェックが完了したら、[Processing Options] セクションで [Display Report] ラジオボタンをクリックし、[Execute] アイコンをクリックしてレポートを表示します。

詳細については、Replication Validation ツールをご覧ください。

トラブルシューティング

BigQuery Connector for SAP を使用して SAP と BigQuery との間で読み込みまたはレプリケーションを構成して実行する場合に発生する可能性のある問題の診断と解決については、BigQuery Connector for SAP トラブルシューティング ガイドをご覧ください。

サポートを受ける

レプリケーションと BigQuery Connector for SAP の問題を解決する必要がある場合は、入手可能な診断情報をすべて収集し、Cloud カスタマーケアにお問い合わせください。カスタマーケアへのお問い合わせについては、Google Cloud での SAP に関するサポートを受けるをご覧ください。