CData Software Blog

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

Zoho Books 商品マスタデータを Google BigQuery に同期する:CDataSync

https://cdatajbuilds.s3-ap-northeast-1.amazonaws.com/CDataBlog/zohobookssync.gif

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

今日は Zoho が提供する財務・経理関連サービスである Zoho Books のデータをGoogle BigQuery にコピー・同期する方法を紹介します。

Zoho Books とは?

営業支援・顧客管理・人事などに関するサービスを提供するZohoが財務・経理関連に特化して提供しているクラウドサービスです。

https://www.zoho.com/books/

f:id:sugimomoto:20200302115429p:plain

www.youtube.com

Zoho では各サービスでフレキシブルかつ高機能なAPIを提供していますが、このZoho Books でも同様に数多くのリソースにアクセス可能なAPIが公開されています。

https://www.zoho.com/books/api/v3/

本記事で実現する内容

本記事ですすめるシナリオはZoho Books の商品マスタをBigQueryに移行する仕組みを構成することだけですが、少し背景をおさえておきたいと思います。

以下の記事でも紹介していますが、現在私達の周りには数多くの SaaS が溢れ、10数年前のようなRDBだけ連携していればいいという時代は過ぎ去っています。

https://www.cdatablog.jp/entry/2019/12/10/231629

f:id:sugimomoto:20200117110033p:plain

アメリカでは一つの企業で平均10~20程度の SaaS を使っているというレポートも存在し、多種多様なアプリケーションを活用しながら企業のビジネスプロセスが動いていることがわかります。

f:id:sugimomoto:20200117110040p:plain

そのような状況では、たとえ「各商品マスタを切り口として分析したい」といった要望があったとしても、ディメンション(BIによる分析でよく用いられるようなスタースキーマ文脈における)が各種アプリケーション・SaaSに分散され、「受注データはこのサービスにあるけれど、ディメンションとして使いたい商品マスタは違うサービスに存在する」ということが頻発してしまいます。

https://docs.microsoft.com/ja-jp/power-bi/guidance/star-schema

f:id:sugimomoto:20200117110046p:plain

そのようなビジネス環境で今求められているのが、ELTの考え方です。多種多様なデータソースから、一度DWHにデータをロードし、DWHで分析や変換処理を回していきます。

f:id:sugimomoto:20200117110125p:plain

引用元:https://docs.microsoft.com/ja-jp/power-bi/guidance/star-schema

CDataSyncでは、そのような分析基盤向けデータ統合の自動化をノンコーディングで実現することができるようになっています。

f:id:sugimomoto:20200117110132p:plain

そういった背景を踏まえ、本記事ではデータ分析基盤・DWHとして現在多く使われている Google BigQuery に Zoho Books のデータ連携する方法を紹介します。

f:id:sugimomoto:20200302115502p:plain

対象とするデータは以下のような商品マスタです。

f:id:sugimomoto:20200302115514p:plain

なお、本記事では連携先をBigQueryとしましたが、CDataSyncでは以下のような多様な同期先をカバーしています。

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

f:id:sugimomoto:20200302115522p:plain

[同期先データベースラインアップ]

SQLite,MySQL,MariaDB,PostgreSQL,Apache Derby,SQL Server,Azure SQL,MS Access,Snowflake,Amazon Redshift,Amazon S3,Azure Blob Storage,Google BigQuery,DB2,Oracle,Couchbase,Cassandra,MongoDB,Apache Hadoop,Apache Kafka,SAP HANA,Azure Data Lakes,Azure Event Hubs,CSV/TSV

実施手順

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

必要なもの

  • Google BigQueryが利用可能な GCPアカウント
  • Zoho Books アカウント(こちらでトライアルが取得できます。)
  • CData Sync(本記事で解説します)

Google BigQuery の準備

まずは、データの格納先となる Google BigQueryのプロジェクトとデータセットを構成しておきます。

なお、今回はあらかじめ専用のアカウントを作って対応しています。

手順は特に難しくありません。GCPの管理コンソールへ移動し、新しいプロジェクトを作成

