製品をチェック

SAP SuccessFactors Driver の30日間無償トライアルをダウンロード

 30日間の無償トライアルへ

製品の詳細

SAP SuccessFactors アイコン SAP SuccessFactors JDBC Driver 相談したい

SAP SuccessFactors に連携するJava アプリケーションを素早く、簡単に開発できる便利なドライバー。

AWS Glue ジョブからSAP SuccessFactors データにJDBC 経由で接続

Amazon S3 でホストされているCData JDBC ドライバーを使用してAWS Glue ジョブからSAP SuccessFactors にデータ連携。

加藤龍彦
ウェブデベロッパー

最終更新日:2023-09-07
sapsuccessfactors ロゴ

CData

jdbc ロゴ画像
AWS Glue ロゴ

こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。

AWS Glue はAmazon のETL サービスであり、簡単にデータプレパレーションを実行してストレージおよび分析用に読み込むことができます。AWS Glue と一緒にPySpark モジュールを使用すると、JDBC 接続経由でデータを処理するジョブを作成し、そのデータをAWS データストアに直接読み込むことができます。ここでは、CData JDBC Driver for SAPSuccessFactors をAmazon S3 バケットにアップロードし、SAP SuccessFactors からデータを抽出してCSV ファイルとしてS3 に保存するためのAWS Glue ジョブを作成・実行する方法について説明します。

CData JDBC Driver for SAPSuccessFactors をAmazon S3 バケットにアップロード

CData JDBC Driver for SAPSuccessFactors をAWS Glue から使用するには、ドライバーの.jar ファイル(および必要なライセンスファイル)をAmazon S3 のバケットに配置する必要があります。

  1. Amazon S3 コンソールを開きます。
  2. バケットを選択、もしくは作成します。
  3. [アップロード]をクリックします。
  4. JDBC Driver の.jar ファイル(cdata.jdbc.sapsuccessfactors.jar) をインストールディレクトリのlib フォルダから選択してアップロードします。

Amazon Glue Job を設定

  1. [分析]->[AWS Glue]をクリックします。
  2. AWS Glue コンソールで、[ETL]->[ジョブ]をクリックします。
  3. [ジョブの追加]をクリックして新しいGlue ジョブを作成します。
  4. ジョブのプロパティを設定します:
    • 名前: SAPSuccessFactorsGlueJob など任意のジョブ名
    • IAM ロール: AWSGlueServiceRole もしくは AmazonS3FullAccessSelect の権限があるIAM ロールを設定(JDBC Driver がAmazon S3 バケットにあるため)。
    • Type: [Spark]を選択。
    • Glue version: ドロップダウンからバージョンを選択。
    • このジョブ実行: [ユーザーが作成する新しいスクリプト]を選択。
      スクリプトプロパティの設定:
      • スクリプトファイル名: GlueSAPSuccessFactorsJDBC などのスクリプトファイル名。
      • スクリプトが保存されているS3 パス: S3 バケットを入力もしくは選択。
      • 一時ディレクトリ: S3 バケットを入力もしくは選択
    • ETL 言語: [Python]を選択
    • セキュリティ設定、スクリプトライブラリおよびジョブパラメータを展開。依存JARS パスは、JDBC の.jar ファイルをアップロードしたS3 バケットに設定。.jar ファイル名 s3://mybucket/cdata.jdbc.sapsuccessfactors.jar も含めます。
  5. [次へ]をクリックすると、ほかのAWS エンドポイントへの接続オプション追加ができます。Redshift、MySQL などに接続する際にはここで接続を作成できます。
  6. [ジョブの保存とスクリプトの編集]をクリックします。
  7. 開いたエディタで、Python スクリプトを記述します。サンプルは以下です。

サンプルGlue スクリプト

CData JDBC driver でSAP SuccessFactors に接続するには、JDBC URL を作成します。さらにライセンスとしてJDBC URL にRTK プロパティを設定する必要があります。RTK は通常のライセンスと異なりますので、CData まで直接ご連絡をください。

Basic 認証またはOAuth with SAML アサーションを使用して、SAP SuccessFactors に認証できます。

Basic 認証

