SQLAlchemy ORM を使用して Python で e-Sales Manager のデータ にアクセスする方法

Jerod Johnson
Jerod Johnson
Senior Technology Evangelist
SQLAlchemy オブジェクトリレーショナルマッピングを使用して、e-Sales Manager のデータ を操作する Python アプリケーションとスクリプトを作成します。

Python の豊富なモジュールエコシステムを活用することで、迅速に作業を開始し、システムを効果的に統合できます。CData Python Connector for e-Sales Manager と SQLAlchemy ツールキットを使用して、e-Sales Manager に接続された Python アプリケーションやスクリプトを構築できます。この記事では、SQLAlchemy を使用して e-Sales Manager のデータ に接続し、クエリ、更新、削除、挿入を実行する方法を説明します。

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

e-Sales Manager のデータ への接続

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

e セールスマネージャー Remix に接続するには、User、Passowrd、URL、TenantId パラメータが必要です。

  • User:API を実行するためのログインユーザーのユーザーID。
  • Password:API を実行するためのログインユーザーのユーザーパスワード
  • URL:e-Sales Manager Remix エンドポイントへのURL。例:https://XXX.softbrain.co.jp
  • TenantId:e-Sales Manager Remix テナント名のTenantd。例:cdata

以下の手順に従って SQLAlchemy をインストールし、Python オブジェクトを通じて e-Sales Manager にアクセスしてみましょう。

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

pip ユーティリティを使用して、SQLAlchemy ツールキットと SQLAlchemy ORM パッケージをインストールします。

pip install sqlalchemy
pip install sqlalchemy.orm

適切なモジュールをインポートします。

from sqlalchemy import create_engine, String, Column
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

Python での e-Sales Manager のデータ のモデリング

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

注意: 接続文字列のプロパティに特殊文字が含まれている場合は、URL エンコードする必要があります。詳細については、SQL Alchemy ドキュメントを参照してください。

engine = create_engine("esalesmanager:///?User=MyUsername&Password=MyPassword&URL=MyInstanceURL&TenantId=MyTenantId")

e-Sales Manager のデータ のマッピングクラスの宣言

接続を確立したら、ORM でモデル化するテーブルのマッピングクラスを宣言します(この記事では、Customer テーブルをモデル化します)。sqlalchemy.ext.declarative.declarative_base 関数を使用して、一部またはすべてのフィールド(カラム)を定義した新しいクラスを作成します。

base = declarative_base()
class Customer(base):
	__tablename__ = "Customer"
	Name = Column(String,primary_key=True)
	Address = Column(String)
	...

e-Sales Manager のデータ のクエリ

マッピングクラスを準備したら、セッションオブジェクトを使用してデータソースにクエリを実行できます。Engine をセッションにバインドした後、セッションの query メソッドにマッピングクラスを渡します。

query メソッドの使用

engine = create_engine("esalesmanager:///?User=MyUsername&Password=MyPassword&URL=MyInstanceURL&TenantId=MyTenantId")
factory = sessionmaker(bind=engine)
session = factory()
for instance in session.query(Customer).filter_by(Address="CustomerAddress"):
	print("Name: ", instance.Name)
	print("Address: ", instance.Address)
	print("---------")

別の方法として、適切なテーブルオブジェクトと execute メソッドを使用することもできます。以下のコードはアクティブな session で動作します。

execute メソッドの使用

Customer_table = Customer.metadata.tables["Customer"]
for instance in session.execute(Customer_table.select().where(Customer_table.c.Address == "CustomerAddress")):
	print("Name: ", instance.Name)
	print("Address: ", instance.Address)
	print("---------")

JOIN、集計、制限などのより複雑なクエリの例については、拡張機能のヘルプドキュメントを参照してください。

e-Sales Manager のデータ の挿入

e-Sales Manager のデータ を挿入するには、マッピングクラスのインスタンスを定義し、アクティブな session に追加します。セッションの commit 関数を呼び出して、追加されたすべてのインスタンスを e-Sales Manager にプッシュします。

new_rec = Customer(Name="placeholder", Address="CustomerAddress")
session.add(new_rec)
session.commit()

e-Sales Manager のデータ の更新

e-Sales Manager のデータ を更新するには、フィルタクエリで目的のレコードを取得します。次に、フィールドの値を変更し、セッションの commit 関数を呼び出して、変更されたレコードを e-Sales Manager にプッシュします。

updated_rec = session.query(Customer).filter_by(SOME_ID_COLUMN="SOME_ID_VALUE").first()
updated_rec.Address = "CustomerAddress"
session.commit()

e-Sales Manager のデータ の削除

e-Sales Manager のデータ を削除するには、フィルタクエリで目的のレコードを取得します。次に、アクティブな session でレコードを削除し、セッションの commit 関数を呼び出して、指定されたレコード(行)に対して削除操作を実行します。

deleted_rec = session.query(Customer).filter_by(SOME_ID_COLUMN="SOME_ID_VALUE").first()
session.delete(deleted_rec)
session.commit()

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

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

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

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

 ダウンロード

詳細:

e-Sales Manager Icon e-Sales Manager Python Connector お問い合わせ

e-Sales Manager データ連携用のPython Connector ライブラリ。pandas、SQLAlchemy、Dash、petl などの主要なPython ツールにAutify をシームレスに統合。