CData Software Blog

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

ELTツールのCDataSyncでHubSpotからMySQLへのデータ同期をやってみよう

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

今回はCData Sync というEL・ELTツールを使って、HubSpot からMySQL に同期する手順をご紹介いたします。

ちなみにこの記事を行っていただければ、CData Sync のメインどころの操作、つまりはDB への同期はある程度マスターできると思います。

ハンズオンの内容

本ハンズオンでは以下の内容を行います。

  • データソース・同期先の接続設定
  • 同期先の接続設定
  • HubSpot → MySQL への同期
  • その他機能の紹介

CData Sync製品のインストール&アクティベート

f:id:sennanvolar44:20191124205824p:plain 最初にCData Sync をダウンロードします。以下のダウンロードページをクリックしてください。
https://www.cdata.com/jp/sync/

画面表示後、右上にあるダウンロードボタンをクリックします。
f:id:sennanvolar44:20191126101444p:plain

今回はWindowsマシンのため、左側のWindowsマーク配下の「DOWNLOAD NOW」をクリックします。 f:id:sennanvolar44:20201207234511p:plain

Eメールを入力し、ダウンロードボタンをクリックします。 f:id:sennanvolar44:20191202154126p:plain

そうしますと、 CDataSync.exe がダウンロードフォルダに入ってきますので、exeファイルをダブルクリックしてインストールを開始します。
f:id:sennanvolar44:20201208064506p:plain

いくつかの設定をデフォルト設定のまま数回次へと進んでいくと、CData Syncのログインパスワード設定画面が表示されます。
今回は「Handson11」で全員統一しましょう。 f:id:sennanvolar44:20201208064639p:plain

またデフォルト設定のまま進んでいくことでインストールが完了します。
チェックボックスにチェックをつけたまま完了ボタンをクリックして、CData Syncを起動しましょう。 f:id:sennanvolar44:20201208064957p:plain

起動するとWindowsのステータスバーにCData Sync のアイコンがこのように表示されます。
f:id:sennanvolar44:20191124215829p:plain

無償評価版ライセンスのアクティベート

CData Sync にログイン後、ヘッダーの情報タブをクリックし、「評価版をアクティベート」をクリックします。
f:id:sennanvolar44:20191124221252p:plain

名前・Eメール、ソフトウェア使用許諾契約書にチェックを入れ、「評価版をアクティベートする」をクリックします。 f:id:sennanvolar44:20191202154649p:plain

アクティベートが完了すると、赤枠のようにライセンスの種類、プロダクトキーに値がセットされます。なお、評価版は30日間までの利用となります。
f:id:sennanvolar44:20191124221855p:plain

HubSpot コネクタの追加

デフォルトではHubSpot コネクタは含まれていませんが、簡単にCData Sync 上で追加することができます。
接続設定 → データソース → AddMore をクリックします。
f:id:sennanvolar44:20201208215529p:plain

HubSpot と入力すると、HubSpot のアイコンが表示されますのでクリックします。
f:id:sennanvolar44:20201208215715p:plain

ダウンロード&インストールをクリックします。
f:id:sennanvolar44:20201208215826p:plain

OKボタンをクリックしてCData Sync を再起動させます。
f:id:sennanvolar44:20201208220220p:plain

これでHubSpot コネクタが追加されたので、先ほどのコネクタ一覧の画面に移動して、HubSpot アイコンが表示されていることを確認してください。
f:id:sennanvolar44:20201208220418p:plain

コネクタを直接アップロードする場合

コネクタの最新ビルドなどを使って実行するようなときは、CDataサポートに連絡いただければコネクタが入ったzipファイルをお渡しいたします。

この場合のコネクタ追加方法は、接続設定画面で+AddMore からHubSpot を検索後、今度は右にある下矢印 → 参照をクリックし、 f:id:sennanvolar44:20201208231623p:plain

setup.zip を選択後、アップロードボタンをクリックします。
f:id:sennanvolar44:20201208231557p:plain

これでコネクタ追加が完了です。

HubSpot への接続設定

次にHubSpot の接続設定を行うので、HubSpot アイコンをクリックします。 f:id:sennanvolar44:20201208220418p:plain

接続設定はOAuthでの認証を行いますので、基本的に接続先名と利用するHubSpot API バージョンの指定だけしていただければ大丈夫です。
コネクション名を設定したら、今回はSchema にHubSpot V3 を選択します。入力&選択が完了したら接続ボタンをクリックします。
f:id:sennanvolar44:20201208221159p:plain

HubSpot のログイン画面が表示されますので、登録しているHubSpot アカウントでログインします。
f:id:sennanvolar44:20201208221833p:plain

対象アカウントを選択します。
f:id:sennanvolar44:20201208222157p:plain

CData Sync からHubSpot へのアクセス許可を行います。
f:id:sennanvolar44:20201208222255p:plain

画面下部のConnect app ボタンをクリックします。
f:id:sennanvolar44:20201208222343p:plain

これで画面に緑帯が表示されれば接続成功ですので、「変更を保存」ボタンで接続情報を保存します。
f:id:sennanvolar44:20201208222502p:plain

MySQL への接続設定

今回は同期先DB にMySQL を利用していきます。HubSpot のときと同じように接続設定画面からMySQL を選択します。
※同期先タブをクリックして表示されるMySQL アイコンをクリックします。
f:id:sennanvolar44:20201208223530p:plain

