Pythonアプリケーションの構築

Autonomous DatabaseにアクセスするPythonアプリケーションを構築するには、まず、Autonomous Databaseの継続的な可用性および高パフォーマンスの機能を利用できるデータベース・アクセスをサポートするように開発システムを構成します。

開発システムを構成した後、これらの機能を利用するように、アプリケーション内のデータベース接続およびSQL文をコーディングします。

ヒント:

次のトピックを読まずに実際に試してみる場合は、開発者およびデータベース・ユーザー専用Oracle Autonomous Databaseワークショップラボ4: Pythonアプリケーション・スタックの構築を実行できます。

Python開発システムの構成

PythonアプリケーションがAutonomous Databaseの継続的可用性および高パフォーマンスの機能を利用できるように開発システムを構成するには、次のステップを実行します。

  1. Pythonをダウンロードしてインストールします。
  2. Oracle Instant Clientをダウンロードしてインストールします。
  3. cx_Oracleをダウンロードしてインストールします。
  4. データベースのクライアント資格証明をダウンロードして、Oracle Instant Clientで使用できるようにします。

始める前に

開発システムを正常に構成するためには、それが特定の基準を満たしている必要があります。

Pythonのダウンロードとインストール

  • Oracle Linux:

    Oracle Linux 7にはPython 2.7が含まれているため、このコマンドを実行するだけです:

    sudo yum -y install oracle-release-el7
  • その他のOSesおよびアーキテクチャ:

    python.orgの「ダウンロード」ページに移動し、使用しているOSおよびアーキテクチャ用の最新のPython 2.7またはPython 3.5 (以上の)バージョンをダウンロードしてインストールします。

Oracle Instant Clientのダウンロードとインストール

Oracle Instant Clientライブラリのバージョン19.6以降が必要です。

使用しているシステムのOSおよびアーキテクチャ用のOracle Instant Client Basicパッケージをダウンロードしてインストールします:

  • Oracle Linux:

    次のコマンドを実行して、Oracle Instant Client Basicパッケージをダウンロードしてインストールします:

    sudo yum -y install oracle-release-el7
    sudo yum -y install oracle-instantclient19.3-basic

    (すべてのインスタント・クライアント・パッケージのリストを確認するには、http://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient/x86_64/index.htmlに移動します。)

  • その他のOSesおよびアーキテクチャ:

    1. 「Oracle Instant Clientのダウンロード」ページに移動し、使用しているシステムのOSおよびアーキテクチャ用のダウンロードを選択します。

    2. ダウンロード・ページで、Oracle Technology Networkライセンス契約に同意し、最新バージョンのBasicパッケージをダウンロードしてから、ダウンロード・ページの下部にある指示に従ってインストールします。

cx_Oracleのダウンロードとインストール

Pythonのpipパッケージを使用して、PyPI (Python Package Index)からcx_Oracleをインストールします:

  • Oracle Linux:

    次のコマンドを実行してpipパッケージをダウンロードし、それを使用してcx_Oracleをインストールします:

    sudo yum -y install oracle-release-el7
    curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
    sudo python get-pip.py
    python -m pip install cx_Oracle --upgrade
  • その他のOSesおよびアーキテクチャ:

    次のコマンドを実行します:

    python -m pip install cx_Oracle --upgrade

データベースのクライアント資格証明のダウンロードとインストール

  1. データベースのクライアント資格証明を含むzipファイルをコンピュータ上の安全なディレクトリにダウンロードします。

    このzipファイルは、Oracle Cloudコンソールのデータベースの「詳細」ページからダウンロードできます。次のように資格証明をダウンロードします。

    1. WebブラウザでOracle Cloudにログインし、Autonomous Databaseの詳細ページに移動します。

    2. 「DB接続」をクリックします。

    3. 「データベース接続」ページで、「ダウンロード」をクリックします。

    4. 「ウォレットのダウンロード」ダイアログで、「パスワード」フィールドにウォレット・パスワードを入力し、「パスワードの確認」フィールドでパスワードを確認します。

      パスワードは8文字以上の長さで、少なくとも1つの文字と、1つの数字または1つの特殊文字を含める必要があります。

    5. 「ダウンロード」をクリックして、クライアント資格証明zipファイルを安全なディレクトリに保存します。

  2. zipファイルをダウンロードした後は、次のステップに従います:

    1. クライアント資格証明zipファイルを解凍します。

    2. クライアント資格証明内に提供されているsqlnet.oraファイルを編集し、"?/network/admin"を、クライアント資格証明の解凍先ディレクトリのフルパスに置き換えます。例: 変更前:

      (DIRECTORY="?/network/admin")

      変更後:

      (DIRECTORY="/users/jdoe/adbcredentials")
    3. TNS_ADMIN環境変数を作成し、その値をクライアント資格証明の解凍先ディレクトリのフルパスに設定します。

データベース接続およびSQL文のコーディング

Autonomous DatabaseへのPythonアプリケーション接続をサポートするように開発システムを構成したら、次のガイドラインに従って、データベースへのアプリケーション接続の高パフォーマンスおよび継続的可用性を実現します:

  • 接続プールを使用します。
  • FAN (高速アプリケーション通知)を有効にします。
  • 実行する操作に最も適した事前定義済データベース・サービスを使用します。事前定義済データベース・サービスの詳細は、Autonomous Databaseの事前定義済データベース・サービス名を参照してください。

例:

pool = cx_Oracle.SessionPool("appuser",
                             SampleEnv.GetMainPassword(),
                             "tp_tls",
                             events=True,
                             threaded=True)

この例では、tp_tlsデータベース・サービスへの接続用のプールを作成し、eventsパラメータをTrueに設定してFANを有効にします。

その他のリソース

cx_Oracleの詳細は、cx_Oracleのドキュメント・ページを参照してください。

様々なcx_Oracle機能を示すコード例は、python-cx_Oracle samplesフォルダを参照してください。