Amazon Web Services ブログ

SAP on AWSと組み合わせたデータレイクの構築

データはユビキタスであり、企業内で指数関数的に生成されています。ただし、このデータの大半はダークデータです。ガートナー用語集では、ダークデータを、組織が日常のビジネス活動において収集、処理、保存する情報資産として定義しています。しかし、それらは一般に他の目的に使用できません。他の目的には、分析、ビジネス関係、直接収益化などがあります。

Thermo Fisherなど、私たちのお客様の中には、既に企業全体で生成されたデータを利用して、AWS上でスケーラブルかつセキュアなデータプラットフォームを構築しています。それらのデータには、医療機器や様々なソフトウェアアプリケーションが含まれます。このデータプラットフォームは、医学研究者や科学者が患者の治療を研究し、協力し、改善するのに役立っています。詳細は、Thermo Fisherのケーススタディを参照してください。

SAP on AWSのケーススタディで明らかなように、数千のお客様がビジネスクリティカルなSAPワークロードをAWS上で実行し、ビジネスにおける多大なメリットを享受しています。SAPワークロードをAWSに移行するビジネスケースは明瞭に説明されていますが、多くのお客様は、データと分析のプラットフォームを活用した変革に関する強力なビジネスケースを構築することも検討しています。私たちは、SAPデータと非SAPアプリケーションデータを一緒に活用する方法を検討していることをお客様から直接聞いています。お客様は、AWS上でデータと分析のプラットフォームを構築するために、インターネット接続可能なデバイスで生成されたリアルタイムストリーミングデータを必要としています。

この記事では、SAPアプリケーションでサポートされる様々なデータ抽出パターンについて説明します。また、AWSサービスとその他のサードパーティソリューションを使用してSAPからAWS上のデータレイクにデータを抽出するためのリファレンスアーキテクチャについても説明します。

AWS上のデータレイクでは、様々なAWSサービスを利用します。

  • 構造化および非構造化データを保存するAmazon S3
  • データを抽出、変換、ロード (ETL)するAWS Glue
  • ストリームデータを収集するAmazon Kinesis
  • データウェアハウス用のAmazon Redshift
  • S3のデータに直接クエリするためのAmazon Athena
  • Apache Spark、Hadoopなどのビッグデータフレームワークを実行するためのAmazon EMR
  • ビジネスインテリジェンスと可視化のためのAmazon QuickSight
  • データレイクの実装を加速するAWS Lake Formation

S3はデータレイクのすべてのデータの開始点とランディングゾーンの両方として機能するため、ここではSAPデータをS3に抽出するための設計パターンに焦点を当てます。また、これらの設計パターンを実装する際の重要な考慮事項についても説明します。

SAPアプリケーションのデータ抽出パターン

この記事では、ソースとしてSAP ERP (SAP S/4HANA、ECC、CRMなど)とSAP BWアプリケーションのみに焦点を当てています。これは、S3にデータを抽出する際のお客様要件の大半を占めています。お客様はデータソースとしてSaaSアプリケーションを使用していますが、これらはAPIファーストで構築されているという事実だけで、AWSサービスとの統合も容易です。

また、この記事ではデータレプリケーションパターンにのみ焦点を当て、データフェデレーションパターンはそれ自体がトピックになるため、別の日に寄稿します。データフェデレーションは、アプリケーション間でデータを物理的に移動するのではなく、アプリケーションが別のデータソースから仮想的にデータにアクセスできるパターンです。以下は、様々な統合パターンと抽出手法のハイレベルなアーキテクチャです。これらの各パターンを詳しく見てみましょう。

Shown here is a high-level architecture of the various integration patterns and extraction techniques for SAP applications. Extractions can be perormed at both database and application level using techniques identified here.

データベースレベルの抽出

名前が示すように、データベースレベルの抽出は、データベースの段階でSAPデータにアクセスします。Attunity ReplicateHVR for AWSなど、様々なAPNパートナーソリューションがあり、SAPデータベースのトランザクションログに書き込まれるローデータをキャプチャします。要求されたマッピングに従って変換し、データをS3に保存します。これらのソリューションは、SAPクラスタテーブルとプールテーブルをデコードすることもできます。

SAP HANAデータベース、特に事前作成済みの計算ビューを持つデータベースの場合、お客様はPythonをサポートするSAP HANAクライアントライブラリを使用して、AWS GlueやAWS Lambdaとネイティブに統合できます。あるいは、SAP HANA Java Database Connectivity (JDBC)ドライバーを使用します。

データベースレベルの抽出に関する重要な考慮事項は次の通りです。

  • サードパーティのアダプターはトランザクションログからデータを取得するため、SAPデータベースアプリケーションにおけるパフォーマンスの影響は最小限です。
  • 変更データキャプチャは、データベースの変更ログに基づいてすぐに適用されます。これは、SAPがアプリケーションレベルで更新日時をキャプチャしないテーブルにも当てはまります。
  • 特定のデータベースライセンス (ランタイムライセンスなど)により、お客様はデータベースから直接データを取得できない場合があります。
  • このパターンはSAPアプリケーションロジックを保持しません。これは通常、ABAPレイヤーで管理され、SAPの外部での再マッピング作業が必要になる可能性があります。また、SAPアプリケーションのデータモデルを変更すると、変換の変更により、追加のメンテナンス作業が必要になる場合もあります。

