Shopify定期購買アプリのデータをAzure SQL Databaseにレプリケートしてみた

はじめに

本記事ではShopify定期購買アプリの契約者情報をAzure SQL Databaseにレプリケートする方法をご紹介します。
 

対象アプリケーション

Shopify定期購買アプリは、HuckleBerry社が提供するShopifyアプリケーションです。
 
こちらのアプリケーションでは、有料のEnterpriseプランだとAPI連携が可能となっています(2022/12/19弊社調べ)。
 

実現イメージ

今回は、Shopify定期購買アプリ内の契約者情報のデータをCData Sync製品を利用してAzure上のSQLDatabaseにレプリケーションしてみます。
 

必要な情報

 

手順

Shopify定期購買アプリのAPIキーとストアURLの確認

APIキーの取得、および、ストアURLの確認方法はHuckleBerry社が提供する「Shopify「定期購買」アプリ_API Reference」をご参照ください。
 

CData Syncの入手、および、インストール、初期設定

CData Sync製品はこちらのページよりダウンロードすることができます。30日の無償評価版もございます。Windows用の.NET版とMac,Linuxでも動作するJava版があるので環境に合わせたインストーラを入手してください。インストールおよび初期設定についてはこちらの製品ヘルプをご参照ください。インストールおよび初期設定が完了したら以下のような管理コンソールにアクセスできることを確認してください。
 

  • .NET版の場合:インストール後に自動で起動
  • Java版の場合: http://localhost(もしくはホスト名):8181 にブラウザからアクセス

初回アクセス時には本管理コンソールにログインするための管理者ユーザ(admin)のパスワードを入力が必要です。上記で設定したパスワードでログインするとライセンスタブが開きますので、ライセンスをお持ちの方は「新しいライセンスをインストール」、評価版でご利用の方は「30日の評価版をアクティベート」からライセンス登録を行なってください。
 

 

定期購買アプリの定義ファイルを入手

こちらのURLよりhuckleberry-subscription.zipファイルをダウンロードしてCData Syncがアクセス可能なフォルダに解凍して配置します。同フォルダ内には拡張子「.rsd」が格納されていることを確認してください。
例):
Windows : C:\wrk\huckleberry-subscription
MacOS : /Applications/CData/REST/huckleberry-subscription
 

定期購買アプリへの接続

「接続」タブを開き、「接続の追加」 > 「データソース」 > 「+ Add More」をクリックします。

 

 

コネクタをダウンロードダイアログが開くので検索ボックスに「rest」と入力してRESTコネクタを選択してダウンロード&インストールしてください。

 

 

ダウンロードとインストールが完了するとCData Syncが再起動します(再起動しない場合は手動で再起動してください)。正常にインストールが完了するとデータソース内の「REST」が追加されます。

 

 

RESTコネクションを選択して、設定タブ内の名前に任意(例:huckleberry-subscription)の名前を付与します。続いてAdvancedタブを開きます。

 

 

Schema配下のLocationに「##定期購買アプリの定義ファイルを入手」で入手した「.rsd」ファイルの格納フォルダのパスを指定します。

 

 

続きてOther配下のOther(Optional)に以下の値をセットします。

 

shop=storeURLの値;apikey=apikeyの値;sleeptime=2;

※storeURLの値は「sample.myshopify.com」の「sample」 

 
上記値を設定したら画面上にスクロールして「作成およびテスト」ボタンをクリックします。
 

 
正常に保存された旨のメッセージが表示されたら接続の一覧画面に戻ります。
 

SQL Databaseへの接続

 
続けて接続の追加 > 同期先からAzure SQL Databaseを選択します。
 
 
設定タブから以下のSQL Databaseへの接続情報を設定して作成およびテストを実行して接続が成功することを確認します。
 
  • 名前:任意(例:SQLDatabase)
  • Server: サーバー名(例:xxxxxxx.database.windows.net)
  • Port: 接続ポート番号
  • Database: データベース名
  • User: ログインユーザ名
  • Passowrd: ログインパスワード
 
接続の一覧画面にRESTに加えてAzure SQL Databaseの接続が追加されれば接続の設定は完了です。
 

ジョブの設定

ジョブタブを開き、「+ジョブを作成」ボタンをクリックします。
 
新しいジョブを作成ダイアログが開くので以下の設定でジョブを作成します。
 
  • ジョブ名:任意(例:huckleberry-subscription2SQLDatabase)
  • データソース:[REST]
  • 同期先:[Azure SQL DataBase]が選択されていることを確認して、レプリケーションの種類
  • レプリケーションの種類:標準(個別設定)
  
ジョブの設定 > Tasks > 「+タスクを追加」をクリックします。タスクの追加ダイアログが開くので追加する定期購買アプリのテーブルを選択して追加します。
 
 
テーブルリストに追加したテーブルが表示されるので「変更を保存」し、テーブルを選択して「▶︎実行」ボタンで手動でジョブを実行してみましょう。
 
 
ステータスが「Running...」と変わり、しばらく待つと「Records affected:xxxx」という表示に変わればレプリケーションジョブの実行は成功です。
 
 

Azure SQL Databaseからの確認

 
Azure SQL Databaseのクエリエディターから確認してみましょう。テーブルリストにCData Syncのジョブで追加したテーブルが追加されていることを確認できます(例:subsctiptionContracts)。SELECT文を実行してデータを確認すると定期購買アプリのデータがレプリケートされたことを確認できます。
 
 

ジョブの定期実行

 

作成したジョブを自動実行することも可能です。ジョブ設定 > Scheduleタブ内の「このジョブをスケジュールに従って自動的に実行」にて設定します。「スケジューラーを有効にする」のチェックをオンにしてサイクルを指定します。
 
 

まとめ

 
本記事では、Shopify定期購買アプリの契約者情報をCData Syncを利用してAzure SQL Databaseにレプリケートする方法をご紹介しました。CData Syncでは、Shopifyのデータも合わせて取得できるのでShopifyおよび定期購買アプリのデータをまとめてDWHなどのデータ分析基盤に蓄積してBIなどからデータ活用の際にはぜひご利用ください。

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

関連コンテンツ