各製品の資料を入手。
詳細はこちら →スマレジの商品データと取引データを BigQuery に日次で連携
こんにちは、エンジニアの宮本です。
スマレジのデータを CData Sync を使って様々なデータベースへの連携が可能になりました。そのため、スマレジにある取引データなどをデータベースに日々連携することができます。
連携先はローカルのデータベースでも、クラウド上のデータベースでもOKです。対応データベースは BigQuery、Redshift などのクラウドデータウェアハウスをはじめ、SQLServer、Oracle、MySQLなど数多くの連携先を設定することができます。
今回は BigQuery への連携にフォーカスし、スマレジ→ BigQuery の連携を CData Sync で行う方法をご紹介します。
構成
スマレジ から BigQuery への連携の間に CData Sync が入ります。スマレジのAPIから必要なデータを取得し、BigQuery の対象のデータセットへテーブルに登録する流れになります。
用意するものは以下の通り。
- CDataSync : https://www.cdata.com/jp/sync/
- スマレジ のアカウント
- BigQuery のデータセット(どのデータセットにテーブルを作成するのか、事前に用意しておく必要があります)
CData Sync のインストールの接続設定
まずは CData Sync を使うため、インストールを行います。インストール方法は以下の記事をご参考ください。
https://www.cdata.com/jp/blog/2019-12-02-160226
スマレジ コネクタのインストール
CData Sync ではデフォルトでスマレジのコネクタは含まれていません。ユーザ側でスマレジのコネクタをダウンロードする必要があります。ダウンロード方法は赤枠の「Add More」をクリックしていきます。
検索窓に「smaregi」と入力します。
※以下のキャプチャのように Sansan のアイコンが青枠に表示されない場合は、CDataサポートへご連絡ください。直接コネクタをお渡しいたします。
詳しいコネクタのインストール方法は以下の記事をご参考ください。
https://www.cdata.com/jp/blog/2019-02-06-173640
スマレジコネクタの接続設定
赤枠のアイコンをクリックします。(今後アイコンがスマレジ用のイメージに変更される予定です)
スマレジ の接続設定は以下の通りです。
- 名前:任意の接続名
- Access Token:スマレジから取得したもの
- Contract Id:アカウントの契約ID
取得方法は以下の別記事に記載しています。
https://www.cdata.com/jp/blog/2020-01-08-113018
入力後、「接続のテスト」を実行し、接続成功のメッセージが表示されましたら、右上の「変更を保存」をクリックし接続情報を保存します。
BigQuery コネクタの接続設定
設定方法については、別記事の「同期先DBの接続設定」の部分を参照ください。
https://www.cdata.com/jp/blog/2019-07-30-121915
ジョブの作成
赤枠の「ジョブ」タブ→「ジョブを追加」で新規ジョブを作成することができます。
ジョブ名は任意ですが、ソースと同期先にそれぞれ先ほど作成した Smaregi とBigQuery を選択し、「作成」をクリックします。
商品データのクエリを設定
作成ボタンクリック後に以下の画面が表示されますので、「テーブルを追加」をクリックします。
スマレジのエンドポイントがテーブル名として表示されますので、レプリケートしたいテーブルを選択していきます。今回は 商品テーブルの Products にチェックを入れ、右下の「選択したテーブルを追加」をクリックします。
クリック後、自動的にクエリがセットされます。
以下の”REPLICATE [Products]” は、Products テーブルの全レコードを Products という名前のテーブルで登録するという内容になります。
取引データのクエリを設定
商品データと同じように「テーブルを追加」から設定します。取引データのテーブル名は TransactionHeads です。また、取引明細データとして TransactionDetails がありますのでこちらも設定します。
これで、商品データ、取引データ、取引明細データを連携するジョブの設定が完了です。
※ちなみに直接クエリを入力したい場合は、「カスタムクエリを追加」ボタンをクリックか、表示されているクエリを直接クリックするかで修正することができます。
ジョブの実行
作成したクエリにチェックを入れ、「実行」ボタンをクリックします。
ジョブが完了すると、更新時間とステータスが表示されます。
では BigQuery に Products、TransactionHeads 、TransactionDetails テーブルが作成されているか確認してみましょう。
左側のテーブル一覧に 3テーブル が作成されていることが確認できました。
次にクエリエディタに SELECT 文を入力しレコードの確認をしてみます。
商品データ
取引データ
取引明細データ
それぞれのテーブルにレコードが連携されていることを確認できました。
ジョブスケジューリング
続けて日次でジョブが実行されるよう設定していきます。
スケジュールタブを選択後、「スケジューラーを有効にする」にチェックを入れます。今回は日時なので RunJob 項目には Daily 、時間をAM3:00 に設定してみました。設定後は右上の「変更を保存」をクリックすることでスケジュール登録が行われます。
では、確認のため次の実行時間を確認してみます。
TOP画面に戻り、今回作成したジョブをみると、赤枠のように次回の実行時間が表示されていることがわかります。
これで、毎日 AM3:00 に商品データ、取引データ、取引明細データが取り込まれるジョブが作成されました。
最後に
BigQuery に連携することで、BigQuery ML で機械学習させたり、データポータルでダッシュボードを作成したり、スマレジのデータを更に活用することができます。
また、更新日付を持ったテーブルに限りますが差分更新が可能なので、ジョブを再実行するとスマレジ側で変更があったレコードのみを連携することができます。
差分更新を行う場合は、SQLServer や MySQL など RDB をレプリケート先に設定することで変更分のみの連携が可能となりますので、是非お試しください。