Linux/UNIX 上のPython からSage X3 Cloud のデータにデータ連携

古川えりか
古川えりか
コンテンツスペシャリスト
CData ODBC Driver を使って、Linux/UNIX 上のPython アプリケーションからSage X3 Cloud のデータへのデータ連携を実現します。



CData ODBC Driver for SageX3Cloud を使えば、豊富なPython のエコシステムを使ったデータ連携が簡単に行えます。CData Linux/UNIX ODBC Driver for SageX3Cloud とpyodbc module を使って、簡単にSage X3 Cloud に連携するPython アプリケーションを構築したり、データ分析が手軽に行えます。本記事では、pyodbc のビルトイン関数を使って、Sage X3 Cloud に接続し、クエリを実行、表示する方法を説明します。

CData ODBC ドライバとは?

CData ODBC ドライバは、以下のような特徴を持ったリアルタイムデータ連携ソリューションです。

  1. Sage X3 Cloud をはじめとする、CRM、MA、会計ツールなど多様なカテゴリの270種類以上のSaaS / オンプレミスデータソースに対応
  2. 多様なアプリケーション、ツールにSage X3 Cloud のデータを連携
  3. ノーコードでの手軽な接続設定
  4. 標準 SQL での柔軟なデータ読み込み・書き込み

CData ODBC ドライバでは、1.データソースとしてSage X3 Cloud の接続を設定、2.Linux 側でODBC Driver との接続を設定、という2つのステップだけでデータソースに接続できます。以下に具体的な設定手順を説明します。

CData ODBC Drivers をUNIX/Linux マシンで利用

CData ODBC Drivers は、Ubuntu、Debian、RHEL、CentOS、Fedora などの様々なRed Hat ベースおよびDebian ベースのシステムでサポートされています。必要なライブラリとパッケージもいくつかあり、システムによってはそれらがデフォルトでインストールされる場合があります。Linux オペレーティングシステムのサポートされているバージョンと必要なライブラリの詳細については、ヘルプドキュメント(オンラインでインストールおよび検索)の[はじめに]セクションを参照してください。

Driver Manager のインストール

ドライバーをインストールする前に、システムにドライバーマネジャーがあることを確認してください。この記事では、広くサポートされている無料のオープンソースODBC ドライバーマネジャーであるunixODBC を使用します。

Ubuntu のようなDebian ベースのシステムの場合、APT パッケージマネジャーを使用してunixODBC をインストールできます。


$ sudo apt-get install unixODBC unixODBC-dev

Red Hat Linux に基づくシステムの場合、yum またはdnf を使用して、unixODBC をインストールできます。


$ sudo yum install unixODBC unixODBC-devel

unixODBC ドライバーマネジャーは、odbcinst.ini ファイルからドライバーに関する情報を読み取り、odbc.ini ファイルからデータソースに関する情報を読み取ります。 ターミナルに以下のコマンドを入力すると、システム上の構成ファイルの場所を特定できます。


$ odbcinst -j

コマンドの出力には、ODBC データソースと登録済みのODBC ドライバーの構成ファイルの場所が表示されます。 ユーザーデータソースには、odbc.ini が存在するホームフォルダを持つユーザーアカウントからのみアクセスできます。システムのデータソースには、すべてのユーザーがアクセスできます。 以下は、このコマンドの出力例です。


DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/myuser/.odbc.ini
SQLULEN Size.......:8
SQLLEN Size........:8
SQLSETPOSIROW Size.:8

ドライバーのインストール

標準パッケージ形式(Debian .deb パッケージ形式または.rpm ファイル形式)でドライバーをダウンロードすることができます。フィルをダウンロードしたら、ターミナルからドライバーをインストールできます。

ドライバーインストーラーは、ドライバーをunixODBC に登録し、システムDSN を作成します。これは、後にODBC 接続をサポートするツールやアプリケーションで使用できます。

Ubuntu のようなDebian ベースのシステムの場合、sudo を付けるか、root として次のコマンドを実行します。


$ dpkg -i /path/to/package.deb

Red Hat システムおよび.rpms をサポートするその他のシステムの場合には、sudo またはroot として以下のコマンドを実行します。


$ rpm -i /path/to/package.rpm

ドライバーがインストールされると、unixODBC ドライバーマネジャーを使用して、登録されたドライバーと定義されたデータソースを一覧表示できます。

登録済みドライバーを一覧表示


$ odbcinst -q -d
CData ODBC Driver for SageX3Cloud
...

定義されたデータソースを一覧表示


$ odbcinst -q -s
CData SageX3Cloud Source
...

CData ODBC Driver for SageX3Cloud をunixODBC で使用するには、ドライバーがUTF-16 を使用するように構成されていることを確認してください。これを行うには、以下のように、インストール場所のlib フォルダ(通常は、/opt/cdata/cdata-odbc-driver-for-sagex3cloud) にあるドライバーのINI ファイル(cdata.odbc.sagex3cloud.ini) を編集します。

cdata.odbc.sagex3cloud.ini


...

[Driver]
DriverManagerEncoding = UTF-16

DSN の変更

ドライバーのインストールにより、システムDSN が事前定義されます。システムデータソースファイル(/etc/odbc.ini)を編集し、必要な接続プロパティを定義することで、DSN を変更できます。さらに、$HOME/.odbc.ini で変更するためにroot アクセスを必要としない、ユーザー固有のDSN を作成できます。

