CData Python Connector for DB2 はじめに:インストールから接続まで

Mohsin Turki
Mohsin Turki
Technical Marketing Engineer
CData Python Connector のインストール、ライセンス認証、DB2 のデータ への接続設定方法を解説します。

このガイドでは、CData Python Connector をインストールし、ライセンスを認証して、 ライブの DB2 のデータ に接続する方法を解説します。以下の内容を学べます:

  1. コネクタのインストールとライセンスの適用
  2. DB2 への接続設定
  3. Python アプリケーションでライブの DB2 のデータ を統合する手順

それでは始めましょう。

前提条件

  1. お使いのマシンに Python(v3.8 以上)がインストールされていること。 こちらからダウンロードしてインストールしてください。
  2. 有効なライセンスを持つ CData Python Connector for IBM DB2。 こちらからダウンロードしてインストールしてください。
  3. 有効な資格情報を持つアクティブな DB2 アカウント。

ステップ 1:インストールとライセンス認証


1.1 コネクタのインストール

Python の依存関係について:Python がインストールされていることを確認してください。 CData Python Connector は Python バージョン 3.8、3.9、3.10、3.11、3.12 をサポートしています。 この範囲外のバージョンを使用している場合は、virtualenv で仮想環境を作成する必要がある場合があります。

Windows でのインストール

  1. コネクタ ZIP をダウンロードして解凍し、 目的の場所に配置します。
  2. ターミナルまたはコマンドプロンプトを開き、.whl ファイルがある場所(/win/ ディレクトリ内)に移動します。 例:
    ~\Downloads\DB2PythonConnector\CData.Python.DB2\win\Python312\64
  3. pip を使用して .whl ファイルをインストールします。 Python のバージョンとアーキテクチャに一致するファイルを使用してください。例:
            pip install cdata_db2_connector-24.0.9111-cp312-cp312-win_amd64.whl
            
  4. pip list を実行してインストールを確認します。 cdata-db2-connector が表示されれば、インストールは成功です。

Linux/Mac でのインストール

  1. コネクタ ZIP をダウンロードして解凍し、 目的の場所に配置します。
  2. ターミナルを開き、解凍したインストールディレクトリに移動して、 /unix/ または /mac/ フォルダ内の .tar.gz ファイルを確認します。 例:
    ~/Downloads/DB2PythonConnector/CData.Python.DB2/unix/
    または
    CData.Python.DB2/mac/
  3. pip を使用して .tar.gz ファイルをインストールします。例:
            pip install cdata_db2_connector-24.0.####-python3.tar.gz
            
  4. pip list を実行してインストールを確認します。 cdata-db2-connector が表示されれば、インストールは成功です。

1.2 ライセンスの認証

購入後、CData Orders チームからメールでライセンスキーを受け取っているはずです。 ライセンスキーは次のような 25 文字のコードです:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

Windows でのライセンス認証

  1. ターミナルまたはコマンドプロンプトを開き、Python インストールの site-packages ディレクトリ内の cdata フォルダに移動します。
  2. パスの例:
    C:\Users\Username\AppData\Local\Programs\Python\Python312\Lib\site-packages\cdata\installlic_db2
  3. ライセンスキーを指定して license-installer.exe ファイルを実行します:
            .\license-installer.exe [YOUR LICENSE KEY HERE]
            
  4. プロンプトが表示されたら、登録済みの名前とメールアドレスを入力して認証を完了します。

Linux/macOS でのライセンス認証

  1. ターミナルを開き、Python の site-packages ディレクトリ内の cdata フォルダに移動します。 このディレクトリは通常、以下の場所にあります:
    ~/Library/Python/3.12/lib/python/site-packages/cdata/installlic_db2 または
    /usr/local/lib/python3.12/site-packages/cdata/installlic_db2
  2. Linux/Mac ライセンスインストーラースクリプトを実行します:
            ./install-license.sh [YOUR LICENSE KEY HERE]
            
  3. プロンプトが表示されたら、登録済みの名前とメールアドレスを入力して認証を完了します。

ライセンスに関するよくある質問

ライセンスは複数のマシンで使用できますか?
はい、サブスクリプションプランによります。注文確認メールを確認するか、アカウント担当者にお問い合わせください。 アカウント担当者が不明な場合は、[email protected] までお問い合わせください。

ライセンスキーを紛失しました。どうすれば取得できますか?
注文番号を添えて [email protected] までメールでお問い合わせいただければ、ライセンスキーを再送いたします。

ライセンスを別のマシンに移行できますか?
はい。以下のリンクからライセンス移行リクエストを送信する必要があります:

https://www.cdata.com/lic/transfer/

ライセンス移行リクエストが送信され、処理されると、プロダクトキーに追加のアクティベーションが付与されます。 その後、新しいマシンで正規ライセンスを認証できます。 このプロセスが完了すると、以前のマシンのライセンスは無効になります。

ライセンスに関するその他のご質問は、[email protected] までお問い合わせください。 ライセンスの確認と管理は、セルフサービスポータル portal.cdata.com から行えます。


ステップ 2:接続設定

インストールとライセンス認証が完了したら、CData Python Connector を使用して接続を確立できます。

