このガイドでは、BigQuery Connector for SAP の概要を示し、その機能、および SAP システムと BigQuery 間のデータ統合をどのように促進するかについて詳しく説明します。BigQuery Connector for SAP は、SAP データを BigQuery に準リアルタイムで複製します。BigQuery のデータを使用すると、SAP のライブ アプリケーション データを AI や ML で分析できます。BigQuery では、SAP データを他のソースのデータと統合することもできます。
BigQuery Connector for SAP は、SAP Landscape Transformation Replication Server(SAP LT Replication Server)にインストールされ、SAP Landscape Transformation Replication Server の標準インターフェースと機能を使用します。BigQuery Connector for SAP は、SAP LT Replication Server がサポートするすべてのデータソースをサポートします。
Google Cloud は、SAP LT Replication Server SDK プロセスに従って、SAP LT Replication Server 用の SAP Business Add In(BAdI)の実装として BigQuery Connector for SAP を開発しました。このコネクタは、SAP LT Replication Server の変更データ キャプチャ(CDC)機能を使用します。
データ処理
BigQuery Connector for SAP を使用すると、最小限のデータ変換のみが可能になります。抽出 / 変換 / 読み込み(ETL)モデルではなく、抽出 / 読み込み/ 変換(ELT)モデルに対応しています。これらのモデルの詳細については、データ パイプラインの手順とパターンをご覧ください。
コネクタは、ソースデータに基づいてターゲット テーブルのフィールド、フィールド名、データ型を自動的に提案します。ターゲット BigQuery テーブルを作成する前に、必要に応じて推奨値を変更できます。ターゲット フィールド名の候補は、ソーステーブルのフィールドの説明に基づいています。詳細については、フィールドのデフォルトの命名オプションをご覧ください。
BigQuery Connector for SAP は、ほとんどのフィールドで BigQuery のデータ型を自動的に提案しますが、ブール値、タイムスタンプ、16 進数の値は自動的に解釈されないため、手動でマッピングする必要があります。詳細については、データ型のマッピングをご覧ください。
BigQuery Connector for SAP には、BigQuery Connector for SAP コードに独自のカスタム機能を挿入できる方法がいくつか用意されています。詳しくは、拡張の手口をご覧ください。
BigQuery にターゲット テーブルが存在しない場合は、BigQuery Connector for SAP によって作成されます。Pub/Sub を介した CDC レプリケーションの場合、BigQuery Connector for SAP は必要な Pub/Sub トピック、スキーマ、サブスクリプションも自動的に作成します。
サポートされているレプリケーション パス
BigQuery Connector for SAP は、次のレプリケーション パスをサポートしています。
Pub/Sub を介した変更データ キャプチャ(CDC)レプリケーション
Pub/Sub を介した変更データ キャプチャ(CDC)レプリケーションにより、BigQuery テーブルにソース SAP テーブルの変更が直接反映され、既存のデータが更新され、新しいレコードが追加されてデータの同期が維持されます。このアプローチでは、Storage Write API の CDC 機能を使用するため、手動で重複除去を行う必要がありません。CDC は、ソース SAP テーブルで発生した変更(更新、削除、新規挿入)のみをキャプチャして適用することに重点を置いています。
SAP テーブルのレコードが更新または削除されると、BigQuery Connector for SAP はこの変更を Pub/Sub トピックに公開します。BigQuery サブスクリプションは、重複なしで変更を適用し、対応する BigQuery テーブルに直接ストリーミングします。
ストリーミング データ レプリケーション
ストリーミング データ レプリケーションでは、BigQuery テーブルに新しいレコードが継続的に追加され、すべての変更が挿入専用モードで個別のエントリとして反映されます。BigQuery は、BigQuery テーブルにすでに存在するレコードの更新を受信すると、既存のインスタンスを変更せずに、そのレコードの新しいインスタンスをテーブルに挿入します。最後に挿入されたレコードのインスタンスは、ソーステーブル内のレコードの現在の状態を反映します。
ストリーミング データ レプリケーションの場合、BigQuery Connector for SAP は BigQuery ストリーミング API を使用します。
次の図は、BigQuery Connector for SAP を使用した SAP から BigQuery への両方のデータ レプリケーション パスを示しています。
各パスのデータフローとコンポーネントの内訳は次のとおりです。
データの抽出と初期処理(両方のパスに共通)
- SAP データソース: SAP 環境内でデータを生成します。
- SAP LT Replication Server: RFC 接続を介して SAP データソースに接続します。主な役割は、SAP ソースから CDC データを抽出することです。
- BigQuery Connector for SAP: 抽出された CDC データを受信し、構成に基づいてデータがどのレプリケーション パスをたどるかを決定します。
CDC レプリケーション パス
このパスは、Pub/Sub を介して BigQuery CDC テーブルへの変更を複製することに重点を置いています。
- Pub/Sub REST API: BigQuery Connector for SAP は、Pub/Sub REST API を使用して CDC データを Pub/Sub に公開します。
- Pub/Sub トピック: これは、公開された CDC データを受信する中央メッセージ ブローカーとして機能します。
- Pub/Sub スキーマ: Pub/Sub トピックに関連付けられたスキーマは、データ構造を適用してデータの整合性を維持します。
- Pub/Sub BigQuery サブスクリプション: Pub/Sub トピックをサブスクライブし、CDC データを BigQuery CDC テーブルにストリーミングします。
- BigQuery CDC テーブル: BigQuery の CDC データの最終的な宛先。変更(更新/削除)を適用し、新しいレコードを挿入して、SAP データの重複除去された最新のビューを維持します。
- デッドレター トピック: BigQuery サブスクリプションで処理できなかったメッセージが送信され、手動でさらに調査される Pub/Sub トピック。データ損失を防ぎます。
ストリーミング データ レプリケーション(挿入専用)パス
このパスは、新しいレコードを BigQuery ステージング テーブルに継続的に挿入し、すべての変更を新しいエントリとして保持するように設計されています。
- BigQuery Streaming REST API: BigQuery Connector for SAP は、BigQuery Streaming REST API を使用して、データを BigQuery に直接ストリーミングします。
- BigQuery ステージング テーブル: ストリーミング データの宛先。この挿入専用モードでは、すべての変更(既存の SAP レコードの更新や削除など)により、このテーブルに新しい行が追加されます。
レプリケーション パスを選択する
このセクションでは、レプリケーション パスを比較して、特定のデータニーズと運用上の要件に最適なパスを決定できるようにします。
要素 | Pub/Sub を介した CDC レプリケーション | ストリーミング データ レプリケーション(挿入専用モード) |
---|---|---|
仕組み | BigQuery テーブルに対する変更のみをキャプチャして適用します。 | すべての変更を新しいレコードとして BigQuery テーブルに挿入します。 |
BigQuery の結果 | 既存の行をネイティブに更新または削除することで、単一の最新レコードを維持します。 | 変更ごとに新しいエントリが作成されるため、同じレコードの複数のバージョンが作成されます。 |
主なメリット | 最新のデータで高いデータ整合性を提供します。 | 基本的な取り込みに役立ち、履歴監査を提供します。 |
デプロイ アーキテクチャ
BigQuery Connector for SAP をビジネス用アドイン(BAdI)として SAP LT Replication Server インスタンス内にインストールします。
SAP LT Replication Server インスタンスは、 Google Cloud、オンプレミス、または別のクラウド プロバイダに配置できます。SAP LT Replication Server インスタンスは、SAP データソースのできるだけ近くに配置することをおすすめします。ネットワーク チームと協力して、ソース SAP システム、SAP LT Replication Server、BigQuery データセット間の低レイテンシと高スループットを実現してください。
以降のセクションでは、BigQuery Connector for SAP の一般的な推奨アーキテクチャについて説明します。
Pub/Sub を介した CDC レプリケーションのデプロイ アーキテクチャ
Google Cloud上の SAP データソースのアーキテクチャ
次の図は、 Google Cloud上の SAP データソースを使用した Google Cloudでの SAP LT Replication Server のインストールに関する例を 2 つ示しています。
各アーキテクチャの例を挙げると、SAP LT Replication Server のスタンドアロン アーキテクチャを使用するインストールでは、SAP LT Replication Server が別のサーバーにインストールされ、もう 1 つのインストールでは、SAP LT Replication Server の組み込みアーキテクチャが使用されています。このアーキテクチャでは、SAP LT Replication Server は SAP ソースシステム サーバーにインストールされます。
SAP LT Replication Server インスタンスはGoogle Cloudにインストールされているため、BigQuery Connector for SAP は Cloud Interconnect または Cloud VPN 接続を必要とせずに、Pub/Sub API エンドポイントに直接接続します。
オンプレミスまたは別のクラウド プロバイダ上の SAP データソースのアーキテクチャ
次の図は、オンプレミスまたは別のクラウド プロバイダで実行されている SAP LT Replication Server の 2 つのインストール例を示しています。
各アーキテクチャの例を示すため、一方のインストールでは SAP LT Replication Server スタンドアロン アーキテクチャを使用し、もう一方では SAP LT Replication Server 組み込みアーキテクチャを使用します。
どちらの例でも、SAP LT Replication Server は SAP データソースと同じ環境にインストールされます。
SAP LT Replication Server の BigQuery Connector for SAP から Pub/Sub への接続は、Cloud Interconnect 接続または Cloud VPN 接続によって実現します。
データフローの詳細なアーキテクチャ ビュー
次の図は、BigQuery Connector for SAP が SAP LT Replication Server のデータフローにどこで適合するかを示しています。
次の番号の付された説明は、図の番号に対応しています。
- SAP LT Replication Server の初期化後、ソーステーブルのレコードが挿入、更新、または削除されると、データベースのトリガーにより、ロギング テーブルに変更内容が記録されます。
- SAP LT Replication Server は、RFC 呼び出しを介してロギング テーブルに新しいエントリがないか継続的にチェックします。
- SAP LT Replication Server が新しいエントリを検出すると、読み取りエンジンがレコードを読み取り、マッピングと変換エンジンを呼び出します。
- マッピングと変換エンジンは書き込みエンジンを呼び出し、書き込みエンジンは BigQuery Connector for SAP を呼び出します。
- 書き込みエンジンは、処理されたデータを BigQuery Connector for SAP に渡します。ここで、コネクタのカスタム BAdI 実装により、SAP の変更レコードが Avro 準拠の JSON 形式に変換されます。特定のメタデータ フィールドに次のように入力されます。
_CHANGE_TYPE
: SAP SLT オペレーションに基づいて入力されています。たとえば、挿入または更新の場合はUPSERT
、削除の場合はDELETE
です。_CHANGE_SEQUENCE_NUMBER
: BigQuery での時系列順序付けと競合解決のための詳細なタイムスタンプ。
- 変換されたメッセージは、BigQuery Connector for SAP によって、Pub/Sub REST API を介して、安全な接続を経由する HTTPS を使用して Pub/Sub に公開されます。
- データを受信すると、Pub/Sub は次のアクションを実行します。
- スキーマに従って検証チェックを行います。
- 有効なメッセージに対して、BigQuery Connector for SAP に HTTP 200(
OK
)ステータス コードを返します。 - BigQuery サブスクリプションを介して、レコードを BigQuery ターゲット テーブルに挿入します。
- BigQuery の取り込みに失敗したメッセージをデッドレター トピックにキャプチャし、データ損失を防ぎ、トラブルシューティングを簡素化します。
- BigQuery Storage Write API は、メッセージの
_CHANGE_TYPE
フィールドと_CHANGE_SEQUENCE_NUMBER
フィールドを使用して変更を適用します。API は挿入、更新、削除オペレーションを実行し、データ分析用の BigQuery テーブルで同期されたデータを維持します。 - BigQuery Connector for SAP は、HTTP
OK
ステータス コードを SAP LT Replication Server に返します。これにより、ロギング テーブルから複製されたエントリが削除され、SAP ソースシステムのリソースが解放されます。
ストリーミング データ レプリケーションのデプロイ アーキテクチャ
次の図は、 Google Cloud上の SAP データソースを使用した Google Cloudでの SAP LT Replication Server のインストールに関する例を 2 つ示しています。
各アーキテクチャの例を挙げると、SAP LT Replication Server のスタンドアロン アーキテクチャを使用するデプロイでは、SAP LT Replication Server が別のサーバーにインストールされ、もう 1 つのデプロイでは、SAP LT Replication Server の組み込みアーキテクチャが使用されています。このアーキテクチャでは、SAP LT Replication Server は SAP ソースシステム サーバーにインストールされます。
SAP LT Replication Server インスタンスはGoogle Cloudにインストールされているため、BigQuery Connector for SAP は Cloud Interconnect または Cloud VPN 接続を必要とせずに、BigQuery API エンドポイントに直接接続します。
この図では、SAP システムと BigQuery は異なる Google Cloud プロジェクトに示されていますが、必要に応じて同じプロジェクトを両方に対して使用することもできます。
オンプレミスまたは別のクラウド プロバイダ上の SAP データソースのアーキテクチャ
次の図は、オンプレミスまたは別のクラウド プロバイダで実行されている SAP LT Replication Server の 2 つのインストール例を示しています。
各アーキテクチャの例を示すため、一方のインストールでは SAP LT Replication Server スタンドアロン アーキテクチャを使用し、もう一方では SAP LT Replication Server 組み込みアーキテクチャを使用します。
どちらの例でも、SAP LT Replication Server は SAP データソースと同じ環境にインストールされます。
SAP LT Replication Server の BigQuery Connector for SAP から BigQuery への接続は、Cloud Interconnect 接続または Cloud VPN 接続によって実現します。
データフローの詳細なアーキテクチャ ビュー
次の図は、BigQuery Connector for SAP が SAP LT Replication Server のデータフローにどこで適合するかを示しています。
次の番号の付された説明は、図の番号に対応しています。
- SAP LT Replication Server の初期化後、ソーステーブルのレコードが挿入、更新、または削除されると、データベースのトリガーにより、ロギング テーブルに変更内容が記録されます。
- SAP LT Replication Server は、RFC 呼び出しを介してロギング テーブルに新しいエントリがないか継続的にチェックします。
- SAP LT Replication Server が新しいエントリを検出すると、読み取りエンジンがレコードを読み取り、マッピングと変換エンジンを呼び出します。
- マッピングと変換エンジンは書き込みエンジンを呼び出し、書き込みエンジンは BigQuery Connector for SAP を呼び出します。
- BigQuery Connector for SAP は、次のアクションを実行します。
- SAP データをターゲットのテーブル名、フィールド名、BigQuery データ型にマッピングする。
- 必要に応じて BigQuery テーブルを作成する。
- BigQuery Streaming API を使用して、分割されたレコードを BigQuery に送信する。
- データを受信すると、BigQuery は次のアクションを実行します。
- 検証チェックを行う。
- ターゲット テーブルにレコードを挿入する。
- BigQuery Connector for SAP に HTTP 200(
OK
)ステータス コードを返す。
- BigQuery Connector for SAP は、HTTP
OK
ステータス コードを SAP LT Replication Server に返します。これにより、ロギング テーブルから複製されたエントリが削除され、SAP ソースシステムのリソースが解放されます。
次のステップ
BigQuery Connector for SAP のインストールと構成の計画については、BigQuery Connector for SAP のプランニング ガイドをご覧ください。