f:id:sugimomoto:20200117110231p:plain

BigQuery に移動し、プロジェクト配下にデータセットを作っておきます。ここに連携結果がテーブルとして格納されます。

f:id:sugimomoto:20200117110236p:plain

以上で BigQuery 側の準備は完了です。

CDataSyncのインストール

それでは、取得した情報を元にCDataSyncの設定を行っていきましょう。

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

Zoho Books の接続設定

次にZoho Books からデータを取得するための接続設定を行います。

Zoho Books では事前に以下のURLにアクセスして接続用のOAuthアプリを構成しておきましょう。

https://accounts.zoho.com/developerconsole

f:id:sugimomoto:20200302115552p:plain

「クライアントIDの追加」をクリックし、以下のような情報で登録します。

f:id:sugimomoto:20200302115558p:plain

作成が完了すると、以下のようにクライアントIDとクライアントシークレットが入手できます。(以下はサンプルです。)

  • クライアントID: 1000.DB2EBGSBV8XY28SIYOEQPCMJOP4WWH
  • Client Secret=IAM.DEVELOPERCONSOLE.SUCCESS.CREATE.CLIENT.CLIENT.SECRET:Client Secret: e8227df1ff14f659f9c43068ebd0c5be4e14308a16(なお、間違いやすいのですが、ClientSecretの値は「e8227df1ff14f659f9c43068ebd0c5be4e14308a16」の部分です。)

f:id:sugimomoto:20200302115611p:plain

アプリ登録が完了したら、CDataSyncに戻り、接続構成を行います。「接続」タブから「Zoho Books」を選択します。一覧に存在しない場合は「+Add More」から追加しましょう。

f:id:sugimomoto:20200302115639p:plain

先程取得したClientIdとClientSecretを入力し「接続」をクリック

f:id:sugimomoto:20200302115646p:plain

すると、以下のようなOAuthアプリの承認画面が表示されるので、内容を確認し承認します。

f:id:sugimomoto:20200302115651p:plain

承認後、CDataSyncの画面に戻り、Successメッセージが表示されたら、「変更を保存」をクリックして、設定完了です。

f:id:sugimomoto:20200302115656p:plain

BigQueryへの同期先設定

続いて、同期先となるBigQueryへの接続を構成します。

「接続」→「同期先」から「Google BigQuery」を選択し

f:id:sugimomoto:20200117110404p:plain

あらかじめ作成しておいた、「ProjectId」と「Dataset Id」を入力し、「接続」をクリックします。

クリックすると、OAuthの認証プロセスが開始されますので、対象アカウントでログインし、アクセス許可を承認してください。承認後、設定を保存すれば準備完了です。

f:id:sugimomoto:20200117110410p:plain

ジョブの作成

それでは実際にジョブを作成し、データをBigQueryに連携してみましょう。

ジョブのタブから「ジョブを作成」をクリックし

f:id:sugimomoto:20200117110415p:plain

事前に構成した「Zoho Books」と「BigQuery」を、ソースと同期先としてそれぞれ構成します。

f:id:sugimomoto:20200302115704p:plain

次に連携するデータを決定するために、「テーブルを追加」をクリックし

f:id:sugimomoto:20200302115709p:plain

Items テーブルを選択します。

f:id:sugimomoto:20200302115713p:plain

最後にスケジュールタブから定期的に処理にするためにスケジューラーを設定します。

f:id:sugimomoto:20200302115722p:plain

後は設定を保存すれば、完了です。

テスト実行

テスト実行はテーブルタブから対象となるテーブルを選択し、「実行」ボタンをクリックすることで実施可能です。

f:id:sugimomoto:20200302115727p:plain

f:id:sugimomoto:20200302115731p:plain

正常に同期されると、以下のようにBigQuery上でデータが閲覧できるようになります。

f:id:sugimomoto:20200302115736p:plain

おわりに

もし設定などで不明な点があれば、無償のテクニカルサポートも提供しているので、お気軽にお問い合わせください。

https://www.cdata.com/jp/support/submit.aspx