Python で pandas を使って Odoo データを可視化する方法

Jerod Johnson
Jerod Johnson
Senior Technology Evangelist
pandas などのモジュールを使って Python で Odoo のデータをリアルタイムに分析・可視化する方法を紹介します。

Python の豊富なエコシステムを活用することで、作業を迅速に開始し、システム間の連携をより効果的に行うことができます。CData Python Connector for Odoo、pandas および Matplotlib モジュール、SQLAlchemy ツールキットを組み合わせることで、Odoo に接続した Python アプリケーションやスクリプトを構築し、Odoo のデータを可視化できます。この記事では、pandas、SQLAlchemy、Matplotlib の組み込み関数を使用して Odoo のデータに接続し、クエリを実行して結果を可視化する方法を説明します。

CData Python Connector は、組み込みの最適化されたデータ処理機能により、Python での Odoo のデータへのリアルタイムアクセスにおいて比類のないパフォーマンスを提供します。Odoo に対して複雑な SQL クエリを発行すると、ドライバーはフィルタや集計などのサポートされている SQL 操作を Odoo に直接プッシュし、サポートされていない操作(多くの場合、SQL 関数や JOIN 操作)は組み込みの SQL エンジンを使用してクライアント側で処理します。

Odoo データ連携について

CData を使用すれば、Odoo のライブデータへのアクセスと統合がこれまでになく簡単になります。お客様は CData の接続機能を以下の目的で利用しています:

  • Odoo API 8.0+ と Odoo.sh クラウド ERP の両方からライブデータにアクセスできます。
  • 多対一、一対多、多対多のデータプロパティをインテリジェントに処理することで、ネイティブの Odoo 機能を拡張できます。CData の接続ソリューションは、Odoo 内の複雑なデータプロパティもインテリジェントに処理します。テキストや日付などの単純な値を持つカラムに加えて、各行に複数の値を含むカラムもあります。ドライバーは、値の元となるカラムのタイプに応じて、これらの種類の値を異なる方法でデコードします:
    • 多対一カラムは、別のモデル内の単一の行への参照です。CData ソリューションでは、多対一カラムは整数として表され、その値は他のモデルで参照している ID です。
    • 多対多カラムは、別のモデル内の多くの行への参照です。CData ソリューションでは、多対多カラムはカンマ区切りの整数リストを含むテキストとして表されます。リスト内の各値は、参照されている行の ID です。
    • 一対多カラムは、別のモデル内の多くの行への参照です。多対多カラムと同様(カンマ区切りの整数リスト)ですが、参照されるモデルの各行はメインモデルの 1 つにのみ属する必要があります。
  • SQL ストアドプロシージャを使用して、Odoo 内のサーバーサイド RFC を呼び出すことができます。

ユーザーは、Power BI や Qlik Sense などの分析ツールと Odoo を統合し、当社のツールを活用して Odoo データをデータベースやデータウェアハウスにレプリケートしています。


はじめに


Odoo のデータへの接続

Odoo のデータへの接続は、他のリレーショナルデータソースへの接続と同様です。必要な接続プロパティを使用して接続文字列を作成します。この記事では、接続文字列を create_engine 関数のパラメータとして渡します。

接続するには、URL にOdoo インスタンスURL、User およびAPIToken にユーザー資格情報、Database にOdoo データベース名を設定します。 API トークン(Odoo 14 以降でのみ利用可能)を使用していない場合、代わりにAPIToken フィールドにパスワードを直接入力することができます。

接続方法の詳細は、ヘルプドキュメントの「はじめに」セクションを参照してください。

以下の手順に従って、必要なモジュールをインストールし、Python オブジェクトを介して Odoo にアクセスしてみましょう。

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

pip ユーティリティを使用して、pandas、Matplotlib モジュール、および SQLAlchemy ツールキットをインストールします。

pip install pandas
pip install matplotlib
pip install sqlalchemy

以下のようにモジュールをインポートしてください。

import pandas
import matplotlib.pyplot as plt
from sqlalchemy import create_engine

Python で Odoo のデータを可視化する

接続文字列を使用して接続できます。create_engine 関数を使用して、Odoo のデータを操作するための Engine を作成します。

engine = create_engine("odoo:///?User=MyUser&APIToken=MyToken&URL=http://MyOdooSite/&Database=MyDatabase")

Odoo への SQL の実行

pandas の read_sql 関数を使用して、SQL ステートメントを実行し、結果セットを DataFrame に格納します。

df = pandas.read_sql("SELECT name, email FROM res_users WHERE id = '1'", engine)

Odoo のデータの可視化

クエリ結果が DataFrame に格納されたら、plot 関数を使用して Odoo のデータを表示するグラフを作成します。show メソッドで、グラフを新しいウィンドウに表示します。

df.plot(kind="bar", x="name", y="email")
plt.show()

無料トライアル & 詳細情報

CData Python Connector for Odoo の 30日間無料トライアルをダウンロードして、Odoo のデータに接続する Python アプリケーションやスクリプトの構築を始めましょう。ご質問がありましたら、サポートチームまでお気軽にお問い合わせください。



完全なソースコード

import pandas
import matplotlib.pyplot as plt
from sqlalchemy import create_engin

engine = create_engine("odoo:///?User=MyUser&APIToken=MyToken&URL=http://MyOdooSite/&Database=MyDatabase")
df = pandas.read_sql("SELECT name, email FROM res_users WHERE id = '1'", engine)

df.plot(kind="bar", x="name", y="email")
plt.show()

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

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

 ダウンロード

詳細:

Odoo Icon Odoo Python Connector お問い合わせ

Odoo データ連携用Python コネクタライブラリ。Odoo データをPandas、SQLAlchemy、Dash、petl などの人気のPython ツールにシームレスに統合。