Sage X3 Cloud では OAuth 2.0 の Client Credentials フローを使用し、API へのアクセスには X-API-Key も必要です。AuthScheme を OAuth に設定し、以下の接続プロパティを指定します。

  • URL:Sage X3 Cloud インスタンスのベース URL。
  • OAuthAccessTokenUrl:OAuth トークンエンドポイント(例:https://your-auth-domain/oauth/token)。
  • OAuthClientId:OAuth アプリケーションのクライアント ID。
  • OAuthClientSecret:OAuth アプリケーションのクライアントシークレット。
  • Audience:トークンリクエストで使用する API の Audience 値。
  • XAPIKey:Sage X3 Cloud の管理者から提供された X-API-Key。
  • Folder:Sage X3 のフォルダ名(例:SEED)。このフォルダがデフォルトのスキーマとして使用されます。
  • Folders(オプション):Sage X3 フォルダのカンマ区切りリスト(例:SEED,PERF)。各フォルダが個別のスキーマとして公開されるため、Schema.Table 構文でフォルダをまたいだクエリを実行できます。

ドライバーは Client Credentials フローでアクセストークンを取得し、すべての API リクエストで X-API-Key とあわせて送信します。InitiateOAuth を GETANDREFRESH(デフォルト)に設定しておけば、トークンの取得と更新は自動で行われます。

/etc/odbc.ini または$HOME/.odbc.ini


[CData SageX3Cloud Source]
Driver = CData ODBC Driver for SageX3Cloud
Description = My Description
AuthScheme = OAuth
URL = https://x3server/
OAuthAccessTokenUrl = https://auth-domain/oauth/token
OAuthClientId = your_client_id
OAuthClientSecret = your_client_secret
Audience = https://api-audience
XAPIKey = your_api_key
Folder = SEED

これらの構成ファイルの使用に関する具体的な情報については、、ヘルプドキュメントを参照してください。

以下のステップに従ってpyodbc をインストールし、Python オブジェクトを介してSage X3 Cloud へのアクセスを開始できます。

pyodbc のインストール

pip ユーティリティを使用してモジュールをインストールできます。

pip install pyodbc

必ず以下のコードでモジュールをインポートしてください。

import pyodbc

Python でのSage X3 Cloud のデータへの接続

これで、ODBC 接続文字列またはDSN で接続できます。以下は、接続文字列の構文です。


cnxn = pyodbc.connect('DRIVER={CData ODBC Driver for SageX3Cloud};AuthScheme=OAuth;URL=https://x3server/;OAuthAccessTokenUrl=https://auth-domain/oauth/token;OAuthClientId=your_client_id;OAuthClientSecret=your_client_secret;Audience=https://api-audience;XAPIKey=your_api_key;Folder=SEED;')

以下は、DSN の構文です。


cnxn = pyodbc.connect('DSN=CData SageX3Cloud Sys;')

Sage X3 Cloud へのSQL の実行

Cursor をインスタンス化し、Cursor クラスのexecute メソッドを使用してSQL ステートメントを実行します。


cursor = cnxn.cursor()

選択

fetchall、fetchone、およびfetchmany を使用し、SELECT ステートメントから返されたRows を取得できます。


import pyodbc

cursor = cnxn.cursor()
cnxn = pyodbc.connect('DSN=CData SageX3Cloud Source;User=MyUser;Password=MyPassword')
cursor.execute("SELECT BPCNUM, BPCNAM FROM BPCUSTOMER WHERE BPCNUM = 'MARTIN'")
rows = cursor.fetchall()
for row in rows:
  print(row.BPCNUM, row.BPCNAM)

パラメータ化されたクエリをシーケンスまたは因数リストで提供できます。


cursor.execute(
  "SELECT BPCNUM, BPCNAM
  FROM BPCUSTOMER
  WHERE BPCNUM = ?", 'MARTIN',1)

メタデータの発見

getinfo メソッドを使用してデータソースやドライバーの機能に関する情報などのデータを取得できます。getinfo メソッドは、入力をODBC SQLGetInfo メソッドに渡します。

cnxn.getinfo(pyodbc.SQL_DATA_SOURCE_NAME)

CData ODBC Driver for SageX3Cloud を使用してSage X3 Cloud に接続できるLinux/UNIX 環境で、Python アプリを構築することができるようになりました。

Sage X3 Cloud からLinux へのデータ連携には、ぜひCData ODBC ドライバをご利用ください

このようにCData ODBC ドライバと併用することで、270を超えるSaaS、NoSQL データをコーディングなしで扱うことができます。30日の無償評価版が利用できますので、ぜひ自社で使っているクラウドサービスやNoSQL と合わせて活用してみてください。

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

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

Sage X3 Cloud ODBC Driver の無料トライアルをダウンロードしてお試しください:

 ダウンロード

詳細:

Sage X3 Cloud Icon Sage X3 Cloud ODBC Driver

Sage X3 Cloud ODBC Driver は、ODBC 接続をサポートするさまざまなアプリケーションからSage X3 Cloud のリアルタイムデータ連携を実現するパワフルなツールです。

データベースにアクセスするときと同感覚でSage X3 Cloud データにアクセスし、標準ODBC Driver インターフェースを通じてSage X3 Cloud に読み出し、書き込み、更新が可能に。