Power BI から Zuora API にアクセスし Invoice データを可視化する:CData Zuora Driver

f:id:sugimomoto:20210608155340p:plain

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

今回はCData Driver V21リリースで正式に新しいラインナップとして加わったZuora Driverの使い方を紹介したいと思います。

Zuora とは?

Zuora はサブスクリプション型のビジネスを営む企業向けに最適化したSaaSアプリケーションです。

jp.zuora.com

サブスクリプション型ビジネスに必要とされる見積作成、販売、契約管理、請求計算・発行、クレジットカード決済連携、入金・回収管理、売上計上、会計締め処理、分析・レポート等、幅広い業務に対応したアプリケーションになっています。

f:id:sugimomoto:20210608154019p:plain

また、Zuoraでは各種データと連携が可能なAPIが数多く提供されています。

jp.zuora.com

f:id:sugimomoto:20210608154030p:plain

今回はこのAPIを用いて、BIツールとの連携を行ってみます。

CData Zuora Driverではどんなことができるの?

Zuora API では Data Queryと呼ばれる、Zuoraの各種データをクエリ・取得するためのAPIが提供されています。

jp.zuora.com

SQLライクなリクエストが実施できるため、とても柔軟にデータが取得できるのですが、インターフェースが独自仕様のため、例えばBIツールからリクエストを行いたいといっても、実はそう単純には接続できません。

そのため、基本的にはカスタムコネクタやバッチ処理を行うためのプログラムが必要になってしまいます。

f:id:sugimomoto:20210608154133p:plain

そこで、CData API Driver を用いて、このボトルネックを解決します。

BIツールの多くはデータベースなどへの接続のため、標準でODBCやJDBCといったRDB接続用のインターフェースを持っています。CData Driverはその標準インターフェースを利用し、各ツールから受け取ったSQLを変換して Zuora API へリクエストを行うようにします。

リクエスト後、Zuoraから返ってきたデータセットはCData Driverが各インタフェースのテーブル形式に変換してBIツールに返すようにします。

f:id:sugimomoto:20210608154144p:plain

これにより、各種ツールからアドホックにSQLによるリクエストがあったタイミングで最新のデータを API から取得することが可能です。

これで以下のようなBIツールによる可視化を簡単に行うことができるようになります。

f:id:sugimomoto:20210608154151p:plain

手順

それでは実際にCData Zuora Driverを使って、Power BIにデータを取り込み、Zuoraのデータを可視化してみましょう。

Zuora 側のAPI接続準備

CData Driverから接続する前に、Zuora側でAPI接続用の準備を行います。

ちなみに、API接続には対象のユーザーを決めるのですが、Zuora 公式リファレンスではAPI ユーザーの作成をおすすめしています。必要に応じて作成してみてください。

knowledgecenter.zuora.com

まず、Zuoraに管理者アカウントでログインし、「Settings」→「Administration」ページに移動します。

f:id:sugimomoto:20210608154205p:plain

前述の通りAPIアクセスはユーザーに紐づけて行うので「Manage Users」に移動します。

f:id:sugimomoto:20210608154211p:plain

ユーザー一覧が表示されたら、APIアクセス構成を行うユーザーアカウントを選択します。

f:id:sugimomoto:20210608154218p:plain

ユーザー詳細画面に移動すると、画面下部に「OAuth Clients」という項目があります。ここがAPIアクセス情報を構成するところです。

ここで任意のClient Nameを入力して、「Create」をクリックします。

f:id:sugimomoto:20210608154226p:plain

クリック後、以下のようにAPIアクセスに必要となる「ClientId」「Client Secret」が表示されるので、この情報を控えておきます。

f:id:sugimomoto:20210608154234p:plain

CData Zuora Driverのインストール

続いて、CData Zuora Driverを構成します。

今回はPower BI から Zuoraに接続するので、Power BI 専用のDriverである「Zupra Power BI Connector」を使います。

