CData Software Blog

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

スマレジの商品データと取引データを BigQuery に日次で連携

こんにちは、エンジニアの宮本です。

スマレジのデータを CData Sync を使って様々なデータベースへの連携が可能になりました。そのため、スマレジにある取引データなどをデータベースに日々連携することができます。
連携先はローカルのデータベースでも、クラウド上のデータベースでもOKです。対応データベースは BigQuery、Redshift などのクラウドデータウェアハウスをはじめ、SQLServerOracleMySQLなど数多くの連携先を設定することができます。

今回は BigQuery への連携にフォーカスし、スマレジ→ BigQuery の連携を CData Sync で行う方法をご紹介します。


構成

f:id:sennanvolar44:20200109000023p:plain
スマレジ から BigQuery への連携の間に CData Sync が入ります。スマレジのAPIから必要なデータを取得し、BigQuery の対象のデータセットへテーブルに登録する流れになります。

用意するものは以下の通り。

CData Sync のインストールの接続設定

まずは CData Sync を使うため、インストールを行います。インストール方法は以下の記事をご参考ください。

www.cdatablog.jp

スマレジ コネクタのインストール

CData Sync ではデフォルトでスマレジのコネクタは含まれていません。ユーザ側でスマレジのコネクタをダウンロードする必要があります。ダウンロード方法は赤枠の「Add More」をクリックしていきます。
f:id:sennanvolar44:20191107162014p:plain

検索窓に「smaregi」と入力します。 ※以下のキャプチャのように Sansan のアイコンが青枠に表示されない場合は、CDataサポートへご連絡ください。直接コネクタをお渡しいたします。
f:id:sennanvolar44:20200108105409p:plain

詳しいコネクタのインストール方法は以下の記事をご参考ください。 www.cdatablog.jp

スマレジコネクタの接続設定

赤枠のアイコンをクリックします。(今後アイコンがスマレジ用のイメージに変更される予定です) f:id:sennanvolar44:20200108110715p:plain

スマレジ の接続設定は以下の通りです。

  • 名前:任意の接続名
  • Access Token:スマレジから取得したもの
  • Contract Id:アカウントの契約ID
    取得方法は以下の別記事に記載しています。
    www.cdatablog.jp

f:id:sennanvolar44:20200108112137p:plain 入力後、「接続のテスト」を実行し、接続成功のメッセージが表示されましたら、右上の「変更を保存」をクリックし接続情報を保存します。


BigQuery コネクタの接続設定

設定方法については、別記事の「同期先DBの接続設定」の部分を参照ください。 www.cdatablog.jp

ジョブの作成

赤枠の「ジョブ」タブ→「ジョブを追加」で新規ジョブを作成することができます。
f:id:sennanvolar44:20191109232639p:plain

ジョブ名は任意ですが、ソースと同期先にそれぞれ先ほど作成した Smaregi とBigQuery を選択し、「作成」をクリックします。
f:id:sennanvolar44:20200108114108p:plain

商品データのクエリを設定

作成ボタンクリック後に以下の画面が表示されますので、「テーブルを追加」をクリックします。
f:id:sennanvolar44:20200108114410p:plain

スマレジのエンドポイントがテーブル名として表示されますので、レプリケートしたいテーブルを選択していきます。今回は 商品テーブルの Products にチェックを入れ、右下の「選択したテーブルを追加」をクリックします。

f:id:sennanvolar44:20200108115219p:plain

クリック後、自動的にクエリがセットされます。
以下の”REPLICATE [Products]” は、Products テーブルの全レコードを Products という名前のテーブルで登録するという内容になります。 f:id:sennanvolar44:20200108115922p:plain

取引データのクエリを設定

商品データと同じように「テーブルを追加」から設定します。取引データのテーブル名は TransactionHeads です。また、取引明細データとして TransactionDetails がありますのでこちらも設定します。
f:id:sennanvolar44:20200110003142p:plain

これで、商品データ、取引データ、取引明細データを連携するジョブの設定が完了です。

※ちなみに直接クエリを入力したい場合は、「カスタムクエリを追加」ボタンをクリックか、表示されているクエリを直接クリックするかで修正することができます。

ジョブの実行

作成したクエリにチェックを入れ、「実行」ボタンをクリックします。 f:id:sennanvolar44:20200110003841p:plain

ジョブが完了すると、更新時間とステータスが表示されます。
f:id:sennanvolar44:20200110004051p:plain

では BigQuery に Products、TransactionHeads 、TransactionDetails テーブルが作成されているか確認してみましょう。

f:id:sennanvolar44:20200110004644p:plain
左側のテーブル一覧に 3テーブル が作成されていることが確認できました。
次にクエリエディタに SELECT 文を入力しレコードの確認をしてみます。

商品データ

f:id:sennanvolar44:20200110011757p:plain

取引データ

f:id:sennanvolar44:20200110012410p:plain

取引明細データ

f:id:sennanvolar44:20200110012518p:plain

それぞれのテーブルにレコードが連携されていることを確認できました。


ジョブスケジューリング

続けて日次でジョブが実行されるよう設定していきます。
スケジュールタブを選択後、「スケジューラーを有効にする」にチェックを入れます。今回は日時なので RunJob 項目には Daily 、時間をAM3:00 に設定してみました。設定後は右上の「変更を保存」をクリックすることでスケジュール登録が行われます。
f:id:sennanvolar44:20200108171833p:plain

では、確認のため次の実行時間を確認してみます。
TOP画面に戻り、今回作成したジョブをみると、赤枠のように次回の実行時間が表示されていることがわかります。
f:id:sennanvolar44:20200110013737p:plain
これで、毎日 AM3:00 に商品データ、取引データ、取引明細データが取り込まれるジョブが作成されました。


最後に

BigQuery に連携することで、BigQuery ML で機械学習させたり、データポータルでダッシュボードを作成したり、スマレジのデータを更に活用することができます。
また、更新日付を持ったテーブルに限りますが差分更新が可能なので、ジョブを再実行するとスマレジ側で変更があったレコードのみを連携することができます。 差分更新を行う場合は、SQLServerMySQL など RDB をレプリケート先に設定することで変更分のみの連携が可能となりますので、是非お試しください。