CData Software Blog

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

CData Amazon Marketplae ODBC Driverの使い方:注文や商品データの取得してPower BIで分析

f:id:sugimomoto:20201002114657p:plain

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

今回は CData Amazon Marketplae Driverの使い方、注文や商品データの取得方法について、Power BIから接続する想定で解説していきます。

https://www.cdata.com/jp/drivers/amazonmarketplace/

なお、使用するのはODBC Driverですが、JDBCExcel Add-inでも同様なデータの取得が可能です。

CData Amazon Marketplae Driverで取得できるデータ

実際に使い始める前に、CData Amazon Marketplae Driverでどのようなデータを扱うことができるのか? 確認しておきましょう。

ビューとして定義されているのは、以下の10種類です。

http://cdn.cdata.com/help/ONF/jp/odbc/pg_allviews.htm

ビュー名 概要 対応 MWS API
FeedSubmissionList ストアド・プロシージャでの処理リクエスト(SubmitXXX)の実行状況を取得します。 GetFeedSubmissionResult
FeedSubmissionResult FeedSubmissionListの処理詳細を取得します。 GetFeedSubmissionList
InboundShipmentItems 納品詳細を取得します。 ListInboundShipmentItems
InboundShipments 納品リストを取得します。 ListInboundShipments
InventorySupply 在庫状況を取得します。 ListInventorySupply
OrderItems 注文情報の詳細を取得します。 ListOrderItems
Orders 注文情報一覧を取得します。 ListOrders
Products 商品一覧を取得します。 GetMatchingProductForId
ReportList 過去90日間に作成されたレポートの一覧を取得します。 GetReportList
ReportRequestList レポートのリクエスト一覧を取得します。 GetReportRequestList

商品データはProducts・注文データはOrdersやOrderItemasのビューを通じて取得できます。

今回はこのデータを対象に Powre BIから接続してみたいと思います。

手順

それでは実施手順を解説していきましょう。

必要なもの

※現在 CData 各種 Amazon Marketplae Driverを使う場合は、大口出品アカウントが必要です。

接続情報の取得

まず Amazon Marketplae APIに接続するために必要な情報を取得しましょう。

対象のAmazon Marketplae アカウントにログインし、「ユーザー権限」画面の「Amazon MWS 開発者権限」セクションから以下の情報を取得してください。

  • 出品者ID
  • 開発者 ID
  • AWSアクセスキーID
  • 秘密キー
  • MWSAuthトーク

CData Amazon Marketplace ODBC Driverのセットアップ

次にCData Amazon Marketplace ODBC Driverをセットアップします。

以下のURLから評価版をダウンロードして、対象のマシンにセットアップしてください。

https://www.cdata.com/jp/drivers/amazonmarketplace/download/odbc/

f:id:sugimomoto:20201002114717p:plain

f:id:sugimomoto:20201002114723p:plain

セットアップ後、以下の接続構成画面が立ち上がるので、予めAmazon Marketplae の画面から取得しておいた情報をそれぞれのプロパティに設定します。

プロパティ名 備考
AWS Access Key Id AWSアクセスキーIDを入力します。
AWS Secret Key 秘密キーを入力します。
MWS Auth Token MWSAuthトークンを入力します。
Seller Id 出品者IDを入力します。
Marketplae 対象の出品場所を選択します。日本であればJapanを指定してください。

f:id:sugimomoto:20201002114728p:plain

入力後、接続テストをクリックして、以下のようなメッセージが表示されればOKです。

f:id:sugimomoto:20201002114735p:plain

Power BI からの接続

それでは、Power BIから CData Amazon Marketplae ODBC Driver に接続してみましょう。

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

f:id:sugimomoto:20200115120336p:plain

ODBC 接続を選択します。

f:id:sugimomoto:20200115120341p:plain

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

f:id:sugimomoto:20201002114741p:plain

f:id:sugimomoto:20200929102120p:plain

接続後、以下のようにAmazon Marketplae の各種データを取得できるテーブルが一覧で表示されます。

まず注文データを取得してみましょう。「Orders」というテーブルを選択し「読み込み」ボタンをクリックすることで取得できます。

f:id:sugimomoto:20201002114745p:plain

これで注文データが Power BI にロードされたので、後はPower BIの機能を使って分析することができます。

f:id:sugimomoto:20201002114751p:plain

期間指定をして取得したい

注文データはデフォルトでは全件を対象として取得しますが、その場合 Amazon Marketplae APIの取得制限にひっかかったり、取得までに時間がかかったりします。

その場合、範囲を絞って取得するのがおすすめです。

ODBC からデータをインポートする際に、以下のようにSQLでWHERE句によるフィルターを設けることで、範囲を絞った取得が可能です。

SELECT * FROM Orders WHERE PurchaseDate >= '2018-11-11T00:00:00.000000' AND PurchaseDate <= '2018-12-11T00:00:00.000000';

f:id:sugimomoto:20201002114758p:plain

対応しているクエリは以下のヘルプも参考にしてみてください。

http://cdn.cdata.com/help/ONF/jp/odbc/pg_table-orders.htm

注文明細を取得したい

注文明細、つまり商品ごとの注文を取得したい場合は、OrderItemsのテーブルを利用します。

http://cdn.cdata.com/help/ONF/jp/odbc/pg_table-orderitems.htm

しかしながら、OrderItemsのテーブルはAPIの制約上、かならずAmazonOrderIdを指定しなければいけません。

そのため以下のようにSQLでデータを取り込むか

SELECT * FROM OrderItems WHERE AmazonOrderId IN ('503-9993250-1405404', '503-9993250-1405404')

f:id:sugimomoto:20201002114807p:plain

以下のようにOrdersテーブルから取得した値を使って、範囲指定で注文明細を取得する必要があります。

SELECT * FROM OrderItems WHERE AmazonOrderId IN (SELECT AmazonOrderId FROM Orders WHERE PurchaseDate >= '2018-11-11T00:00:00.000000' AND PurchaseDate <= '2018-12-11T00:00:00.000000'); 

f:id:sugimomoto:20201002114812p:plain

商品データを取得したい

商品データの取得はProductsテーブルで実施できますが、Productsテーブルもデータ取得するためにはAPIの制約上、条件指定をしなければいけません。

http://cdn.cdata.com/help/ONF/jp/odbc/pg_table-products.htm

例えば、SellerSKUを使って対象の出品しているデータを取得する場合は以下のようなクエリが利用可能です。

SELECT * FROM Products WHERE IdList = 'XXXX' AND IdType = 'SellerSKU';

f:id:sugimomoto:20201002114818p:plain

複数の商品をまとめて取得したい場合は、以下のようなSQLも可能です。

SELECT * FROM Products WHERE IdList IN  ('XXX','XXX') AND IdType = 'SellerSKU'; 

おわりに

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

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

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