【ノーコード】Google Cloud SQLにHarvestのデータを連携・統合する方法

宮本航太
宮本航太
プロダクトスペシャリスト
非エンジニアでも3ステップでCloud SQL にHarvest のデータを統合し、データ分析基盤の構築する方法を紹介。ノーコードETL / ELT ツールCData Sync を使ってノンプログラミングでデータ連携を自動化。CDCにも対応。



Cloud SQL はGoogle Cloud が提供するフルマネージドのRDB サービスです。CData Sync なら、Cloud SQL インスタンスにリアルタイムHarvest のデータを反復同期できます。企業のあらゆるデータを一か所に統合して管理することが可能になり、アーカイブ、レポーティング、アナリティクス、機械学習、AI などでデータを活用できます。

1.データソースとしてHarvest の接続を設定

まずはじめに、CData Sync のブラウザ管理コンソールにログインします。CData Sync のインストールをまだ行っていない方は本記事の製品リンクからCData Sync をクリックして、30日の無償トライアルとしてCData Sync をインストールしてください。インストール後にCData Sync が起動して、ブラウザ設定画面が開きます。

それでは、データソース側にHarvest を設定していきましょう。左の[接続]タブをクリックします。

  1. [+接続の追加]ボタンをクリックします。 コネクションの追加。
  2. [データソース]タブを選択して、リスト表示されるデータソースを選ぶか、検索バーにデータソース名を入力して、Harvest を見つけます。
  3. Harvest の右側の[→]をクリックして、Harvest アカウントへの接続画面を開きます。もし、Harvest のコネクタがデフォルトでCData Sync にインストールされていない場合には、ダウンロードアイコン(コネクタのアップロードアイコン)をクリックし、[ダウンロード]をクリックすると、CData Sync にコネクタがインストールされます。 データソースの追加。
  4. 接続プロパティにHarvest に接続するアカウント情報を入力をします。

    Harvest API プロファイル設定

    Harvest に認証するには、トークン認証またはOAuth 標準のいずれかを使用できます。自分のデータに接続するにはBasic 認証を使用します。他のユーザーが自分のデータに接続できるようにするにはOAuth を使用します。

    トークン認証の使用

    トークン認証を使用するには、ProfileSettings 接続プロパティでAPIKey にHarvest パーソナルアクセストークンを設定します。APIKey に加えて、ProfileSettings でAccountId を設定して接続します。

    OAuth 認証の使用

    まず、Harvest でOAuth2 アプリケーションを登録します。アプリケーションはHarvest ID の「Developers」セクションから作成できます。

    以下の接続プロパティを設定すると、接続できるようになります。

    • ProfileSettings:ProfileSettings でAccountId とAPIKey プロパティを設定します(例:"AccountId=my_account_id;APIKey=my_personal_key")。
    • OAuthClientId:アプリ設定で指定したclient ID に設定します。
    • OAuthClientSecret:アプリ設定で指定したclient secret に設定します。
    • CallbackURL:アプリ設定で指定したRedirect URI に設定します。
    データソースの追加。
  5. [作成およびテスト]をクリックして、正しくHarvest に接続できているかをテストして保存します。これでレプリケーションのデータソースとしてHarvest への接続が設定されました。

Cloud SQL をレプリケーションの同期先に設定

それでは、CData Sync を使ってCloud SQL にHarvest のデータをレプリケーションするための設定を行っていきましょう。レプリケーションの同期先を追加するには、[接続]タブを開きます。次に、使用するCloud SQL サービス(MySQL、PostgreSQL、またはSQL Server)に応じて、適切な保存先を選択します。

MySQL

  1. [接続を追加]をクリックします。
  2. MySQL を同期先として選択します。 MySQL を同期先に設定
  3. 必要な接続プロパティを入力します。MySQL に接続するには、以下を設定します。
    • Server:接続するサーバーのIP アドレス、もしくはドメイン名。
    • Port:サーバーが稼働するポート。
    • User:データベースへの読み取り / 書き込みのアクセス権を持つユーザーのユーザー名。
    • Password:データベースへの読み取り / 書き込みのアクセス権を持つユーザーのパスワード。
    • Database:データベース名。
  4. [作成およびテスト]をクリックして、正しく接続できているかをテストします。 同期先接続の設定
  5. [変更を保存]をクリックします。

PostgreSQL

  1. [接続を追加]をクリックします。
  2. PostgreSQL を同期先として選択します。 PostgreSQL を同期先に設定
  3. 必要な接続プロパティを入力します。PostgreSQL に接続するには、次の接続プロパティを設定します。
    • Server:PostgreSQL データベースをホストしているサーバーのアドレス。
    • Port:PostgreSQL データベースをホスティングしているサーバーに接続する際のポート。
    • User:PostgreSQL データベースへの認証のためのユーザーID。
    • Password:PostgreSQL データベースへの認証のためのパスワード。
    • Database:データベース名。
  4. [作成およびテスト]をクリックして、正しく接続できているかをテストします。 同期先接続の設定
  5. [変更を保存]をクリックします。