2.1 接続の確立

CData Python Connector for DB2 は、標準の import 文でインポートできる Python モジュールとして公開されており、 それを基にアプリケーションコードを構築できます。

コネクタには sys_tablessys_tablecolumns などの 組み込みメタデータツールも含まれており、DB2 のデータ の 利用可能なテーブル、カラム、構造メタデータを含むスキーマ検出を実行できます。

以下の例では、認証プロパティを使用して DB2 への接続を確立し、 特定のテーブルからカラム名を取得します。

以下の接続文字列の値を実際の資格情報に置き換え、必要に応じて '[TABLE NAME]' のテーブル名を更新してください。

DB2 インスタンスで MFA や追加のセキュリティ要件を使用している場合は、 接続文字列に PasscodeSecurityToken などのプロパティを含める必要がある場合があります。 サポートされているプロパティの完全なリストについては、 コネクタヘルプドキュメントConnection String Options セクションを参照してください (コネクタの help ディレクトリ内でも参照可能です)。



import cdata.db2 as mod

# 設定したプロパティを使用して接続を確立
conn = mod.connect(
    "Server=10.0.1.2;"
    "Port=50000;"
    "User=admin;"
    "Password=admin;"
    "Database=test;"
)

# 指定したテーブルのカラム名をクエリ
cur = conn.cursor()
cur.execute("SELECT ColumnName FROM sys_tablecolumns WHERE TableName = '[TABLE NAME]'")

print("テーブルのカラム:")
for row in cur.fetchall():
    print(row[0])

cur.close()
conn.close()

このコードは DB2 に接続し、メタデータカタログをクエリして、 指定したテーブルのすべてのカラム名を出力します。完全な コネクタドキュメント を参照して、追加のスキーマ、テーブル、その他のサポートされているメタデータビューを 探索するための SQL クエリの変更方法を学べます。


2.2 利用可能な接続設定

DB2 に接続するには以下のプロパティを設定します。

  • Server: DB2 を実行するサーバー名。
  • Port: DB2 サーバーのポート。
  • Database: DB2 データベース名。

接続の準備ができたら、認証スキームを選択し、以下で説明するように適切なプロパティを設定します。

CData 製品 は、DB2 への認証に4つの異なるスキームをサポートします。DB2 ユーザー資格情報(デフォルト)、暗号化されたユーザー資格情報、IBM Identity and Access Management(IAM)認証、および Kerberos です。

DB2 ユーザー資格情報

ユーザー資格情報を使用して認証するには、次のプロパティを設定します。
  • AuthSchemeUSRIDPWD
  • User:データベースへのアクセス権を持つユーザーのユーザー名。
  • Password:データベースへのアクセス権を持つユーザーのパスワード。

暗号化されたユーザー資格情報

サーバーがセキュア認証に対応しており、暗号化されたユーザー資格情報を使用して認証を行いたい場合は、このプロパティを設定します。
  • AuthSchemeEUSRIDPWD

IAM、Kerberos で認証したい場合は、ヘルプドキュメントの「はじめに」セクションを参照してください。

パスワード方式によるSSH 接続

パスワード方式によるSSH接続時に必要なプロパティ一覧を以下に示します。

  • User: DB2 のユーザ
  • Password: DB2 のパスワード
  • Database: DB2 の接続先データベース
  • Server: DB2 のサーバー
  • Port: DB2 のポート
  • UserSSH: "true"
  • SSHAuthMode: "Password"
  • SSHPort: SSH のポート
  • SSHServer: SSH サーバー
  • SSHUser: SSH ユーザー
  • SSHPassword: SSH パスワード

接続文字列形式では以下のようになります。

Server=10.0.1.2;Port=50000;User=admin;Password=admin;Database=testUseSSH=true;SSHAuthMode=Password;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHPassword=sshpasswd;

公開鍵認証方式方式によるSSH 接続

公開鍵認証によるSSH接続時に必要なプロパティ一覧を以下に示します。

  • User: DB2 のユーザ
  • Password: DB2 のパスワード
  • Database: DB2 の接続先データベース
  • Server: DB2 のサーバー
  • Port: DB2 のポート
  • UserSSH: "true"
  • SSHAuthMode: "Public_Key"
  • SSHClientCertType: キーストアの種類
  • SSHPort: SSH のポート
  • SSHServer: SSH サーバー
  • SSHUser: SSH ユーザー
  • SSHClientCert: 秘密鍵ファイルのパス

接続文字列形式では以下のようになります。

Server=10.0.1.2;Port=50000;User=admin;Password=admin;Database=test;UseSSH=true;SSHAuthMode=Public_Key;SSHClientCertType=PUBLIC_KEY_FILE;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHClientCert=C:\Keys\key.pem;

2.3 よくある接続の問題

認証エラー

解決策:UserPassword、および DB2 で必要な追加の認証プロパティが正しいことを確認してください。 データソースが MFA、SSO、またはパスコードを強制している場合は、 接続文字列に正しいプロパティが含まれていることを確認してください。 サポートされている認証プロパティの完全なリストについては、 コネクタドキュメントを参照するか、 認証設定の検証については [email protected] までお問い合わせください。

