このドキュメントでは、BigQuery Connector for SAP を使用している場合に、ストリーミング データ レプリケーションから Pub/Sub を介した CDC レプリケーションに移行する方法について説明します。
BigQuery Connector for SAP の既存のユーザーで、BigQuery テーブルにソース SAP テーブルの変更を直接反映させたい場合は、Pub/Sub を介した CDC レプリケーションを使用できます。SAP でデータが変更されると、BigQuery Connector for SAP は変更をキャプチャし、Pub/Sub を介して BigQuery テーブルに直接送信して、重複のない変更を適用します。
始める前に
始める前に、Pub/Sub サービスとその用語について学習してください。
自身または管理者によって次の事前準備が完了していることを確認してください。
- バージョン 2.9 以降に BigQuery Connector for SAP を更新します。
- Google Cloud APIs を有効にします。
- 認証を設定します。
- デッドレター トピックを作成します。
BigQuery Connector for SAP を更新する
Pub/Sub を介した CDC レプリケーションを使用するには、BigQuery Connector for SAP をバージョン 2.9 以降に更新します。コネクタを更新する方法については、BigQuery Connector for SAP を更新するをご覧ください。
Google Cloud API を有効にする
Pub/Sub を介した CDC レプリケーションの場合は、次の API が有効になっていることを確認します。
- Pub/Sub API
- BigQuery API
- IAM Service Account Credentials API
Google Cloud API を有効にする方法については、API の有効化をご覧ください。
認証を設定する
Pub/Sub を介した CDC レプリケーションを使用するには、既存の BigQuery ロールに加えて、認可に使用されるサービス アカウントに Pub/Sub 編集者のロールを付与する必要があります。サービス アカウントに次のロールがあることを確認します。
- Pub/Sub 編集者
- BigQuery データ編集者
- BigQuery ジョブユーザー
ロールを付与する方法については、単一のロールを付与するをご覧ください。
サポートされている認証方法と認証の設定方法については、認証を設定するをご覧ください。
デッドレター トピックを作成する
BigQuery サブスクリプションがターゲットの BigQuery テーブルに書き込めなかったメッセージを処理するには、デッドレター トピックを作成することをおすすめします。このデッドレター トピックは、Pub/Sub がすべての再試行後に配信不能メッセージを自動的にパブリッシュする個別のキューとして機能します。
移行手順
移行手順の概要は次のとおりです。
- SAP LT Replication Server レプリケーション構成を停止します。
- 重複除去された CDC テーブルを準備します。
- BigQuery Connector for SAP を介して移行を開始します。
- レプリケーション設定を構成します。
- SAP LT Replication Server レプリケーション構成を有効にします。
- BigQuery でレプリケーションを確認します。
SAP LT Replication Server レプリケーション構成を停止する
SAP GUI で、トランザクション コード
LTRC
を入力します。移行する SAP LT Replication Server レプリケーション構成を停止します。
重複除去された CDC テーブルを準備する
BigQuery で、既存の BigQuery ステージング テーブルから重複除去された CDC テーブルを作成する必要があります。Pub/Sub を介した CDC レプリケーションを使用すると、この CDC テーブルは SAP データの BigQuery の外部テーブルになります。
重複除去された CDC テーブルを準備する手順は次のとおりです。
Google Cloud コンソールで、[BigQuery] ページに移動します。
[クエリを新規作成] をクリックします。
既存の BigQuery ステージング テーブルから CDC テーブルを作成します。
[クエリエディタ] テキストエリアで、既存の BigQuery ステージング テーブル構造をコピーするには、次のクエリを入力します。
CREATE TABLE CDC_TABLE LIKE STAGING_TABLE
次のように置き換えます。
CDC_TABLE
: BigQuery CDC テーブルの名前。STAGING_TABLE
: BigQuery ステージング テーブルの名前
[実行] をクリックします。
この手順では、主キーのない CDC テーブル構造が作成されます。
CDC テーブル定義を変更して主キーを追加します。
クエリエディタのテキストエリアで、主キーを追加するには、次のクエリを入力します。
ALTER TABLE CDC_TABLE ADD PRIMARY KEY(PRIMARY_KEYS) NOT INFORCED
次のように置き換えます。
CDC_TABLE
: CDC テーブルの名前。PRIMARY_KEYS
: 主キー(カンマ区切りのリストとして)。ソース SAP テーブルから主キーのリストを取得できます。
[実行] をクリックします。
CDC テーブルの重複を除去します。
[クエリエディタ] テキストエリアで、CDC テーブルの重複を除去するには、次のクエリを入力します。
INSERT INTO CDC_TABLE (COLUMN_NAMES ) SELECT COLUMN_NAMES FROM STAGING_TABLE WHERE is_deleted = false QUALIFY ROW_NUMBER() OVER( PARTITION BY PRIMARY_KEYS ORDER BY recordstamp DESC ) = 1
次のように置き換えます。
CDC_TABLE
: CDC テーブルの名前。COLUMN_NAMES
: 列名(カンマ区切りリストとして)。SAP ソースシステムから列名のリストを取得できます。または、アスタリスク(*)を使用してすべての列を選択します。PRIMARY_KEYS
: CDC テーブルの主キー。STAGING_TABLE
: ステージング テーブルの名前。
[実行] をクリックします。
または、BigQuery Studio の [コピー] オプションを使用して、ソース ステージング テーブルの構造をコピーし、CDC テーブルを作成することもできます。
BigQuery Connector for SAP を介して移行を開始する
- SAP GUI で、
/n
で始まる/GOOG/SLT_SETTINGS
トランザクションを入力します。/n/GOOG/SLT_SETTINGS
- [Google Cloud Partner] フィールドのプルダウン メニューから、[BigQuery] を選択します。
/GOOG/SLT_SETTINGS
トランザクションの起動画面の [Settings Table] プルダウン メニューから [Mass Transfers] を選択します。- [Mass Transfer Key] フィールドに、移行する SAP LT Replication Server レプリケーション構成の一括転送 ID を指定します。
- [Execute] アイコンをクリックします。
- [BigQuery Settings Maintenance - Mass Transfers] 画面で、[Migrate] をクリックします。
- 移行の確認ダイアログで [Yes] をクリックします。
レプリケーション設定を構成する
- SAP GUI で、
/n
で始まる/GOOG/SLT_SETTINGS
トランザクションを入力します。/n/GOOG/SLT_SETTINGS
- [Google Cloud Partner] フィールドのプルダウン メニューから、[BigQuery CDC via Pub/Sub] を選択します。
/GOOG/SLT_SETTINGS
トランザクションの起動画面の [Settings Table] プルダウン メニューから [Mass Transfers] を選択します。- [Mass Transfer Key] フィールドに、BigQuery Connector for SAP を使用して移行を開始するセクションで移行した SAP LT Replication Server レプリケーション構成の一括転送 ID を指定します。
- [Execute] アイコンをクリックします。[BigQuery Settings Maintenance - Mass Transfers] 画面が表示されます。
- 移行された SAP LT Replication Server レプリケーション構成が表示されていることを確認します。
SAP LT Replication Server レプリケーション構成で、次のテーブル属性を指定します。
[External Table Name] フィールドに、前の手順 重複除去された CDC テーブルを準備するで作成した CDC テーブルの名前を入力します。
Pub/Sub を介した BigQuery への CDC レプリケーションを有効にするには、[Repl CPS] チェックボックスをオンにします。
[Pub/Sub スキーマ] フィールドに、Pub/Sub スキーマの名前を入力します。BigQuery Connector for SAP は、SAP テーブル定義に合わせて既存の Avro スキーマを自動的に作成または更新します。
[Pub/Sub トピック] フィールドに、メッセージがパブリッシュされる Pub/Sub トピックの名前を入力します。BigQuery Connector for SAP は、トピックを自動的に作成します。
[Pub/Sub サブスクリプション] フィールドに、Pub/Sub トピックからのメッセージを使用して BigQuery に書き込む BigQuery サブスクリプションの名前を入力します。BigQuery Connector for SAP は、サブスクリプションを自動的に作成し、前の手順で指定したトピックにリンクします。
[Dead Letter Queue] フィールドに、Pub/Sub デッドレター トピックの名前を入力します。このデッドレター トピックは、Pub/Sub が BigQuery サブスクリプションを介して BigQuery への書き込みができなかったメッセージを受信します。
テーブルの変更データ キャプチャ(CDC)機能を有効にするには、[Act. CDC](CDC を有効にする)チェックボックスをオンにします。
初期読み込みのパフォーマンスを最適化するには、[Cache Val](キャッシュ検証)チェックボックスをオンにします。
このフィールドを選択すると、コネクタは大量のデータ転送で最大のパフォーマンスを発揮します。システムは、一定の間隔で Google Cloud パイプラインの検証を実行し、結果をキャッシュに保存します。コネクタは、迅速なデータ変換を行い、データを Pub/Sub に直接送信します。詳細については、キャッシュの検証をご覧ください。
SAP LT Replication Server レプリケーション構成を有効にする
SAP GUI で、トランザクション コード
LTRC
を入力します。構成を有効にします。
構成を有効にすると、必要な Pub/Sub 関連のリソースがすべて作成され、レプリケーションが開始されます。構成された CDC テーブルには、新しい未処理の変更がすべて反映されます。
BigQuery でレプリケーションを確認する
BigQuery で、CDC テーブルの値がソース SAP テーブルと同じであることを確認します。手順の詳細については、BigQuery へのレプリケーションを検証するをご覧ください。
トラブルシューティング
レプリケーションの移行時に発生する可能性のある問題の診断と解決については、BigQuery Connector for SAP トラブルシューティング ガイドをご覧ください。
サポートを受ける
移行手順の問題を解決するためにサポートが必要な場合は、取得可能なすべての診断情報を収集し、Cloud カスタマーケアにお問い合わせください。カスタマーケアへのお問い合わせ方法については、 Google Cloudでの SAP に関するサポートを利用するをご覧ください。