Sybase のデータをPythonのpandasで可視化する方法|CData Connect AI

Jerod Johnson
Jerod Johnson
Director, Technology Evangelism
CData Connect AI Python SDKとpandas、Matplotlibを組み合わせ、リアルタイムのSybase のデータを分析・可視化する方法を解説。pandas.read_sqlでSDK接続をそのまま渡せます。

CData Connect AI Python SDKをpandasとMatplotlibに接続すると、パーソナルアクセストークンで認証するだけでリアルタイムのSybase のデータをDataFrameに読み込み、そのままグラフとして可視化できます。SQLAlchemyエンジンの設定やソースごとのドライバーインストールは不要です。

Python は豊富なモジュールのエコシステムを備えているため、素早く作業に取りかかり、システムをより効果的に連携できます。CData Connect AI Python SDK と pandas、Matplotlib のモジュールを使えば、Sybase のデータを可視化する Sybase 連携の Python アプリケーションやスクリプトを構築できます。この記事では、Connect AI に接続し、pandas と Matplotlib の組み込み関数を使ってSybase のデータをクエリし、その結果を可視化する方法をご紹介します。

Connect AI Python SDK(cdata-connect-ai)は DB-API 2.0(PEP 249)に準拠したクライアントなので、pandas は SDK の接続オブジェクトから直接クエリ結果を読み取れます。ソースごとにドライバーをインストールする必要も、SQLAlchemy のエンジンを設定する必要もありません。パーソナルアクセストークンで接続して、その接続をそのまま pandas.read_sql に渡すだけです。

Connect AI で Sybase に接続する方法は?

CData Connect AI では、直感的なクリック操作ベースのインターフェースでデータソースに接続できます。

  1. Connect AI にログインし、Sources をクリックして、 Add Connection をクリックします
  2. 接続の追加
  3. 「Add Connection」パネルから「Sybase」を選択します
  4. データソースの選択
  5. Sybase に接続するために必要な認証プロパティを入力します。

    Sybase は、Basic 認証、Kerberos 認証、LDAP 認証などの認証方法をいくつかサポートしています。

    Basic 認証を使用した接続

    次を設定してデータを認証し接続します。User およびPassword を設定してSybaseIQ 認証を使用します。

    • User:認証Sybase ユーザーのユーザー名に設定。
    • Password:認証Sybase ユーザーのパスワードに設定。
    • Server:SybaseIQ またはSAP SQL Anywhere データベースインスタンスの名前またはネットワークアドレスに設定。
    • Database:指定されたサーバーで実行されているSybaseIQ またはSAP SQL Anywhere データベースの名前に設定。

    オプションで、UseSSL をtrue に設定することにより、TLS/SSL で接続を保護できます。

    Note: 上記のCData 製品 設定でSAP SQL Anywhere のインスタンスに接続することもできます。

    Kerberos 認証を使用した接続

    Kerberos 認証を活用するには、次の接続プロパティを使用してそれを有効にすることから始めます。

    • AuthScheme:Kerberos に設定すると、Sybase への認証に使用されます。

    Kerberos 認証用に設定する必要がある接続プロパティに関しては、Kerberos の使用 情報を参照してください。

    以下は接続文字列の例です。

    Server=MyServer;Port=MyPort;User=SampleUser;Password=SamplePassword;Database=MyDB;Kerberos=true;KerberosKDC=MyKDC;KerberosRealm=MYREALM.COM;KerberosSPN=server-name

    LDAP 認証を使用した接続

    LDAP 認証で接続するには、LDAP 認証メカニズムを使用するようにSybase サーバーサイドを設定する必要があります。

    LDAP 用にSybase を設定したら、Basic 認証と同じクレデンシャルを使用して接続できます。 接続の設定(Salesforce の例)

  6. 「Save & Test」をクリックします
  7. 「Permissions」タブに移動し、ユーザーベースの権限を更新します。 権限の更新

パーソナルアクセストークン(PAT)を生成する

Python SDK は、アカウントのメールアドレスとパーソナルアクセストークン(PAT)を使って Connect AI に認証します。アクセスの粒度を保つために、アプリケーションごとに個別の PAT を作成することをおすすめします。

  1. Connect AI アプリの右上にある歯車アイコン()をクリックして、設定ページを開きます。
  2. 設定ページの Access Tokens セクションに移動し、 Create PAT をクリックします。
  3. PAT に名前を付けて Create をクリックします。 新しい PAT の作成
  4. パーソナルアクセストークンは作成時にのみ表示されます。必ずコピーして安全な場所に保管してください。

必要なモジュールをインストールする

pip ユーティリティを使って、SDK(pandas エクストラ付き)と Matplotlib をインストールします。

pip install "cdata-connect-ai[full]"
pip install matplotlib

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

モジュールをインポートし、アカウントのメールアドレスと PAT で Connect AI に接続します。識別子は <Connection>.<Schema>.<Table> という3つの部分で構成されており、接続名はデフォルトでソース名(例:Sybase1)になります。

import pandas
import matplotlib.pyplot as plt
import cdata_connect_ai

conn = cdata_connect_ai.connect(
    username="[email protected]",
    password="<your_pat>",
)

pandas で Sybase をクエリする

pandas の read_sql 関数を使って SQL ステートメントを実行し、結果セットを DataFrame に格納します。エンジンは不要で、SDK の接続をそのまま渡すだけです。

df = pandas.read_sql(
    "SELECT Id, ProductName "
    "FROM [Sybase1].[Sybase].[Products] "
    "WHERE ProductName = 'Konbu'",
    conn,
)

注意:pandas が、公式にサポートしているのは SQLAlchemy の接続のみであるという UserWarning を出力する場合があります。これは DB-API 接続を直接渡したときに想定される動作です。クエリは正しく実行されるため、この警告は無視して問題ありません。

Sybase のデータを可視化する

クエリ結果を DataFrame に格納したら、plot 関数を使ってチャートを作成します。show メソッドを使うと、チャートが新しいウィンドウに表示されます。

df.plot(kind="bar", x="Id", y="ProductName")
plt.show()

conn.close()
クエリ結果を表示した Matplotlib のチャート(Salesforce の例)

関連情報と無料トライアル

これで、CData Connect AI Python SDK を通じて、リアルタイムのSybase のデータを pandas に読み込めるようになりました。Sybase(および数百種類のその他のデータソース)への接続について詳しくは、Connect AI のページをご覧ください。

CData Connect AI の詳細、または無料トライアルにお申し込みください:

無料トライアル お問い合わせ



完全なソースコード

import pandas
import matplotlib.pyplot as plt
import cdata_connect_ai

conn = cdata_connect_ai.connect(
    username="[email protected]",
    password="<your_pat>",
)

df = pandas.read_sql(
    "SELECT Id, ProductName "
    "FROM [Sybase1].[Sybase].[Products] "
    "WHERE ProductName = 'Konbu'",
    conn,
)

df.plot(kind="bar", x="Id", y="ProductName")
plt.show()

conn.close()

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

CData Connect AI の詳細、または無料トライアルにお申し込みください:

無料トライアル