下記URLから30日間のフル機能トライアルが入手できるので、ダウンロードしてセットアップを行います。

www.cdata.com

f:id:sugimomoto:20210608154244p:plain

セットアップはダイアログに従って進めることができます。

f:id:sugimomoto:20210608154251p:plain

セットアップが完了すると、以下のように接続設定画面が立ち上がるので、先程取得したZuoraのAPIアクセス情報を元に、接続設定を行います。

プロパティ名 備考
Tenant 例)USAPISandbox 利用環境に併せて対象となるTenantを選択してください。詳しくはこちら
Zuora Service DataQuery DataQueryまたはAQuADataExportから選びます。詳しくはこちら
Initiate OAuth GETANDREFRESH
OAuth Client Id 例)b40dab23-ccd6-473b-ad12-785b5ca2c594 先程生成したZuora Client Idを入力します。
OAuth Client Secret 例)+IT0XO14SLZ0eigjYIYvXLGgSS8oBchcmsmVrPC 先程生成したZuora Client Secretを入力します。

f:id:sugimomoto:20210608154257p:plain

入力後接続テストをクリックし、接続が正常に完了すればOKです。

「OK」をクリックして設定を保存しましょう。

Power BI からの接続

準備が整ったので早速Power BIからZuoraのデータにアクセスしてみます。

Power BI Desktop を立ち上げて「データを取得」をクリックします。

f:id:sugimomoto:20210608154302p:plain

対象のサービス一覧から「CData Zuora」を選択します。

f:id:sugimomoto:20210608154307p:plain

コネクション画面が表示されるので、Data Source Nameの欄に「CData Power BI Zuora」と入力し「OK」をクリックしてください。

f:id:sugimomoto:20210608154312p:plain

以下の設定画面ではそのまま「接続」をクリックして大丈夫です。

f:id:sugimomoto:20210608154317p:plain

正常に接続が行われると、以下のようなテーブル一覧画面が表示されるので、ここで取得したいデータを自由に選択することができます。今回は請求情報・注文情報などが含まれるInvoiceItem・OrderItem、そして商品マスタであるProductを選択してみました。

必要なテーブルを選択したら「読み込み」をクリックしてください。

f:id:sugimomoto:20210608154322p:plain

これで以下のようにPower BIにZuoraのデータを取り込むことができました。

f:id:sugimomoto:20210608154328p:plain

なお、Zuoraのデータは正規化されているので、InvoiceItemでProductのプロパティを元に分析したい場合は、以下のように紐付けを行う必要があります。

f:id:sugimomoto:20210608154335p:plain

あとはPower BIの機能をフルに活用して分析・可視化につなげることができます。

例えば、Product毎の請求金額などがサクッと可視化できます。

f:id:sugimomoto:20210608154342p:plain

Tips:DataQueryとAQuADataExport の違いについて

接続設定画面でちらっと紹介した「DataQuery」「AQuADataExport 」ですが、以下のヘルプで詳しい違いを掲載しています。

cdn.cdata.com

f:id:sugimomoto:20210608154351p:plain

大きな違いとしては「DataQuery」は細かなフィルター条件を元にデータを抽出できるのですが、「AQuADataExport 」はかならず内部でデータを全件取得しています。

CData Zuora Driverはその特性上、「DataQuery」「AQuADataExport」どちらを使ってもフィルター条件が表面的には効くのですが「AQuADataExport」の場合は内部的に一度メモリ上にデータをすべてロードしてから、マシン上でフィルタリングが行われます。

これが最終的にはデータクエリ時のパフォーマンスなどにつながってくるので、API Limitも鑑みながら、ユースケースに併せてどちらが望ましいか選んでください。

おわりに

今回はPower BIからZuoraに接続してみましたが、他のBIツール、例えば TableauやQlikなどからも同じように接続が可能です。

各種ツールからの接続方法については下記リンクにまとめてありますので、参考にしてみてください。

www.cdata.com

f:id:sugimomoto:20210608154158p:plain

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

関連コンテンツ