アプリケーションレベルの抽出

SAP ERPアプリケーションでは、ビジネスロジックは主にABAPレイヤーにあります。SAP HANAデータベースのコードプッシュダウン機能があっても、ABAPスタックは、まだビジネスコンテキストへのAPIアクセスのエントリポイントを提供します。

SAP Data Servicesのようなアプリケーションレベルの抽出機能は、ABAPスタックの統合フレームワークを使用してSAPアプリケーションからデータを抽出し、デフォルトコネクタを介してS3に保存します。これらの抽出プログラムは、リモートファンクションコール (RFC SDK)ライブラリを使用して、SAPアプリケーションとネイティブに接続し、リモート汎用モジュール、テーブル、ビュー、クエリからデータを取得します。SAP Data Servicesは、ターゲットのSAPアプリケーションに任意のABAPコードをインストールし、SAPアプリケーションからデータを取得するだけでなく、送信することもできます。送信パターンは、特定の場合において、パフォーマンスの向上に役立ちます。

SAPアプリケーションは、汎用モジュールへのHTTPアクセスもサポートしています。AWS GlueやLambdaを使用して、HTTPでこれらの汎用モジュールにアクセスできます。また、SAPは、AWS GlueやLambdaを使用したRFC SDKによるネイティブな統合を可能とするPyRFCライブラリも公開しています。SAP IDOCは、HTTP送信パターンを使用してS3と統合できます。この手法については、以前の記事、Amazon API Gatewayを使用したSAP IDocとAmazon S3の統合に書いてあります。

アプリケーションレベルの抽出に関する重要な考慮事項は次の通りです。

  • 抽出はアプリケーションの段階で行われるため、適切なビジネスコンテキストで行うことができます。例えば、特定の地域のすべての受注伝票データを取得するには、すべての関連データとそれらの関連付けを汎用モジュールを介してマップします。これにより、追加のビジネスロジックが削減され、SAP外でのマッピング作業が軽減されます。
  • 変更データキャプチャはデフォルトではサポートされていません。すべてのSAP汎用モジュールやフレームワークが変更データキャプチャ機能をサポートしているわけではありません。
  • AWS GlueやLambdaなどのAWSネイティブサービスを使用すると、サードパーティアプリケーションの要件がなくなるため、総所有コストが削減されます。ただし、お客様は、SAPアプリケーションとHTTPまたはRFCの統合を実現するためのカスタム開発の工数が増加する場合があります。
  • アプリケーションレベルの統合のため、データベースレベルの抽出と比較して、このパターンには潜在的なパフォーマンスの制限があります。また、SAPアプリケーションサーバーでの追加のパフォーマンス負荷は、汎用モジュールや他のフレームワークを使用してデータを取得するために発生します。

Operational Data Provisioningベースの抽出

Operational Data Provisioning (ODP)フレームワークは、プロバイダーとサブスクライバーモデルを使用し、SAPアプリケーションとSAP、非SAPのデータターゲットとの間のデータレプリケーション機能を可能にします。ODPは、完全なデータ抽出と、オペレーショナルデルタキューを使用した変更データキャプチャの両方をサポートします。

抽出のビジネスロジックは、SAP DataSources (トランザクションコードRSO2)、SAP Core Data Services (CDS)ビュー、SAP HANA 情報ビューSAP Landscape Replication Server (SAP SLT)を使用して実装されます。次に、ODPはODataサービスのデータソースとして機能し、RESTベースの外部アプリケーションとの統合を可能にします。OData経由のODPベースのデータ抽出の文書が、このアプローチを詳述しています。

SAP Data ServicesやSAP Data Hubなどのソリューションは、ネイティブのリモートファンクションコール (RFC)ライブラリを使用してODPと統合できます。AWS GlueやLambdaなどの非SAPソリューションは、ODataレイヤーを使用してHTTPで統合できます。

ODPを使用した抽出に関する重要な考慮事項は次の通りです。

  • 抽出のビジネスロジックはアプリケーションレイヤーでサポートされているため、抽出されたデータのビジネスコンテキストは完全に保持されます。
  • SAPアプリケーションのすべてのテーブルの関係、カスタマイズ、パッケージ構成も保持されるため、変換の工数が軽減されます。
  • 変更データキャプチャは、オペレーショナルデルタキューメカニズムを使用してサポートされます。ODataクエリパラメータを使用した、マイクロバッチでの完全なデータロードもサポートされています。
  • AWS GlueやLambdaなどのAWSネイティブサービスを使用すると、サードパーティアプリケーションの要件がなくなるため、総所有コストが削減されます。ただし、お客様は、SAPアプリケーションとODataベースのHTTPによる統合を実装するためのカスタム開発の工数が増加する場合があります。お客様のカスタム開発を加速できるよう、aws-lambda-sap-oauth GitHubリポジトリにAWS GlueやLambdaで使用できるPythonのサンプルの抽出コードを公開しました。
  • SAP Data ServicesとSAP Data Hubは、RFCレイヤーを使用したODP統合にアクセスできるため、SAPからデータを取得する際のパフォーマンスが向上する場合があります。SAPは、非SAPアプリケーション用のODPにネイティブのRFC統合機能を提供していないため、AWS GlueやLambdaはODataへのHTTPベースのアクセスに依存する必要があります。逆に、これは、オープンな統合テクノロジーを標準化したい特定のお客様にとっては有利かもしれません。ODPの機能と制限の詳細は、Operational Data Provisioning (ODP) FAQを参照してください。