SQL Server

  1. [接続を追加]をクリックします。
  2. SQL Server を同期先として選択します。 SQL Server を同期先に設定
  3. 必要な接続プロパティを入力します。SQL Server に接続するには、以下を設定します。
    • Server:SQL Server を起動しているコンピューターのネットワークアドレス名。
    • User:forms 認証を使う場合に、SQL Server との認証に使われるユーザー名。
    • Password:forms 認証を使う場合に、SQL Server との認証に使われるパスワード。
    • Database:SQL Server データベース名。

    Java 版

    Java 版では、Microsoft SQL Server JDBC Driver が必要です。Microsoft ダウンロードセンターからダウンロードできます。JDBC ドライバーをJava Web サーバーのlib フォルダにコピーして接続します。

  4. [作成およびテスト]をクリックして、正しく接続できているかをテストします。 同期先接続の設定
  5. これで同期先としてCloud SQL を設定できました。CData Sync では、Cloud SQL のデータベース名を指定するだけで、同期するHarvest に併せたテーブルスキーマを自動的にCREATE TABLE してくれます。同期データに合わせたテーブルを事前に作成するなどの面倒な手順は必要ありません。もちろん、既存テーブルにマッピングを行いデータ同期を行うことも可能です。

3.Harvest からCloud SQL へのレプリケーションジョブの作成

CData Sync では、レプリケーションをジョブ単位で設定します。ジョブは、Harvest からCloud SQL という単位で設定し、複数のテーブルを含むことができます。レプリケーションジョブ設定には、[ジョブ]タブに進み、[+ジョブを追加]ボタンをクリックします。 ジョブの一覧

[ジョブを追加]画面が開き、以下を入力します:

  1. 名前:ジョブの名前
  2. データソース:ドロップダウンリストから先に設定したHarvest を選択
  3. 同期先:先に設定したCloud SQL を選択
データソースの設定Salesforce の例)。

すべてのオブジェクトをレプリケーションする場合

Harvest のすべてのオブジェクト / テーブルをレプリケーションするには、[種類]セクションで[すべて同期]を選択して、[タスクを追加]ボタンで確定します。

作成したジョブ画面で、右上の[▷実行]ボタンをクリックするだけで、全Harvest テーブルのCloud SQL への同期を行うことができます。

オブジェクトを選択してレプリケーションする場合

Harvest から特定のオブジェクト / テーブルを選択してレプリケーションを行うことが可能です。[種類]セクションでは、[標準(個別設定)]を選んでください。

次に[ジョブ]画面で、[タスク]タブをクリックし、[タスクを追加]ボタンをクリックします。 ジョブへのタスク追加Salesforce の例)。

するとCData Sync で利用可能なオブジェクト / テーブルのリストが表示されるので、レプリケーションを行うオブジェクトにチェックを付けます(複数選択可)。[タスクを追加]ボタンで確定します。

タスク選択(Salesforce の例)。

作成したジョブ画面で、[▷実行]ボタンをクリックして(もしくは各タスク毎の実行ボタンを押して)、レプリケーションジョブを実行します。 作成したジョブの実行(Salesforce の例)。

このようにとても簡単にHarvest からCloud SQL への同期を行うことができました。

CData Sync の主要な機能を試してみる:スケジューリング・差分更新・ETL

ジョブのスケジュール起動設定

CData Sync では、同期ジョブを1日に1回や15分に1回などのスケジュール起動をすることができます。ジョブ画面の[概要]タブから[スケジュール]パネルを選び、[⚙設定]ボタンをクリックします。[間隔]と同期時間の[毎時何分]を設定し、[保存]を押して設定を完了します。これでCData Sync が同期ジョブをスケジュール実行してくれます。ユーザーはダッシュボードで同期ジョブの状態をチェックするだけです。 スケジュール実行設定。

差分更新

CData Sync では、主要なデータソースでは、差分更新が可能です。差分更新では、最後のジョブ実行時からデータソース側でデータの追加・変更があったデータだけを同期するので、レプリケーションのクエリ・通信のコストを圧倒的に抑えることが可能です。

差分更新を有効化するには、ジョブの[概要]タブから「差分更新」パネルを選び、[⚙設定]ボタンをクリックします。[開始日]と[レプリケーション間隔]を設定して、[保存]します。

SQL での取得データのカスタマイズ

CData Sync は、デフォルトではHarvest のオブジェクト / テーブルをそのままCloud SQL に複製しますが、ここにSQL、またはdbt 連携でのETL 処理を組み込むことができます。テーブルカラムが多すぎる場合や、データ管理の観点から一部のカラムだけをレプリケーションしたり、さらにデータの絞り込み(フィルタリング)をしたデータだけをレプリケーションすることが可能です。

ジョブの[概要]タブ、[タスク]タブへと進みます。選択されたタスク(テーブル)の[▶]の左側のメニューをクリックし、[編集]を選びます。タスクの編集画面が開きます。

UI からカラムを選択する場合には、[カラム]タブから[マッピング編集]をクリックします。レプリケーションで使用しないカラムからチェックを外します。

SQL を記述して、フィルタリングなどのカスタマイズを行うには、[クエリ]タブをクリックし、REPLICATE [テーブル名]の後に標準SQL でフィルタリングを行います。 レプリケーションのカスタマイズ設定。

Harvest からCloud SQL へのデータ同期には、ぜひCData Sync をご利用ください

このようにノーコードで簡単にHarvest のデータをCloud SQL にレプリケーションできます。データ分析、AI やノーコードツールからのデータ利用などさまざまな用途でCData Sync をご利用いただけます。30日の無償トライアルで、シンプルでパワフルなデータパイプラインを体感してください。

日本のユーザー向けにCData Sync は、UI の日本語化、ドキュメントの日本語化、日本語でのテクニカルサポートを提供しています。

CData Sync の 導入事例を併せてご覧ください。

はじめる準備はできましたか?

詳細はこちら、または無料トライアルにお申し込みください:

CData Sync お問い合わせ