製品をチェック

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

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

製品の詳細

Workday アイコン Workday JDBC Driver 相談したい

Workday データを組み込んだパワフルなJava アプリケーションを短時間・低コストで作成して配布できます。

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

CData JDBC ドライバーを使用して、Apache Spark でWorkday にデータ連携。

杉本和也
リードエンジニア

最終更新日:2023-09-04
workday ロゴ

CData

jdbc ロゴ画像
Apache Spark ロゴ

こんにちは!リードエンジニアの杉本です。

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

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

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

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

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

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

    Workday 接続プロパティの取得・設定方法

    ここでは、4つのWorkday API の接続パラメータを設定する方法、およびTenant とBaseURL を取得する方法について説明します。必要なAPI のパラメータが設定され、カスタムOAuth および / またはAzure AD API クライアントを作成したら、接続の準備は完了です。

    接続の前提条件

    API / 前提条件 / 接続パラメータ
    WQL / WQL サービスを有効化(下記参照) / ConnectionTypeWQL
    Reports as a Service / カタログレポートの設定(ヘルプドキュメントの「データアクセスのファインチューニング」参照) / ConnectionTypeReports
    REST / 自動で有効化 / ConnectionTypeREST
    SOAP / 自動で有効化 / ヘルプドキュメントのWorkday SOAP API への認証を参照

    BaseURL およびTenant の取得

    BaseURL およびTenant プロパティを取得するため、Workday にログインしてView API Clients を検索します。 この画面では、Workday はBaseURLTenant の両方を含むURL であるWorkday REST API Endpoint を表示します。

    REST API Endpoint のフォーマットは、 https://domain.com/subdirectories/mycompany です。ここで、

    • https://domain.com/subdirectories/BaseURL です。
    • mycompany(URL の最後のスラッシュの後の部分)はTenant です。

    例えば、REST API エンドポイントがhttps://wd3-impl-services1.workday.com/ccx/api/v1/mycompany の場合、 BaseURLhttps://wd3-impl-services1.workday.com であり、Tenantmycompany です。

    WQL サービスを有効化

    Workday WQL API を介して接続するには、はじめにWQL Service を有効にする必要があります。

    1. Workday を開きます。
    2. 検索バーにView Domain と入力します。
    3. プロンプトにWorkday Query Language と入力します。
    4. Allowed Security Group Types のいずれかに、接続するユーザーが含まれていることを確認します。

    Workday への認証

    Basic 認証以外のほとんどのWorkday 接続では、認証のためにOAuth ベースのカスタムAPI クライアントアプリケーションを作成する必要があります。これには、ユーザーがAzure AD 資格情報を介して接続するエンタープライズインストールも含まれます。 Workday への認証につての詳細は、ヘルプドキュメントの「Workday への認証」セクションを参照してください。

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

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

    java -jar cdata.jdbc.workday.jar

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

    scala> val workday_df = spark.sqlContext.read.format("jdbc").option("url", "jdbc:workday:User=myuser;Password=mypassword;Tenant=mycompany_gm1;Host=https://wd3-impl-services1.workday.com").option("dbtable","Workers").option("driver","cdata.jdbc.workday.WorkdayDriver").load()
  3. 接続が完了し、データがロードされたら、テーブルスキーマが表示されます。
  4. Workday をテンポラリーテーブルとして登録します:

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

    scala> workday_df.sqlContext.sql("SELECT Worker_Reference_WID, Legal_Name_Last_Name FROM Workers WHERE Legal_Name_Last_Name = Morgan").collect.foreach(println)

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

    Workday をApache Spark から取得

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

関連コンテンツ

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

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