Python で pandas を使って LDAP データを可視化する方法
Python の豊富なエコシステムを活用することで、作業を迅速に開始し、システム間の連携をより効果的に行うことができます。CData Python Connector for LDAP、pandas および Matplotlib モジュール、SQLAlchemy ツールキットを組み合わせることで、LDAP に接続した Python アプリケーションやスクリプトを構築し、LDAP objectsを可視化できます。この記事では、pandas、SQLAlchemy、Matplotlib の組み込み関数を使用して LDAP objectsに接続し、クエリを実行して結果を可視化する方法を説明します。
CData Python Connector は、組み込みの最適化されたデータ処理機能により、Python での LDAP objectsへのリアルタイムアクセスにおいて比類のないパフォーマンスを提供します。LDAP に対して複雑な SQL クエリを発行すると、ドライバーはフィルタや集計などのサポートされている SQL 操作を LDAP に直接プッシュし、サポートされていない操作(多くの場合、SQL 関数や JOIN 操作)は組み込みの SQL エンジンを使用してクライアント側で処理します。
LDAP Objectsへの接続
LDAP objectsへの接続は、他のリレーショナルデータソースへの接続と同様です。必要な接続プロパティを使用して接続文字列を作成します。この記事では、接続文字列を create_engine 関数のパラメータとして渡します。
リクエストを認証するには、User およびPassword プロパティを有効なLDAP クレデンシャル(例えば、User を"Domain\BobF" または"cn=Bob F,ou=Employees,dc=Domain")に設定します。 CData 製品は、デフォルトでプレーンテキスト認証を使用します。これは、CData 製品がサーバーとTLS/SSL のネゴシエーションを試みるためです。 AuthMechanism を使って別の認証方法を指定できます。 TLS/SSL コンフィギュレーションについて詳しくは、ヘルプドキュメントの「高度な設定」を参照してください。
- 基本接続には、Server およびPort を設定します。さらに、次のように接続を微調整できます。
- FollowReferrals:設定すると、CData 製品は参照サーバーのデータもビューとして表示します。参照サーバー上のデータを変更するには、このサーバーをServer およびPort で指定する必要があります。
- LDAPVersion:サーバーが実装するプロトコルのバージョンに設定します。デフォルトでは、CData 製品はversion 2 を使用します。
- BaseDN は、LDAP 検索の範囲を指定された識別名の高さに限定します。BaseDN の範囲を絞ることはパフォーマンスを劇的に向上させます。例えば、"cn=users,dc=domain" の値は、"cn=users" およびその子に含まれる結果のみを返します。
- Scope:このプロパティを使用すると、サブツリーから返されるデータをより細かく制御できます。
以下の手順に従って、必要なモジュールをインストールし、Python オブジェクトを介して LDAP にアクセスしてみましょう。
必要なモジュールのインストール
pip ユーティリティを使用して、pandas、Matplotlib モジュール、および SQLAlchemy ツールキットをインストールします。
pip install pandas pip install matplotlib pip install sqlalchemy
以下のようにモジュールをインポートしてください。
import pandas import matplotlib.pyplot as plt from sqlalchemy import create_engine
Python で LDAP Objectsを可視化する
接続文字列を使用して接続できます。create_engine 関数を使用して、LDAP objectsを操作するための Engine を作成します。
engine = create_engine("ldap:///?User=Domain\BobF&Password=bob123456&Server=10.0.1.1&Port=389")
LDAP への SQL の実行
pandas の read_sql 関数を使用して、SQL ステートメントを実行し、結果セットを DataFrame に格納します。
df = pandas.read_sql("SELECT Id, LogonCount FROM User WHERE CN = 'Administrator'", engine)
LDAP Objectsの可視化
クエリ結果が DataFrame に格納されたら、plot 関数を使用して LDAP objectsを表示するグラフを作成します。show メソッドで、グラフを新しいウィンドウに表示します。
df.plot(kind="bar", x="Id", y="LogonCount") plt.show()
無料トライアル & 詳細情報
CData Python Connector for LDAP の 30日間無料トライアルをダウンロードして、LDAP objectsに接続する Python アプリケーションやスクリプトの構築を始めましょう。ご質問がありましたら、サポートチームまでお気軽にお問い合わせください。
完全なソースコード
import pandas
import matplotlib.pyplot as plt
from sqlalchemy import create_engin
engine = create_engine("ldap:///?User=Domain\BobF&Password=bob123456&Server=10.0.1.1&Port=389")
df = pandas.read_sql("SELECT Id, LogonCount FROM User WHERE CN = 'Administrator'", engine)
df.plot(kind="bar", x="Id", y="LogonCount")
plt.show()