こんにちは!ドライバー周りのヘルプドキュメントを担当している兵藤です。
本記事では、SQL Server のTDS Remoting 機能を使ってBigCommerce のリンクサーバーをセットアップする方法をご紹介します。リンクサーバーの利用には、CData ODBC ドライバに同梱されているSQL Gateway を使用します。
SQL Server のインターフェースでBigCommerce への読み書き双方向のアクセスが可能になります。
BigCommerce リンクサーバー利用シナリオ
- SQL Server に接続しているアプリケーションでBigCommerce データを利用したいがデータ接続を増やしたくない
- BigCommerce データをSQL Server のデータや他のリンクサーバーのデータをJOIN などして使いたい
- 利用したいミドルウェア・BI ツールなどにODBC やJDBC の汎用のインターフェースがないが、SQL Server には接続できる
BigCommerce DSN の設定
まずは、本記事右側のサイドバーからBigCommerce ODBC Driver の無償トライアルをダウンロード・インストールしてください。ODBC ドライバーのインストール完了時にODBC DSN 設定画面が立ち上がります。または、Microsoft ODBC データソースアドミニストレーターを使ってDSN を作成および設定できます。
BigCommerce 認証は標準のOAuth フローに基づいています。
Store ID の取得
BigCommerce Store に接続するには、StoreId が必要です。Store Id を確認するには、以下の手順に従ってください。
- BigCommerce アカウントにログインします。
- ホームページから「Advanced Settings」->「API Accounts」 を選択します。
- 「Create API Account」->「Create V2/V3 API Token」をクリックします。
- 画面にAPI Path という名前のテキストボックスが表示されます。
- テキストボックス内に、次の構造のURL が表示されます:https://api.bigcommerce.com/stores/{Store Id}/v3。
- 上記で示したように、Store Id は'stores/' と'/v3' パスパラメータの間にあります。
- Store Id を取得したら、「キャンセル」 をクリックするか、まだ持っていない場合はAPI Account の作成に進むことができます。
パーソナルアクセストークンの取得
加えて、自分のデータをテストおよびアクセスするには、個人用トークンを取得する必要があります。個人用トークンを取得する方法は次のとおりです。
- BigCommerce アカウントにログインします。
- ホームページから「Advanced Settings」->「API Accounts」 を選択します。
- 「Create API Account」->「Create V2/V3 API Token」をクリックします。
- アカウント名を入力します。
- 作成するAPI Account の「OAuth Scopes」を選択します。CData 製品 は"None" とマークされたデータにアクセスできません。また、"read-only"
とマークされたデータを変更できません。
- 「保存」をクリックします。
BigCommerce への認証
次に、以下を設定してデータに接続できます。
- StoreId:API Path テキストボックスから取得したStore ID に設定。
- OAuthAccessToken:生成したトークンに設定。
- InitiateOAuth:OFF に設定。
SQL Gateway でのBigCommerce ODBC DSN を設定
CData ODBC ドライバにはSQL Gateway が同梱されています。このSQL Gateway に、BigCommerce ODBC Driver をサービスとして設定します。
-
「スタート」画面から「SQL Gateway」を起動します。青い「C」のSQL Gateway ロゴが右下のインジケータに表示されます。
アプリケーションコンソールが開かない場合には、SQL Gateway アイコンを右クリックして、「Open Application」をクリックしてください。
-
アプリケーションコンソールの「Service」タブを開いて、「Add」をクリックして、新しいODBC データソースを設定します。
-
BigCommerce ODBC の設定を行います。
Service Name]:任意
リモーティングDB 選択:SQL Server を選択
Data Source:ドロップダウンでCData BigCommerce Source Sys を選択
Port:使用していないポートを選択
-
次に「Users」タブ→「Add」からユーザーを登録します。
ユーザー毎にFull アクセスか、Readonly か、None の権限を選択できます。
複数のODBC データソースがある場合には、データソース毎に権限の設定が可能です。
「OK」を押して、ユーザー登録を完了します。
その後「Save Changes」で設定を保存します。
-
SQL Gateway の「Service」タブで「Start」ボタンを押して、サービスを起動します。サービスの左側の〇が緑色になれば、サービスは起動中です。
SQL Server でBigCommerce リンクサーバーを設定
SQL Gateway 側でサービスの設定が終わったら、SQL Server 側でBigCommerce サービスをリンクサーバーとして使う設定をしましょう。
-
SQL Server Management Studio (SSMS) を開きます。
オブジェクトエクスプローラーの「サーバーオブジェクト」で「リンクサーバー」を右クリックして、「新しいリンクサーバー」をクリックします。
-
新しいリンクサーバーの設定画面の「全般」で、以下を入力します。
サーバー種類:その他データソース
プロバイダー:SQL Server Native _Client 11.0
データソース:この例の場合、localhost, 1433 を入力
カタログ:ODBC DSN 名を入力
-
また、「セキュリティ」では、「このセキュリティコンテキスト」を選択して、リモートログインにSQL Gateway にユーザー設定したUser 名とPassword を入力します。
これで、リンクサーバーの設定は終わりなので、「OK」を押して設定を保存します。
SSMS でデータを見てみる
SSMS のオブジェクトエクスプローラーのリンクサーバー下にBigCommerce のリンクサーバーが作成され、「テーブル」下にBigCommerce のデータがアプリ単位でテーブルが生成されます。
新しいクエリを選択し、BigCommerce データを取得してみます。
SELECT * from リンクサーバー名.CData BigCommerce Source Sys(ODBC DSN 名).BigCommerce.テーブル名
このように、API のリクエストではなく通常のSQL 構文でデータを扱うことが可能になっています
Visual Studio からBigCommerce リンクサーバーを使う
Visual Studio のサーバーエクスプローラーの「データ接続」を右クリックし、「接続の追加」をクリックして、データソースの選択画面を開きます。
データソースの選択画面でデータソースを「Microsoft SQL Server 」に選択して、「続行」を押します。
「接続の追加」画面で、以下を入力します。
サーバー名:SQL Server のサーバー名
認証:任意の認証方式
データベース名の選択または入力:※master など
※リンクサーバーを直接データベース名として入力することはできないようです。なので上位のデータベース名で設定しておきます。
「テスト接続」をして大丈夫であれば、「OK」を押して設定を完了させます。
「新しいクエリ」で、SQL でSELECT 文を書いてデータを取得してみます。
SELECT * from リンクサーバー名.CData BigCommerce Source Sys(ODBC DSN 名).BigCommerce.テーブル名
このように、通常のSQL Server のリンクサーバーと同じようにVisual Studio 内BigCommerce データを扱うことが可能になります。
他のIDE でもSQL Server にアクセスする方法でBigCommerce データにSQL でアクセスが可能になります。
複数データソースのJOIN などを行う場合には大変便利です。
おわりに
このようにCData ODBC ドライバと併用することで、270を超えるSaaS、NoSQL データをSQL Server に連携できます。30日の無償評価版が利用できますので、ぜひ自社で使っているクラウドサービスやNoSQL と合わせて活用してみてください。