製品をチェック

SAP Netweaver Gateway ODBC Driver の30日間無償トライアルをダウンロード

 30日間の無償トライアルへ

製品の詳細

SAP Netweaver Gateway アイコン SAP Netweaver Gateway ODBC Driver 相談したい

SAP Netweaver Gateway ODBC Driver を使って、ODBC 接続をサポートするあらゆるアプリケーション・ツールからSAP Netweaver Gateway にデータ連携。

SAP Netweaver Gateway データにデータベースと同感覚でアクセスして、SAP Netweaver Gateway のEntities データに使い慣れたODBC インターフェースで双方向連携。

Linux/UNIX 上のPython からSAP Netweaver Gateway データにデータ連携

CData ODBC Driver を使って、Linux/UNIX 上のPython アプリケーションからSAP Netweaver Gateway データへのデータ連携を実現します。

古川えりか
コンテンツスペシャリスト

最終更新日:2022-11-27
sapgateway ロゴ

CData

odbc ロゴ画像
Python ロゴ

こんにちは!ドライバー周りのヘルプドキュメントを担当している古川です。

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

CData ODBC ドライバとは?

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

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

CData ODBC ドライバでは、1.データソースとしてSAP Netweaver Gateway の接続を設定、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 SAPGateway ...

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

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

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

cdata.odbc.sapgateway.ini

... [Driver] DriverManagerEncoding = UTF-16

DSN の変更

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

SAP Gateway はBasic 認証とOAuth 2.0 認証の両方を許可します。Basic 認証を使用して自分のアカウントに接続するか、OAuth を使用して他のユーザーが彼らのアカウントでサービスからデータを取得できるようにすることができます。基本となる認証情報に加え、SAP Gateway テーブルへのアクセスには以下の追加プロパティが必要です。

  • Url: 環境のURL、またはサービスの完全URL に設定。例えば、完全URL は次のようになります:https://sapes5.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/。この例では、環境URL は次のようになります:https://sapes5.sapdevcenter.com。
  • Namespace: 適切なService Namespace を設定。先ほどの例では、IWBEP が名前空間です。サービスへの完全URL が指定されている場合は任意です。
  • Service: データを取得するサービスに設定。先ほどの例では、サービスはGWSAMPLE_BASIC です。完全URL が指定されている場合は必須ではありません。

Basic 認証での認証

Basic 認証では、自分のログインクレデンシャルを使用して接続します。次のプロパティを設定します。

  • User: これはSAP Gateway へのログインに使用するユーザー名です。
  • Password: これはSAP Gateway へのログインに使用するパスワードです。

OAuth 認証での認証

ユーザー資格情報の接続プロパティを設定せずに接続できます。 接続すると、CData 製品はデフォルトブラウザでSAP Gateway OAuth エンドポイントを開きます。ログインして、CData 製品にアクセス許可を与えます。CData 製品が以下のOAuth プロセスを完了します。 他のOAuth 認証フローについては、ヘルプドキュメントの「OAuth 認証の使用」を参照してください。

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

[CData SAPGateway Source] Driver = CData ODBC Driver for SAPGateway Description = My Description User = user Password = password URL = https://sapes5.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/

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

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

pyodbc のインストール

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

pip install pyodbc

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

import pyodbc

Python でのSAP Netweaver Gateway データへの接続

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

cnxn = pyodbc.connect('DRIVER={CData ODBC Driver for SAPGateway};User=user;Password=password;URL=https://sapes5.sapdevcenter.com/sap/opu/odata/IWBEP/GWSAMPLE_BASIC/;')

以下は、DSN の構文です。

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

SAP Netweaver Gateway へのSQL の実行

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

cursor = cnxn.cursor()

選択

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

import pyodbc cursor = cnxn.cursor() cnxn = pyodbc.connect('DSN=CData SAPGateway Source;User=MyUser;Password=MyPassword') cursor.execute("SELECT ProductID, Quantity FROM SalesOrderLineItems WHERE Quantity = '15'") rows = cursor.fetchall() for row in rows: print(row.ProductID, row.Quantity)

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

cursor.execute( "SELECT ProductID, Quantity FROM SalesOrderLineItems WHERE Quantity = ?", '15',1)

挿入

INSERT コマンドもexecute メソッドを使用します。ただし、挿入後に変更が失われないためにcommit メソッドを呼び出す必要があります。

cursor.execute("INSERT INTO SalesOrderLineItems (Quantity) VALUES ('15')") cnxn.commit()

更新と削除

挿入の場合と同様に、更新または削除の場合でも、execute を呼び出した後、commit を呼び出す必要があります。

cursor.execute("UPDATE SalesOrderLineItems SET Quantity = '15'") cnxn.commit()

メタデータの発見

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

cnxn.getinfo(pyodbc.SQL_DATA_SOURCE_NAME)

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

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

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

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

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。