CData Software Blog

クラウド連携のCData Software の技術ブログです。

BASE API から Power BIに注文・商品データを取り込む:CData API Driver for ODBC

f:id:sugimomoto:20200923174320p:plain

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

今日は CData API Driver for ODBC を使って、「BASE」 のAPIで取得できる注文や商品のデータをPower BIに取り込む方法を紹介したいと思います。

BASE とは?

無料で手軽にネットショップが開設できるEC系クラウドサービスです。

https://thebase.in/

f:id:sugimomoto:20200923174243p:plain

BASE では開発者向けのAPIも提供しており、商品マスタや注文データの取得、注文ステータスのアップデートや商品の追加、編集などをAPIを通じて実施することができます。

f:id:sugimomoto:20200923174251p:plain

今回はこのAPIを使って Microsoft Power BI に BASE の各種データを取り込む方法を紹介します。

実現イメージ

Power BI は汎用のWebコネクタやPowerQueryを用いることで各種APIに接続が可能です。しかしながら、APIに関する知識の習得はもちろんのこと、ページネーション・認証・取得したデータのスキーマ対応をどのように対応するかといった課題が存在し、分析担当者が簡単に接続できるとまでは言えません。

f:id:sugimomoto:20200923174258p:plain

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

各ツールが標準で持っているODBCJDBCのインターフェースを持っています。CData API Driverはその標準インターフェースを利用し、各ツールから受け取ったSQLを変換して BASE API へリクエストを行うようにします。

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

f:id:sugimomoto:20200923174320p:plain

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

なお、今回はPowerBIから接続としましたが、TableauやQlikなどからも同じように接続が可能である点が特徴です。各BIツールでそれぞれコネクターを作る必要がありません。

手順

それでは実際に PowerBI と BASE API の接続方法を説明します。

PowerBI は以下URLから予めデスクトップ版をダウンロードしておいてください。

powerbi.microsoft.com

BASE API 用のアプリの作成

まず以下のページに移動して、BASE のAPIを使うためのOAuthアプリの登録を行います。(登録にはログインが必要です)

https://developers.thebase.in/

f:id:sugimomoto:20200923174340p:plain

任意のアプリ名および各種必須項目を入力します。

コールバックURLには「http://localhost:33333」を指定し、利用権限にはアクセスしたいデータを対象にしておきます。

f:id:sugimomoto:20200923174345p:plain

申請後、1~2週間すると、以下のように認証に利用するClientIdとClientSecretの値が確認できます。

f:id:sugimomoto:20200923174353p:plain

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をインストールします。

f:id:sugimomoto:20200923174403p:plain

まず、以下の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を確認した上でインストールを完了します。

f:id:sugimomoto:20200923174413p:plain

※途中、ライセンスサーバーへのオンラインアクティベーションが行われるためネットワーク環境に接続されている必要があります。

インストールが完了すると、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

f:id:sugimomoto:20200923174420p:plain

入力後「接続テスト」をクリックするとブラウザが立ち上がり、以下のようにログインとアプリの認証が求められるので、内容を確認し「アプリを認証する」をクリックします。

f:id:sugimomoto:20200923174426p:plain

ODBC DSNの画面に戻り、以下のようにメッセージが表示されればOKです。

f:id:sugimomoto:20200727092541p:plain

以上で、CData API Driver for ODBC の準備は完了です。

Power BI からの接続

それでは、Power BIから CData API Driver for ODBC に接続します。

PowerBI デスクトップを立ち上げて「データを取得」をクリックし

f:id:sugimomoto:20200115120336p:plain

ODBC 接続を選択します。

f:id:sugimomoto:20200115120341p:plain

データソース名から先程ODBCで登録したDSNを選択し、Windows認証で接続します。

f:id:sugimomoto:20200923174433p:plain

f:id:sugimomoto:20200115120350p:plain

すると、以下のようにテーブル化された BASE API のリソースが選択できるようになります。

f:id:sugimomoto:20200923174438p:plain

これで Power BIにフラットな形で BASEの商品や注文データが取り込まれます。

f:id:sugimomoto:20200923174447p:plain

あとは Power BI の機能を活用して、各種データを分析できます。

f:id:sugimomoto:20200924142304p:plain

注文明細や注文詳細の取得

注文明細(OrderItems)や注文詳細(OrderDetails)を取得したい場合は、APIの仕様上、取得条件として注文のUniqueKeyを指定する必要があります。

SELECT * FROM OrderItems WHERE UniqueKey = 'XXXX';

ただ、これだと注文一件あたりの明細しか取得できません。

注文を横断的して明細情報を取得したい場合は以下のようにリクエストできます。

SELECT * FROM OrderItems WHERE UniqueKey IN (SELECT UniqueKey FROM Orders)

このSQLODBCからデータをインポートする際に、以下のように指定が可能です。

f:id:sugimomoto:20200924142411p:plain

おわりに

本記事では PowerBI をもとに解説しましたが、CData API DriverではPowerBI以外のBIツールやアナリティクスツールの接続もサポートしています。

以下のURLで各ツールの接続リファレンスを公開していますので、普段使っているツールから是非試してみてください。

http://www.cdata.com/jp/drivers/rest/

f:id:sugimomoto:20200115120402p:plain