Python でZoho CRM のデータを変換・出力するETL 処理を作る方法

加藤龍彦
加藤龍彦
デジタルマーケティング
CData Python Connector とpetl モジュールを使って、Zoho CRM のデータを変換後にCSV ファイルに吐き出すETL 処理を実装します。

Pythonエコシステムには多くのモジュールがあり、システム構築を素早く効率的に行うことができます。本記事では、CData Python Connector for ZohoCRM とpetl フレームワークを使って、Zoho CRM のデータにPython から接続してデータを変換、CSV に出力するETL 変換を実装してみます。

CData Python Connector は効率的なデータ処理によりZoho CRM のデータ にPython から接続し、高いパフォーマンスを発揮します。Zoho CRM にデータをクエリする際、ドライバーはフィルタリング、集計などがサポートされている場合SQL 処理を直接Zoho CRM 側に行わせ、サポートされていないSQL 処理については、組み込みのSQL エンジンによりクライアント側で処理を行います(JOIN やSQL 関数など)。

必要なモジュールのインストール

pip で必要なモジュールおよびフレームワークをインストールします:

pip install petl
pip install pandas

Python でZoho CRM のデータをETL 処理するアプリを構築

モジュールとフレームワークをインストールしたら、ETL アプリケーションを組んでいきます。コードのスニペットは以下の通りです。フルコードは記事の末尾に付いています。

CData Connector を含むモジュールをインポートします。

import petl as etl
import pandas as pd
import cdata.zohocrm as mod

接続文字列で接続を確立します。connect 関数を使って、CData Zoho CRM Connector からZoho CRM への接続を行います

cnxn = mod.connect("AuthToken=2ad3b3e719f6bed7368e5e7e26e4f988;")

Zoho CRM への接続

それでは、Zoho CRM に接続していきましょう。データに接続するには、以下の接続パラメータを設定します。

  • Region:Zoho CRM サーバーURL のドメインに関連付けられたリージョン
  • Schema:Zoho CRM のバージョン(v2v2.1、またはv4)。Zoho CRM のバージョンごとに独自のデータモデルがあります

これらのプロパティに加えて、認可時にサンドボックスまたは開発者インスタンスのいずれかを選択した場合は、InstanceType 接続プロパティでも同じ設定を行ってください。

Zoho CRM への認証

Zoho CRM では、データへの認証に2つの方法が用意されています。お使いの環境に応じて適切な方法を選択てください。

デスクトップ経由で自分のローカルデータに認証を行う場合(非ブラウザ接続):CData 製品が提供する埋め込みOAuth アプリケーションを使用

CData 製品はすでにZoho CRM にOAuth アプリケーションとして登録されています。そのため、デスクトップアプリケーションを介したローカルデータへの接続では、自動的に組み込みアプリケーションが使用されます。 OAuth 交換の繰り返しを避け、ローカルデータにアクセスするたびにOAuthAccessToken を手動で設定する手間を省くには、InitiateOAuthGETANDREFRESH に設定してください。

ネットワーク経由で共有データに認証を行う場合(ブラウザ接続):カスタムOAuth アプリケーションを使用

すべてのOAuth フローで、この認証を有効にするにはAuthSchemeOAuth に設定する必要があります。

より詳細な認証手順については、ヘルプドキュメントの「Zoho CRM への認証」をご確認ください。

Zoho CRM をクエリするSQL 文の作成

Zoho CRM にはSQL でデータアクセスが可能です。Accounts エンティティからのデータを読み出します。

sql = "SELECT Account_Name, Annual_Revenue FROM Accounts WHERE Industry = 'Data/Telecom OEM'"

Zoho CRM データのETL 処理

DataFrame に格納されたクエリ結果を使って、petl でETL(抽出・変換・ロード)パイプラインを組みます。この例では、Zoho CRM のデータ を取得して、Annual_Revenue カラムでデータをソートして、CSV ファイルにデータをロードします。

table1 = etl.fromdb(cnxn,sql)

table2 = etl.sort(table1,'Annual_Revenue')

etl.tocsv(table2,'accounts_data.csv')

CData Python Connector for ZohoCRM を使えば、データベースを扱う場合と同感覚で、Zoho CRM のデータ を扱うことができ、petl のようなETL パッケージから直接データにアクセスが可能になります。

おわりに

Zoho CRM Python Connector の30日の無償トライアル をぜひダウンロードして、Zoho CRM のデータ への接続をPython アプリやスクリプトから簡単に作成しましょう。



フルソースコード

import petl as etl
import pandas as pd
import cdata.zohocrm as mod

cnxn = mod.connect("AuthToken=2ad3b3e719f6bed7368e5e7e26e4f988;")

sql = "SELECT Account_Name, Annual_Revenue FROM Accounts WHERE Industry = 'Data/Telecom OEM'"

table1 = etl.fromdb(cnxn,sql)

table2 = etl.sort(table1,'Annual_Revenue')

etl.tocsv(table2,'accounts_data.csv')

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

Zoho CRM Connector のコミュニティライセンスをダウンロード:

 ダウンロード

詳細:

Zoho CRM Icon Zoho CRM Python Connector お問い合わせ

Zoho CRM へのデータ連携用のPython Connecotr ライブラリ。 pandas、SQLAlchemy、Dash、petl などの主要なPython ツールにZoho CRM をシームレスに統合。