SAP Landscape Transformation Replication Serverベースの抽出

SAP Landscape Transformation Replication Server (SLT)は、SAPアプリケーションからのほぼリアルタイムおよびバッチデータのレプリケーションをサポートしています。ソースのSAPアプリケーションでデータベーストリガーを作成することにより、リアルタイムのデータ抽出がサポートされます。レプリケーションターゲットには、SAP SLTはデフォルトでSAP HANA、SAP BW、SAP Data Services、SAP Data Hub、一連の非SAPデータベースをサポートします。非SAPターゲットのリストは、他のデータベースへのデータの複製のドキュメントを参照してください。

SAPがまだサポートしていないターゲットにデータをレプリケーションする場合、お客様はReplicating Data Using SAP LT replication server SDKを使用して独自のカスタマイズを実装できます。詳細な実装ガイドは、SAPサポートノート2652704 – Replicating Data Using SAP LT Replication Server SDK (SAP ONE Supportのアクセス権が必要)で入手できます。

このパターンでは、AWS Glueを使用して、SAP SLTがサポートするターゲットデータベースからS3にデータを取得できます。あるいは、SAP Data ServicesやSAP Data Hubを使用して、S3にデータを保存します。SAP LT Replication Server SDKを使用してABAP拡張 (BADI)を実装し、レプリケーションされたデータをS3に書き込むこともできます。

SAP SLTを使用した抽出に関する重要な考慮事項には、以下が含まれます。

  • 完全なデータ抽出と変更データキャプチャの両方をサポートします。トリガーベースの抽出は、更新された日付とタイムスタンプがないソーステーブル上でも変更データキャプチャをサポートします。
  • SAPがサポートしていないターゲットと統合するには、ABAPで追加のカスタム開発が必要です。
  • データをS3にレプリケーションするためのSAP Data Hub、SAP Data Services、その他のサポートされているデータベースの追加のライセンスコストがかかります。
  • SAPがサポートするデータベースからS3にレプリケーションするには、AWS Glueで追加のカスタム開発が必要です。
  • SAPがサポートしていないターゲットにレプリケーションするには、SAP SLTのエンタープライズライセンスが必要になる場合があります。

エンドツーエンドのエンタープライズ分析

最終的に、お客様はAWS上のデータレイクと分析ソリューションを使用して、エンドツーエンドのエンタープライズ分析を構築しようと検討しています。

SAPは、ERPアプリケーション内に組み込まれた分析を使用した、オペレーショナルレポーティング機能を提供しています。ただし、お客様はSAP、SAP以外のアプリケーション、モノのインターネット (IoT)、ソーシャルメディアストリーム、様々なSaaSアプリケーションからのデータの統合をますます求めています。お客様は、プロセスの効率性を高め、機械学習を使用して新しいビジネスモデルを構築したいと考えています。

エンドツーエンドのエンタープライズ分析のためのハイレベルアーキテクチャのサンプルを以下に示します。このアーキテクチャでは、お客様はこの記事で説明したパターンを使用してSAPアプリケーションからデータを抽出できます。その後、AWSサービスを使用して、抽出したデータと非SAPアプリケーションを組み合わせて、エンドツーエンドのエンタープライズ分析基盤を構築できます。これらのサービスには、Amazon S3、Amazon Redshift、Amazon Athena、Amazon Elasticsearch Service、Amazon QuickSightが含まれます。KibanaやSAP Fiori Appsなどの他の可視化ソリューションもこのソリューションの一部にできます。

Shown here is a high level architecture for end-to-end enterprise anlytics landscape that include SAP applications running on AWS along with DataLakes and Analytics powered by AWS services.

要約

今日、私たちのお客様は、データサイエンティスト、ハイテクに精通したビジネスユーザー、役員、マーケティング担当者、アカウントマネージャー、外部のパートナー、利用者など、複数の役割に対応する必要があります。これらの各ユーザーグループには、異なるソースからの異なる種類のデータへのアクセスが必要です。Webポータル、モバイルアプリ、音声対応アプリ、チャットボット、APIなどの複数のチャネルを介してアクセスします。

AWSの目標は、お客様と協力してこれらの統合を簡素化し、最も重要なことに集中できるようにすることです。つまり、ビジネスの革新と変革です。

AWS re:Inventに参加されるなら、私のセッション、 GPSTEC338 – Building data lakes for your customers with SAP on AWSに足を運び、この記事で説明したパターンの詳細を聞いてください。それまでの間、構築してみましょう!

翻訳はPartner SA 河原が担当しました。原文はこちらです。