Apache Spark でPayPal のデータをSQL で操作する方法

杉本和也
杉本和也
リードエンジニア
CData JDBC ドライバーを使用して、Apache Spark でPayPal にデータ連携。

Apache Spark は大規模データ処理のための高速エンジンです。CData JDBC Driver for PayPal と組み合わせると、Spark はリアルタイムでPayPal のデータに連携して処理ができます。本記事では、Spark シェルに接続してPayPal をクエリする方法について解説します。

CData JDBC Driver は、最適化されたデータ処理がドライバーに組み込まれているため、リアルタイムPayPal と対話するための高いパフォーマンスを提供します。PayPal に複雑なSQL クエリを発行すると、ドライバーはフィルタや集計など、サポートされているSQL操作を直接PayPal にプッシュし、組込みSQL エンジンを使用してサポートされていない操作(SQL 関数やJOIN 操作)をクライアント側で処理します。組み込みの動的メタデータクエリを使用すると、ネイティブデータ型を使用してPayPal を操作して分析できます。

CData JDBC Driver for PayPal をインストール

まずは、本記事右側のサイドバーからPayPal JDBC Driver の無償トライアルをダウンロード・インストールしてください。30日間無償で、製品版の全機能が使用できます。

Spark Shell を起動してPayPal のデータに接続

  1. ターミナルを開き、Spark shell でCData JDBC Driver for PayPal JAR file をjars パラメータに設定します:
    $ spark-shell --jars /CData/CData JDBC Driver for PayPal/lib/cdata.jdbc.paypal.jar
    
  2. Shell でJDBC URL を使ってPayPal に接続し、SQL Context load() function でテーブルを読み込みます。

    それでは、PayPal への接続について説明していきましょう。CData製品では、2つのPayPal API のテーブルに対応しています。これらのAPI は、それぞれ異なる認証方法を使用します。

    • REST API はOAuth 標準を使用します。REST API で認証するには、AuthSchemeOAuth に設定し、OAuthClientId およびOAuthClientSecret プロパティを設定してください
    • 非推奨:SOAP API は廃止予定です。より優れたリソースアクセスのため、REST API のご利用をお勧めします

    必要なAPI 資格情報の取得方法については、ヘルプドキュメントの「はじめに」をご確認ください。

    使用するAPI を選択するには、Schema プロパティをREST またはSOAP に設定します。

    テスト目的では、UseSandbox をtrue に設定してSandbox 資格情報をご利用いただけます。

    組み込みの接続文字列デザイナー

    JDBC 接続文字列URL の作成には、PayPal JDBC Driver にビルトインされたデザイナを使用できます。JAR ファイルをダブルクリックするか、コマンドラインでJAR ファイルを実行するとデザイナが開きます。

    java -jar cdata.jdbc.paypal.jar
    

    接続プロパティを入力し、接続文字列をクリップボードにコピーします。

    scala> val paypal_df = spark.sqlContext.read.format("jdbc").option("url", "jdbc:paypal:Schema=SOAP;Username=sandbox-facilitator_api1.test.com;Password=xyz123;Signature=zx2127;").option("dbtable","Transactions").option("driver","cdata.jdbc.paypal.PayPalDriver").load()
    
  3. 接続が完了し、データがロードされたら、テーブルスキーマが表示されます。
  4. PayPal をテンポラリーテーブルとして登録します:

    scala> paypal_df.registerTable("transactions")
  5. データに対して、次のようなカスタムSQL クエリを実行します。

    scala> paypal_df.sqlContext.sql("SELECT Date, GrossAmount FROM Transactions WHERE TransactionClass = Received").collect.foreach(println)

    コンソールで、次のようなPayPal のデータを取得できました!これでPayPal との連携は完了です。

    PayPal をApache Spark から取得

CData JDBC Driver for PayPal をApache Spark で使って、PayPal に対して、複雑かつハイパフォーマンスなクエリを実行できます。30日の無償評価版 をダウンロードしてぜひお試しください。

Apache Spark の設定

はじめる準備はできましたか?

PayPal Driver の無料トライアルをダウンロードしてお試しください:

 ダウンロード

詳細:

PayPal Icon PayPal JDBC Driver お問い合わせ

PayPal のTransaction、Orders、Sales、Invoices データをJava/J2EE アプリケーションから手軽に連携を実現。