CData Software Blog

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

パイプライン管理 SaaS Pipedrive のデータをPostgreSQLにレプリケート:CDataSync & API Profile

:こんにちは。CData Software Japan リードエンジニアの杉本です。

今回はデータレプリケーション製品の CData Syncを使って、Pipedrive のデータを PostgreSQLレプリケーションする方法を紹介します。

Pipedrive とは?

Pipedriveは、セールス担当者がセールス担当者のために構築された、使いやすく、取引に集中しやすいUIを提供する CRM プラットフォームです。

https://www.pipedrive.com/ja

f:id:sugimomoto:20200611105849p:plain

Pipedrive では 各種APIを提供しており、今回はこのAPIを使用して、CData Sync 経由で PostgreSQL にデータをレプリケーションする方法を紹介します。

レプリケーションしたデータはAPIで取得するようなJSON形式ではなく、フラットなRDB・テーブル形式になるので、各種BIツールで分析がしやすくなります。

f:id:sugimomoto:20200611105857p:plain

手順

それでは手順を解説していきます。

必要なもの

今回の手順で必要になるものは以下のとおりです。Pipedriveアカウントと レプリケーション先のPostgreSQLは予め取得および環境を構築しておいてください。

Pipedrive へ接続するための API Token を入手

最初に Pipedrive へ API接続を行うための下準備をします。PiepdriveへのAPI 接続にはPipedriveから提供されている API Tokenが必要となるため、これを入手しておきましょう。

API Tokenは「設定」画面に移動し

f:id:sugimomoto:20200611105904p:plain

「設定」タブの「個人設定」→「API」の画面から取得できます。

f:id:sugimomoto:20200611105909p:plain

CDataSyncのインストール

続いて CDataSyncの設定を行っていきましょう。本記事では Windows ベースで解説を行いますが、LinuxなどのCross-Platformでも構成可能です。AWS EC2などへ構成を検討する場合は こちらの記事を参照してみてください。

CDataSyncはインストール型のソフトウェアなので、以下のURLからダウンロードして、任意のPCでセットアップを行います。

https://www.cdata.com/jp/sync/

f:id:sugimomoto:20200117110318p:plain

セットアップ後、CData Syncの画面がブラウザで立ち上がるので、セットアップ時に入力したパスワードとユーザー名「admin」を入力して、ログインします。

f:id:sugimomoto:20200117110325p:plain

ログイン後「情報」タブに移動し、「30日間の評価版をアクティベート」を行えば、CDataSyncの初期設定は完了です。

f:id:sugimomoto:20200117110332p:plain

Pipedrive 連携用コネクターの追加方法

Pipedrive への接続は現在 CData API Driverという製品の設定ファイル(API Profile)として提供されています。

https://www.cdata.com/jp/apidriver/

f:id:sugimomoto:20200611105915p:plain

これを CDataSync で利用するために以下の手順を実施します。

まず、API Driver for ADO.NETを入手してください。(CDataSync が Cross-Plalform の場合はJDBC版を入手します)

f:id:sugimomoto:20200611105924p:plain

インストーラーを取得後、ダイアログに従って、セットアップを進めます。

f:id:sugimomoto:20200611105930p:plain

セットアップ後、CDataSyncを再起動すると、以下のように接続先にAPIs というコネクタが追加されます。

f:id:sugimomoto:20200611105936p:plain

なお、JDBC版はセットアップ後に生成される以下の「cdata.jdbc.apis.jar」ファイルをDataSyncを構成したフォルダの「datasync/WEB-INF/lib」に配置します。

f:id:sugimomoto:20200611105942p:plain

次にこのAPIs コネクタで Pipedrive へ接続できるように、接続用プロファイルをダウンロードします。

f:id:sugimomoto:20200611105948p:plain

プロファイルは後ほどCDataSyncからパスを参照するので任意のフォルダに配置してください。

f:id:sugimomoto:20200611105955p:plain

Pipedrive への接続情報を構成

それではCDataSyncの設定を行っていきます。

まず、データソースとなる Pipedrive への接続情報を設定します。

「接続」→「データソース」から「APIs」を選択します。

f:id:sugimomoto:20200611110004p:plain

最初に「接続文字列」を選択し、「接続文字列」のテキストボックスへ事前に取得したプロファイルのパスと API Topken を以下のように指定します。

  • Profile=C:\APIProfiles\Pipedrive.apip;ProfileSettings='APIKey=65392a8ab921c80e54e215479c89f59b6cafc788;';

f:id:sugimomoto:20200611110010p:plain

接続テストをクリックして、接続に成功したらOKです。変更を保存しましょう。

PostgreSQL への接続情報の構成

次に、データを転送する先であるPostgreSQLの接続情報を構成します。

接続の画面から「同期先」タブを選択し「PostgreSQL」をクリックします。

f:id:sugimomoto:20200611110018p:plain

PostgreSQLへの接続情報をそれぞれ入力します。今回はLocalhostに構成したPostgreSQLに接続していますが、クラウド上のPostgreSQLにも接続できます。入力後、接続のテストをクリックして問題なければ、変更を保存します。

f:id:sugimomoto:20200611110025p:plain

ジョブの構成

最後にデータを受け渡すための処理単位であるジョブを構成します。

「ジョブ」のタブから「ジョブを追加」をクリックし

f:id:sugimomoto:20200611110030p:plain

予め作成したPipedriveの「ソース」とPostgreSQLの同期先を選択して「+作成」をクリックします。

f:id:sugimomoto:20200611110036p:plain

続いて、連携したい対象のデータ、テーブルを追加します。「+テーブルを追加」をクリックし

f:id:sugimomoto:20200611110042p:plain

表示されたPipedriveのテーブル一覧から任意のテーブルを選択して、追加します。

f:id:sugimomoto:20200611110047p:plain

以下のように追加されれば、このジョブで対象のテーブルがレプリケーションされるようになります。テーブル名をクリックすることで詳細な連携設定も可能です。

f:id:sugimomoto:20200611110051p:plain

また、レプリケーション設定ではプレビュー機能が使えるので、予めどのようなデータが取得できるのか確認しておくことができます。

f:id:sugimomoto:20200611110057p:plain

スケジューラーの設定と手動実行

あとはジョブをどの頻度で実行するのかをスケジューリングします。ジョブ設定の「スケジュール」タブから「スケジューラーを有効にする」をクリックして、頻度を構成します。

以下の設定の場合は1日1回、12:00にデータが更新されます。

f:id:sugimomoto:20200611110104p:plain

なお、今回は実際にしっかりとデータが同期されるかどうか確認するために手動で実行を行います。

ジョブ設定のテーブル一覧から対象のテーブルにチェックを入れて「実行」をクリックすると、手動でレプリケーションが行われます。

以下のようにステータスで結果が表示されればOKです。

f:id:sugimomoto:20200611110110p:plain

実際にPostgreSQLの画面のテーブルを参照してみると、以下のようにテーブルやカラムが自動的に生成されて、データが登録されていました。

f:id:sugimomoto:20200611110116p:plain

おわりに

今回は Pipedrive のレプリケーションを紹介しましたが、この手順でPipedrive以外のデータソースも同様にPostgreSQLに連携することが可能です。

是非各種Profileを入手して、試してみてください。

f:id:sugimomoto:20200611110124p:plain