JayDeBeApi を使って Python からOData のデータにアクセス

Jerod Johnson
Jerod Johnson
Senior Technology Evangelist
Python スクリプトを使用して、OData services にリアルタイムでアクセス。JayDeBeApi モジュールと CData JDBC Driver でOData のデータを操作できます。

Python と Java がインストールされている環境であれば、Python スクリプトと標準 SQL を使ってOData servicesにアクセスできます。CData JDBC Driver for OData と JayDeBeApi モジュールを組み合わせることで、Python からリモートのOData servicesを操作できます。CData ドライバーを使用することで、業界標準に準拠した実績のあるドライバーを Python という人気の高い言語で活用できます。この記事では、ドライバーを使って OData に SQL クエリを実行し、標準的な Python でOData servicesを可視化する方法を説明します。

OData データ連携について

CData は、OData サービスのライブデータへのアクセスと統合を簡素化します。お客様は CData の接続機能を以下の目的で活用しています:

  • OData バージョン 2.0、3.0、4.0 にアクセスでき、レガシーサービスと最新の機能・性能の両方に対応できます。
  • $filter、$select、$expand などの高度なクエリオプションを活用し、サードパーティツールからのデータ取得を強化できます。
  • サーバーサイドでの集計とグループ化の実行により、データ転送を最小化し、パフォーマンスを向上させます。
  • Azure AD、ダイジェスト、ネゴシエート、NTLM、OAuth など、さまざまなスキームを使用して安全に認証でき、すべての接続でセキュアな認証を実現します。
  • SQL ストアドプロシージャを使用して、OData サービスエンティティを管理できます。エンティティ間の関連付けの一覧表示、作成、削除などが可能です。

お客様は、Power BI、MicroStrategy、Tableau などのお気に入りのツールと OData サービスを定期的に統合し、OData サービスからデータベースやデータウェアハウスにデータをレプリケートするために CData のソリューションを使用しています。


はじめに


JayDeBeApi モジュールを使用

JayDeBeApi は、JDBC(Java Database Connectivity)のブリッジとして機能する Python ライブラリで、Python プログラムから CData JDBC ドライバーを含む Java データベースとやり取りできるようになります。pip install コマンドでモジュールをインストールします。

pip install JayDeBeApi

JDBC URL を作成

JayDeBeApi をインストールしたら、SQL を使って Python からOData servicesを操作する準備が整います。

OData への接続

OData に接続するには、Url を有効なOData サービスルートURI に設定する必要があります。 OData サービスにルートドキュメントがない場合、テーブルとして公開したい特定のエンティティをFeedURL に指定してください。

OData への認証

OData は、以下を経由する認証をサポートします。

  • HTTP
  • Kerberos
  • SharePoint Online
  • OAuth
  • Azure AD

HTTP 認証スキーム

HTTP で認証する場合は、次の表に従ってAuthScheme を設定します。

SchemeAuthSchemeその他の設定
NoneNone認証を必要としない場合に使用。
BasicBasicUserPassword
NTLMNTLMUserPassword
Digest(サポートされている場合)DigestUserPassword

その他の認証方法の詳細は、ヘルプドキュメントの「接続の確立」セクションを参照してください。

ビルトイン接続文字列デザイナー

JDBC URL の作成には、OData JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルをダブルクリックするか、コマンドラインから実行します。

java -jar cdata.jdbc.odata.jar

接続プロパティを入力し、接続文字列をクリップボードにコピーします。

以下は、一般的な JDBC 接続文字列を含む変数の例です。

jdbc_url = "jdbc:odata:URL=http://services.odata.org/V4/Northwind/Northwind.svc;UseIdUrl=True;OData Version=4.0;Data Format=ATOM;"

Python からOData servicesにアクセス

JDBC URL を設定したら、あとは JDBC ドライバーの JAR ファイルへの絶対パスだけが必要です。これはインストールディレクトリの "lib" フォルダにあります(Windows では "C:\Program Files\CData[product_name] 20XX\lib\cdata.jdbc.odata.jar")。

注意: まだ設定していない場合は、JAVA_HOME 環境変数を Java のインストールディレクトリに設定してください。

以下のようなコードで OData からデータを読み取り、表示できます。

import jaydebeapi

#The JDBC connection string
jdbc_url = "jdbc:odata:URL=http://services.odata.org/V4/Northwind/Northwind.svc;UseIdUrl=True;OData Version=4.0;Data Format=ATOM;"

username = "****"
password = "****"

#The absolute Path to the JDBC driver JAR file, typically:
jdbc_driver_jar = "C:\Program Files\CData[product_name] 20XX\lib\cdata.jdbc.odata.jar"

conn = jaydebeapi.connect(
   "cdata.jdbc.odata.ODataDriver",
   jdbc_url,
   [username, password],
   jdbc_driver_jar,
)

cursor = conn.cursor()
cursor.execute("SELECT * FROM Orders;")


results = cursor.fetchall()
for row in results:
    print(row)

cursor.close()
conn.close()

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

CData JDBC Driver for OData の 30 日間無料トライアルをダウンロードして、Python でリアルタイムのOData servicesを操作してみてください。ご不明な点がございましたら、サポートチームまでお問い合わせください。

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

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

 ダウンロード

詳細:

OData Icon OData JDBC Driver お問い合わせ

使いやすいOData クライアント(コンシューマー)を使用して、OData サービスと通信するJava アプリケーションを簡単に構築できるようになります。