こんにちは、CData Software Japan エンジニアの宮本です。
今回はCData Sync というEL・ELTツールを使って、HubSpot からMySQL に同期する手順をご紹介いたします。
ちなみにこの記事を行っていただければ、CData Sync のメインどころの操作、つまりはDB への同期はある程度マスターできると思います。
ハンズオンの内容
本ハンズオンでは以下の内容を行います。
- データソース・同期先の接続設定
- 同期先の接続設定
- HubSpot → MySQL への同期
- その他機能の紹介
CData Sync製品のインストール&アクティベート
最初にCData Sync をダウンロードします。以下のダウンロードページをクリックしてください。
https://www.cdata.com/jp/sync/
画面表示後、右上にあるダウンロードボタンをクリックします。
今回はWindowsマシンのため、左側のWindowsマーク配下の「DOWNLOAD NOW」をクリックします。
Eメールを入力し、ダウンロードボタンをクリックします。
そうしますと、 CDataSync.exe がダウンロードフォルダに入ってきますので、exeファイルをダブルクリックしてインストールを開始します。
いくつかの設定をデフォルト設定のまま数回次へと進んでいくと、CData Syncのログインパスワード設定画面が表示されます。
今回は「Handson11」で全員統一しましょう。
またデフォルト設定のまま進んでいくことでインストールが完了します。
チェックボックスにチェックをつけたまま完了ボタンをクリックして、CData Syncを起動しましょう。
起動するとWindowsのステータスバーにCData Sync のアイコンがこのように表示されます。
無償評価版ライセンスのアクティベート
CData Sync にログイン後、ヘッダーの情報タブをクリックし、「評価版をアクティベート」をクリックします。
名前・Eメール、ソフトウェア使用許諾契約書にチェックを入れ、「評価版をアクティベートする」をクリックします。
アクティベートが完了すると、赤枠のようにライセンスの種類、プロダクトキーに値がセットされます。なお、評価版は30日間までの利用となります。
HubSpot コネクタの追加
デフォルトではHubSpot コネクタは含まれていませんが、簡単にCData Sync 上で追加することができます。
接続設定 → データソース → AddMore をクリックします。
HubSpot と入力すると、HubSpot のアイコンが表示されますのでクリックします。
ダウンロード&インストールをクリックします。
OKボタンをクリックしてCData Sync を再起動させます。
これでHubSpot コネクタが追加されたので、先ほどのコネクタ一覧の画面に移動して、HubSpot アイコンが表示されていることを確認してください。
コネクタを直接アップロードする場合
コネクタの最新ビルドなどを使って実行するようなときは、CDataサポートに連絡いただければコネクタが入ったzipファイルをお渡しいたします。
この場合のコネクタ追加方法は、接続設定画面で+AddMore からHubSpot を検索後、今度は右にある下矢印 → 参照をクリックし、
setup.zip を選択後、アップロードボタンをクリックします。
これでコネクタ追加が完了です。
HubSpot への接続設定
次にHubSpot の接続設定を行うので、HubSpot アイコンをクリックします。
接続設定はOAuthでの認証を行いますので、基本的に接続先名と利用するHubSpot API バージョンの指定だけしていただければ大丈夫です。
コネクション名を設定したら、今回はSchema にHubSpot V3 を選択します。入力&選択が完了したら接続ボタンをクリックします。
HubSpot のログイン画面が表示されますので、登録しているHubSpot アカウントでログインします。
対象アカウントを選択します。
CData Sync からHubSpot へのアクセス許可を行います。
画面下部のConnect app ボタンをクリックします。
これで画面に緑帯が表示されれば接続成功ですので、「変更を保存」ボタンで接続情報を保存します。
MySQL への接続設定
今回は同期先DB にMySQL を利用していきます。HubSpot のときと同じように接続設定画面からMySQL を選択します。
※同期先タブをクリックして表示されるMySQL アイコンをクリックします。
MySQL の接続情報を入力し、接続テストを行います。問題がなければ保存します。
HubSpot のデータをMySQL に同期
それではHubSpot からMySQL への同期を行っていきましょう。
ジョブの作成
ヘッダーの「ジョブ」を選択後、右側にあります「ジョブを追加」をクリックします。
以下の画面が表示されますので、ジョブ名、ソース、同期先を入力したら「作成」をクリックします。
ジョブ名:HubSpotToMySQL
ソース:HubSpot を選択
同期先:MySQL を選択
次に、HubSpot 内のテーブル(オブジェクト)を選択するために「+テーブルを追加」をクリックします。
HubSpot 内のテーブル(オブジェクト)リストが表示されるので、Contacts にチェックを入れてテーブル追加ボタンをクリックします。
そうすると、REPLICATE~ というクエリが自動的にセットされます。
このREPLICATE構文はSELECT * [Contacts] を内部で行います。
もし、他に条件や取得項目を選択したい場合は、直接クエリをいじるか、クエリをクリックして選択式で条件を設定するかを行うことができます。
以下は条件を設定した際のキャプチャです。自動的に画面下部のクエリに反映されるようになっています。
ジョブの実行
それでは作成したジョブを実行してみます。ジョブのチェックボックスをオンにし、実行ボタンをクリックします。しばらくたつと、上部に緑のメッセージボックスで「ジョブ[ジョブ名] は正常に完了しました。Records affected: xx ・・・」といったメッセージが表示されれば成功です。
では、MySQL を確認してHubSpot のデータがレプリケートされたか確認してみましょう。
MySQL Workbench を使って接続してみると、ちゃんとHubSpot のContacts テーブルが同期されていました。
差分更新モード
HubSpot は差分更新に対応しているデータソースですので、1度同期ジョブを実行したら、次回以降は差分だけが連携されるようになります。
(もちろん、毎回全件同期も可能ですが)
以下の2つのオプションにチェックを入れないことで差分更新モードがONになります。
では、この状態でもう一度ジョブを実行してみます。
HubSpot 側で変更がなかったので0件の同期という結果になりました。
では、1件レコードをHubSpot で登録してみましょう。
この状態でCData Sync のジョブを実行すると・・・
前回からの変更分の1件が同期されました。
MySQL を参照すると、こちらも1件追加され合計4件になっていました。
基本的な流れは以上になります。
スケジューリング実行
ジョブ画面のスケジュールタブをクリックすると、以下の画面が表示されるので、チェックを入れて実行タイミングを設定することができます。
期間指定でジョブを実行
データソースと同期先の兼ね合いで、期間指定で同期件数を抑えながらジョブを実行したいケースがある場合もあります。
例えばジョブ実行後に同期先DBでデータの加工・変換を行うクエリが実行されるような場合、普通のRDBだと何百万件を一気に変換処理を行うのはなかなか難しいかもしれません。
それでは確認していきましょう。
まずは以下のようにテーブル名を変更します。(同じテーブル名だと既に先ほどジョブを実行済みのため)
ではHubSpotのデータを確認するためにプレビュータブでExecute ボタンをクリックし、データを確認してみます。
今の状態は上3件は更新日付が2020-12-08、下の1件が2020-12-09 となっていることがわかります。
この状態で更新日付が「2020-12-08 23:50:00」までのレコードを同期させたい場合は以下のオプションを設定します。
追加オプションに ReplicateEndDate='2020-12-08 23:50:00' と入力します。
これでジョブを実行すると、該当する3件のみのレプリケートとなります。
では先ほど設定した追加オプションを削除してから再度実行してみましょう。
そうすると、2020-12-08 23:50:00以降~現在までで変更(追加・更新)があったレコードのみが対象となるので、残りの1件が連携されます。
おわりに
いかがでしたでしょうか。実際にCData SyncをインストールしてHubSpot → MySQL の定期ジョブを作成し実行してみました。
CData Sync ではHubSpot 以外のデータソース、MySQL以外の同期先にも多数対応しています。
以下はCData Sync を使用した他の連携ケースの記事になりますので、よろしければご参照ください。