CData SyncでZendeskのデータをDBに自動連携してみた

海じゃないシー
2019.10.02

こんちわ。DA事業本部@大阪オフィスの玉井です。

CData社のドライバを使うと、Salesforce等のサービスのデータを、あたかもRDBMSのように扱うことができます(SQLで問い合わせができる)。

そんな便利なドライバでお馴染みなCData社ですが、ドライバ以外の製品もあります。今回は、そのうちのひとつ「CData Sync」を使ってみました。

CData Syncとは

簡単にいうと、Salesforce等のSaaSのデータを、任意のDBに同期できるものとなっています。下記のサービスと同じカテゴリになると思います。

やってみた

準備

作業環境

  • Windows 10 Pro
  • Google Chrome 77.0.3865.90

CData Syncのインストール

CData社の公式サイトからインストーラーをダウンロードして実行します。基本的にはウィザードの言うままに従ってインストールします。

インストールが完了するとWEBブラウザが起動し、CData Syncのログイン画面が開きます。ブラウザが開いていますが、アクセス先はCData SyncをインストールしたローカルPCです(クラウドサービスではない)。

すると、メイン画面が起動します。まず、上部の「情報」タブでライセンスキーをアクティベーションすると、CData Syncが使用可能となります。

データソース

連携したいデータとして、今回はZendeskを使います。

連携先DB

Zendeskのデータを連携するDBとして、Amazon RDS (for PostgreSQL)を用意します。検証用なので、インスタンスタイプはdb.t2.microにしました。

連携したいデータソースの設定

まず、連携したいデータ元の設定を行います。

データソースを選ぶ

画面上部のメニュー「接続」から接続メニューを開き、下部の「接続の追加」部分の「データソース」タブを確認します。今回はZendeskのデータを連携したいので、Zendeskを選びます。…が、そもそもZendeskが見当たりません

この画面に無いものは、「And more」から検索してコネクタを追加することができます。「And more」を選択して、Zendeskを探します。

Zendeskが見つかるので、ZendeskのコネクタをCData Syncにインストールしましょう。

データソースの接続情報を設定する

改めて接続ページを見ると、Zendeskが追加されているので、選択します。すると、Zendeskの接続情報を入力する画面になるので、連携したいZendeskの情報を入力します。ちなみに、Userはユーザー名ではなく、メールアドレスを入力します。

テスト接続が成功すれば「変更を保存」で接続情報を保存します。

連携先DBを設定する

今度は、データソースを連携するDBを設定します。先程と同じ画面(「接続」)の「接続の追加」の部分から、「同期先」を選びます。データの同期先はPostgreSQLなので、そのままPostgreSQLを選びます。

データソースと同様、PostgreSQLの接続情報を設定する画面が出てくるので、素直に設定しましょう。SQLクライアントを使う時とかと同じですね。

連携ジョブを設定する

連携したいデータソースと連携先のDBを設定したら、今度はその2つを実際に連携するジョブを設定します。画面上部メニューの「ジョブ」を選びます。

まだ何も設定してないので、画面上も何も表示されません。では、新しいジョブを設定するため、右上の追加メニューを選びましょう。すると、ジョブ登録画面が表示されますので、ここで先程設定したデータソースと連携先DBを設定しましょう。

設定後は、ジョブの詳細設定ができる画面が表示されます。連携したいテーブル(データ)とか、定期的に実行させる設定とか、諸々選んでいきます(今回は全テーブル選択、後は初期設定でいきます)。

設定を終え、ジョブを保存すると、ジョブ設定画面に戻りますが、先程設定したジョブが追加されています。そのジョブの右側の再生ボタンみたいなアイコンを押すとジョブが走ります。

ジョブが完了すると、同じ画面上で結果がわかります。

連携されたデータを確認してみる

実際に連携されたDBを確認します。

テーブルはこんな感じ。Zendeskの各要素別にシンプルにテーブル分けされて入っていますね。

例えばViewテーブルだったらこんな感じで格納されていました。

データ内容によっては連携されなかったテーブルも

一部連携に失敗したテーブルがありました。そういう時は連携時のログを見ることが出来ます。ジョブ設定の「ログ」タブからログを落とすことができます。

ログを確認してみると、データ型とカラムサイズの兼ね合いで格納できなかったとか、そのようなエラーが発生していたことがわかります。こういう場合は、ジョブ設定のテーブルタブで、エラーが起こったテーブルの連携設定を変更する等して対処しましょう。

カスタムクエリも記述できます。

エラー内容を確認して、再度連携することで、ZendeskデータをDBに格納することができました。

おわりに

SaaSのデータをRDBMSに格納すると、非常にデータ分析が行いやすくなります。サービスのAPIの仕様を読み解いて、1からデータパイプラインを構築するのは、本来は時間をかけたくないところなので、こういった作業をサクっとできるツールは、これからもっとメジャーなものになってくると思います。