MySQL の接続情報を入力し、接続テストを行います。問題がなければ保存します。
f:id:sennanvolar44:20201208223941p:plain

HubSpot のデータをMySQL に同期

f:id:sennanvolar44:20201208225444p:plain
それではHubSpot からMySQL への同期を行っていきましょう。

ジョブの作成

ヘッダーの「ジョブ」を選択後、右側にあります「ジョブを追加」をクリックします。
f:id:sennanvolar44:20191125103002p:plain

以下の画面が表示されますので、ジョブ名、ソース、同期先を入力したら「作成」をクリックします。

ジョブ名:HubSpotToMySQL
ソース:HubSpot を選択
同期先:MySQL を選択
f:id:sennanvolar44:20201208230015p:plain

次に、HubSpot 内のテーブル(オブジェクト)を選択するために「+テーブルを追加」をクリックします。

f:id:sennanvolar44:20200922214329p:plain

HubSpot 内のテーブル(オブジェクト)リストが表示されるので、Contacts にチェックを入れてテーブル追加ボタンをクリックします。
f:id:sennanvolar44:20201208234724p:plain

そうすると、REPLICATE~ というクエリが自動的にセットされます。
このREPLICATE構文はSELECT * [Contacts] を内部で行います。 f:id:sennanvolar44:20201208234945p:plain

もし、他に条件や取得項目を選択したい場合は、直接クエリをいじるか、クエリをクリックして選択式で条件を設定するかを行うことができます。
以下は条件を設定した際のキャプチャです。自動的に画面下部のクエリに反映されるようになっています。
f:id:sennanvolar44:20201209000748p:plain

ジョブの実行

それでは作成したジョブを実行してみます。ジョブのチェックボックスをオンにし、実行ボタンをクリックします。しばらくたつと、上部に緑のメッセージボックスで「ジョブ[ジョブ名] は正常に完了しました。Records affected: xx ・・・」といったメッセージが表示されれば成功です。
f:id:sennanvolar44:20201209001207p:plain

では、MySQL を確認してHubSpot のデータがレプリケートされたか確認してみましょう。

MySQL Workbench を使って接続してみると、ちゃんとHubSpot のContacts テーブルが同期されていました。
f:id:sennanvolar44:20201209001444p:plain

差分更新モード

HubSpot は差分更新に対応しているデータソースですので、1度同期ジョブを実行したら、次回以降は差分だけが連携されるようになります。
(もちろん、毎回全件同期も可能ですが)

以下の2つのオプションにチェックを入れないことで差分更新モードがONになります。
f:id:sennanvolar44:20201209002036p:plain

では、この状態でもう一度ジョブを実行してみます。

HubSpot 側で変更がなかったので0件の同期という結果になりました。
f:id:sennanvolar44:20201209002153p:plain

では、1件レコードをHubSpot で登録してみましょう。

f:id:sennanvolar44:20201209002517p:plain

この状態でCData Sync のジョブを実行すると・・・

前回からの変更分の1件が同期されました。
f:id:sennanvolar44:20201209002650p:plain

MySQL を参照すると、こちらも1件追加され合計4件になっていました。
f:id:sennanvolar44:20201209002807p:plain

基本的な流れは以上になります。

スケジューリング実行

ジョブ画面のスケジュールタブをクリックすると、以下の画面が表示されるので、チェックを入れて実行タイミングを設定することができます。
f:id:sennanvolar44:20201209003055p:plain

期間指定でジョブを実行

データソースと同期先の兼ね合いで、期間指定で同期件数を抑えながらジョブを実行したいケースがある場合もあります。
例えばジョブ実行後に同期先DBでデータの加工・変換を行うクエリが実行されるような場合、普通のRDBだと何百万件を一気に変換処理を行うのはなかなか難しいかもしれません。

それでは確認していきましょう。 まずは以下のようにテーブル名を変更します。(同じテーブル名だと既に先ほどジョブを実行済みのため)
f:id:sennanvolar44:20201209093753p:plain

ではHubSpotのデータを確認するためにプレビュータブでExecute ボタンをクリックし、データを確認してみます。
今の状態は上3件は更新日付が2020-12-08、下の1件が2020-12-09 となっていることがわかります。
f:id:sennanvolar44:20201209093902p:plain

この状態で更新日付が「2020-12-08 23:50:00」までのレコードを同期させたい場合は以下のオプションを設定します。
追加オプションに ReplicateEndDate='2020-12-08 23:50:00' と入力します。
f:id:sennanvolar44:20201209113637p:plain

これでジョブを実行すると、該当する3件のみのレプリケートとなります。
f:id:sennanvolar44:20201209113924p:plain

では先ほど設定した追加オプションを削除してから再度実行してみましょう。
そうすると、2020-12-08 23:50:00以降~現在までで変更(追加・更新)があったレコードのみが対象となるので、残りの1件が連携されます。
f:id:sennanvolar44:20201209114053p:plain

おわりに

いかがでしたでしょうか。実際にCData SyncをインストールしてHubSpot → MySQL の定期ジョブを作成し実行してみました。
CData Sync ではHubSpot 以外のデータソース、MySQL以外の同期先にも多数対応しています。

以下はCData Sync を使用した他の連携ケースの記事になりますので、よろしければご参照ください。

www.cdatablog.jp