こんにちは。CData Software Japan リードエンジニアの杉本です。
今日は CData API Driver for ODBC を使って、「BASE」 のAPIで取得できる注文や商品のデータをPower BIに取り込む方法を紹介したいと思います。
BASE とは?
無料で手軽にネットショップが開設できるEC系クラウドサービスです。
BASE では開発者向けのAPIも提供しており、商品マスタや注文データの取得、注文ステータスのアップデートや商品の追加、編集などをAPIを通じて実施することができます。
今回はこのAPIを使って Microsoft Power BI に BASE の各種データを取り込む方法を紹介します。
実現イメージ
Power BI は汎用のWebコネクタやPowerQueryを用いることで各種APIに接続が可能です。しかしながら、APIに関する知識の習得はもちろんのこと、ページネーション・認証・取得したデータのスキーマ対応をどのように対応するかといった課題が存在し、分析担当者が簡単に接続できるとまでは言えません。
そこで、CData API Driver for ODBC を用いて、このボトルネックを解決します。
各ツールが標準で持っているODBCやJDBCのインターフェースを持っています。CData API Driverはその標準インターフェースを利用し、各ツールから受け取ったSQLを変換して BASE API へリクエストを行うようにします。
リクエスト後、Jsonフォーマットで返ってきたデータセットはCData API Driverが各インタフェースのテーブル形式に変換してBIツールに返すようにします。
これにより、各種ツールからアドホックにSQLによるリクエストがあったタイミングで最新のデータを API から取得することが可能です。
なお、今回はPowerBIから接続としましたが、TableauやQlikなどからも同じように接続が可能である点が特徴です。各BIツールでそれぞれコネクターを作る必要がありません。
手順
それでは実際に PowerBI と BASE API の接続方法を説明します。
PowerBI は以下URLから予めデスクトップ版をダウンロードしておいてください。
BASE API 用のアプリの作成
まず以下のページに移動して、BASE のAPIを使うためのOAuthアプリの登録を行います。(登録にはログインが必要です)
https://developers.thebase.in/
任意のアプリ名および各種必須項目を入力します。
コールバックURLには「http://localhost:33333」を指定し、利用権限にはアクセスしたいデータを対象にしておきます。
申請後、1~2週間すると、以下のように認証に利用するClientIdとClientSecretの値が確認できます。
CData API Driver 接続用設定ファイルの作成
次に、BASE API を CData API DeiverがSQLとして解釈できるように設定ファイルを作成します。
以下のURLから保存してください。
https://cdatajbuilds.s3-ap-northeast-1.amazonaws.com/APIProfiles/Base.apip
保存先フォルダは後ほど使用するので「C:\CData_REST\BASE」といった書き込み可能な任意のフォルダに配置してください。
CData API Driver for ODBC のインストール
PowerBI と BASE API を繋ぐために必要となるCData API Driverをインストールします。
まず、以下のURLからCData API Driver for ODBC の30日間の評価版をダウンロードします。ダウンロードの際には、Emailの登録が必要となります。
https://www.cdata.com/jp/download/download.aspx?sku=FADF-A&type=demo
ダウンロードしたsetup.exeファイルをBIツールがインストールされているマシンにインストールします。インストールウィザードに従い、EULAを確認した上でインストールを完了します。
※途中、ライセンスサーバーへのオンラインアクティベーションが行われるためネットワーク環境に接続されている必要があります。
インストールが完了すると、ODBCのDSN設定のウィンドウが立ち上がります。
以下の項目をセットし、保存します。OAuthClientIdとOAuthClientSecretには事前に取得したBASE OAuthアプリの各値を設定してください。
プロパティ名 | フィールド名 | 入力例 |
---|---|---|
Profile | Base.apipのファイルパス | C:\Work\Base.apip |
InitiateOAuth | OAuthの処理設定 | GETANDREFRESH |
OAuthClientId | BASE アプリのclient_id | 12345678901234567890123456789012 |
OAuthClientSecret | BASE アプリのclient_secret | 12345678901234567890123456789012 |
CallbackURL | BASE アプリのリダイレクトURL | http://localhost:33333 |
入力後「接続テスト」をクリックするとブラウザが立ち上がり、以下のようにログインとアプリの認証が求められるので、内容を確認し「アプリを認証する」をクリックします。
ODBC DSNの画面に戻り、以下のようにメッセージが表示されればOKです。
以上で、CData API Driver for ODBC の準備は完了です。
Power BI からの接続
それでは、Power BIから CData API Driver for ODBC に接続します。
PowerBI デスクトップを立ち上げて「データを取得」をクリックし
ODBC 接続を選択します。
データソース名から先程ODBCで登録したDSNを選択し、Windows認証で接続します。
すると、以下のようにテーブル化された BASE API のリソースが選択できるようになります。
これで Power BIにフラットな形で BASEの商品や注文データが取り込まれます。
あとは Power BI の機能を活用して、各種データを分析できます。
注文明細や注文詳細の取得
注文明細(OrderItems)や注文詳細(OrderDetails)を取得したい場合は、APIの仕様上、取得条件として注文のUniqueKeyを指定する必要があります。
SELECT * FROM OrderItems WHERE UniqueKey = 'XXXX';
ただ、これだと注文一件あたりの明細しか取得できません。
注文を横断的して明細情報を取得したい場合は以下のようにリクエストできます。
SELECT * FROM OrderItems WHERE UniqueKey IN (SELECT UniqueKey FROM Orders)
このSQLはODBCからデータをインポートする際に、以下のように指定が可能です。
おわりに
本記事では PowerBI をもとに解説しましたが、CData API DriverではPowerBI以外のBIツールやアナリティクスツールの接続もサポートしています。
以下のURLで各ツールの接続リファレンスを公開していますので、普段使っているツールから是非試してみてください。
http://www.cdata.com/jp/drivers/rest/