SAP SuccessFactors に正常に認証するには、次のプロパティの値を指定する必要があります。プロバイダーは、Cookie を使用してSAP SuccessFactors によって開かれたセッションを再利用することに注意してください。つまり、セッションを開く最初のリクエストでのみクレデンシャルが使用されます。その後、SAP SuccessFactors から返されたCookie が認証に使用されます。

  • Url: Success Factors をホストするサーバーのURL に設定。一部のサーバーがリストされています。SAP support documentation(外部リンク)。
  • User: アカウントのユーザー名に設定。
  • Password: アカウントのパスワードに設定。
  • CompanyId: 会社の一意の識別子に設定。

OAuth 認証

アクセストークンを取得するために使用される、次のプロパティの値を指定する必要があります。

  • Url: Success Factors をホストするサーバーのURL に設定。一部のサーバーがリストされています。SAP support documentation(外部リンク)。
  • User: アカウントのユーザー名に設定。
  • CompanyId: 会社の一意の識別子に設定。
  • OAuthClientId: API Center で生成されたAPI Key に設定。
  • OAuthClientSecret: SAML アサーションの署名に使用されるX.509 プライベートキー。プライベートキーは、「Registering your OAuth Client Application」でダウンロードした証明書に記載されています。
  • InitiateOAuth: GETANDREFRESH に設定。

ビルトイン接続文字列デザイナー

JDBC URL の作成をサポートするビルトインの接続文字列デザイナーがあります。ドライバーの.jar ファイルをダブルクリックするか、コマンドラインで.jar ファイルを実行するとデザイナーが開きます。

java -jar cdata.jdbc.sapsuccessfactors.jar

必要項目を入力すると、デザインs-下部に接続文字列が生成されますのでクリップボードにコピーして使います。

Using the built-in connection string designer to generate a JDBC URL (Salesforce is shown.)

CData JDBC driver をPySpark で使用して、AWS Glue モジュールでSAP SuccessFactors データを取得して、S3 にCSV 形式で保存するシンプルなスクリプト例は以下です。

import sys from awsglue.transforms import * from awsglue.utils import getResolvedOptions from pyspark.context import SparkContext from awsglue.context import GlueContext from awsglue.dynamicframe import DynamicFrame from awsglue.job import Job args = getResolvedOptions(sys.argv, ['JOB_NAME']) sparkContext = SparkContext() glueContext = GlueContext(sparkContext) sparkSession = glueContext.spark_session ##Use the CData JDBC driver to read SAP SuccessFactors データ from the ExtAddressInfo table into a DataFrame ##Note the populated JDBC URL and driver class name source_df = sparkSession.read.format("jdbc").option("url","jdbc:sapsuccessfactors:RTK=5246...;User=username;Password=password;CompanyId=CompanyId;Url=https://api4.successfactors.com;").option("dbtable","ExtAddressInfo").option("driver","cdata.jdbc.sapsuccessfactors.SAPSuccessFactorsDriver").load() glueJob = Job(glueContext) glueJob.init(args['JOB_NAME'], args) ##Convert DataFrames to AWS Glue's DynamicFrames Object dynamic_dframe = DynamicFrame.fromDF(source_df, glueContext, "dynamic_df") ##Write the DynamicFrame as a file in CSV format to a folder in an S3 bucket. ##It is possible to write to any Amazon data store (SQL Server, Redshift, etc) by using any previously defined connections. retDatasink4 = glueContext.write_dynamic_frame.from_options(frame = dynamic_dframe, connection_type = "s3", connection_options = {"path": "s3://mybucket/outfiles"}, format = "csv", transformation_ctx = "datasink4") glueJob.commit()

Glueジョブを実行する

スクリプト記述後、Glue ジョブを実行します。実行した取得/ロードのジョブが完了するとAWS Glue コンソールのジョブページでステータスが確認できます。成功するとS3 バケットにSAP SuccessFactors データのCSV ファイルが生成されています。

このようにCData JDBC Driver for SAPSuccessFactors をAWS Glue で使用することで、SAP SuccessFactors データをAWS Glue で自在に扱うことができます。Glue の外部データへの接続性を拡張するJDBC Driver を是非お試しください。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。