サーバーに接続できない

解決策:接続文字列のエンドポイント URL が正しく、 環境からアウトバウンド HTTPS トラフィックが許可されていることを確認してください。 ファイアウォールやプロキシの背後にいる場合は、Python がサービス URL に 到達できることを確認してください。 ネットワーク設定の詳細やポート要件については、 [email protected] までお問い合わせください。

テーブルが見つからない

解決策:SQL クエリの DatabaseSchema、およびテーブル名を確認してください。 sys_tablessys_tablecolumns などのメタデータビューを使用して、 DB2 のデータ が公開している正確なテーブル名とカラム名を確認してください。 テーブル名が大文字小文字を区別する場合は、クエリで正しい大文字小文字を使用していることを確認してください。

モジュールが見つからない、またはインポートエラー

解決策:Python Connector が正しい環境にインストールされていることを確認してください。 pip list を実行して、コネクタ (cdata-db2-connector)が存在することを確認してください。 仮想環境を使用している場合は、スクリプトを実行する前に正しい環境を有効にしてください。

接続文字列エラー

解決策:プロパティのフォーマットが正しくない、またはセミコロンが欠落していると、 コネクタが接続設定を解析できなくなります。 接続文字列を確認し、各プロパティが正しい Key=Value; 形式に従っていることを確認してください。 DB2 でサポートされているプロパティ名については、Python Connector ドキュメントを参照してください。

接続に関するその他のトラブルシューティングについては、完全なエラーメッセージを添えて (機密の資格情報をマスクしてから)[email protected] までお問い合わせください。


ステップ 3:次のステップ

コネクタがインストールされ、接続が設定されたら、 Python でライブの DB2 のデータ を操作できます。以下のリソースを参照して、 統合を拡張し、複雑なワークフローを構築してください。


サポート

ご不明な点がございましたら、お気軽にお問い合わせください:


FAQ

インストールとライセンス

  • コネクタのインストールには管理者権限が必要ですか?
    Python Connector のインストール自体には管理者権限は必要ありませんが、 ライセンスの適用やシステム全体の Python 環境へのインストール時には必要になる場合があります。
  • 複数の Python 環境にコネクタをインストールできますか?
    はい。環境ごと(venv、Conda、システム Python)に一度インストールしてください。 各環境は独自のパッケージを管理し、認証後はマシンライセンスを使用します。

接続

  • 認証情報はどのように提供しますか?
    mod.connect() を呼び出す際に、接続文字列で認証プロパティを渡します。 サポートされているプロパティの完全なリストについては、コネクタヘルプドキュメントを参照してください。
  • テーブルとカラムを検出するにはどうすればよいですか?
    sys_tablessys_tablecolumns などのメタデータビューを使用してください。 例:
    SELECT * FROM sys_tables;
  • プロキシサーバー経由で接続できますか?
    はい。接続文字列に ProxyServerProxyPortProxyUser などの プロキシプロパティを含めてください。 詳細については、ドキュメントの Firewall & Proxy セクションを参照してください。

パフォーマンスとトラブルシューティング

  • クエリが遅いのはなぜですか?
    以下を確認してください:
    • フィルター(WHERE 句)を追加して結果サイズを削減する
    • 頻繁に変更されないデータにはキャッシュを使用する
    • DatabaseSchema の選択情報が正しいことを確認する
    • 最適化のサポートについては [email protected] までお問い合わせください
  • ログを有効にするにはどうすればよいですか?
    接続文字列にログプロパティを直接追加します。例: Logfile=/path/log.txt;Verbosity=5;
    Verbosity はログの詳細レベルを制御します。 サポートを依頼する際は、このログファイルを [email protected] に送信してください。
  • どのポートを開放する必要がありますか?
    ほとんどのクラウドサービスは、ポート 443 でアウトバウンド HTTPS を必要とします。 ソース固有の要件については、 [email protected] までお問い合わせください。
  • インポート時に「Module not found」と表示されるのはなぜですか?
    スクリプトを実行する Python 環境にコネクタがインストールされていることを確認してください。 pip list または pip show を使用してインストールを確認してください。

一般

  • サポートされている SQL 構文はどこで確認できますか?
    コネクタドキュメントの SQL Compliance セクションを参照してください。
  • コネクタはどのくらいの頻度で更新されますか?
    CData はメジャーアップデートを年次でリリースし、定期的なパッチを提供します。 最新バージョンについては、アカウントポータルを確認するか、サポートにお問い合わせください。
  • その他のコード例はどこで確認できますか?
    オンラインドキュメントには、接続、クエリ、フィルタリング、ページング、 メタデータビューの操作に関する例が含まれています。

この FAQ で解決しない場合は、 [email protected] までお問い合わせください。

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

IBM DB2 Connector のコミュニティライセンスをダウンロード:

 ダウンロード

詳細:

IBM DB2 Icon IBM DB2 Python Connector お問い合わせ

IBM DB2 データ接続用のPython コネクタライブラリ。Pandas、SQLAlchemy、Dash & petl など人気のPython ツールとIBM DB2 を連携。