7.2.1 オンプレミスOracle Databaseへの接続について
OML4Pyクライアント・コンポーネントは、オンプレミスOracleデータベース・サーバーのOML4Pyサーバー・コンポーネントにPythonセッションを接続します。
この接続により、オンプレミスOracleデータベース・スキーマ内のデータをPythonユーザーが使用できるようになります。さらに、データベース・サーバーの処理能力、メモリーおよび記憶域容量を、OML4Pyクライアント・インタフェースを介してPythonセッションで使用できるようになります。データおよびそれらの機能を使用するには、Oracleデータベース・サーバーへの接続を作成する必要があります。
OML4Pyの自動機械学習(AutoML)機能を使用するには、次を満たす必要があります。
- サーバーで接続プールが実行されている必要があります。
- サーバーで実行されている接続プールを指定するには、
oml.connect
呼出しでautoml
引数を明示的に使用する必要があります。
ノート:
AutoML接続を作成するには、データベース管理者がまず、次のSQL文を発行して、オンプレミスOracleデータベースでデータベース常駐接続プールをアクティブにする必要があります。EXECUTE DBMS_CONNECTION_POOL.START_POOL();
起動したら、データベース管理者が次のコマンドを発行して明示的に停止するまで、接続プールはこの状態のままです。
EXECUTE DBMS_CONNECTION_POOL.STOP_POOL();
ノート:
AutoML接続には、AutoMLを使用しないoml.connect
接続より多くのデータベース・リソースが必要であるため、AutoMLクラスを使用する場合のみ、AutoML接続を作成する必要があります。
ノート:
-
Pythonセッション中にアクティブにできる接続のタイプは1つのみ(AutoMLが有効になっている接続か、有効になっていない接続のいずれか)です。ただし、同じPythonセッションで一方のタイプの接続を終了し、別のタイプを開始することは可能です。いずれかのタイプの接続を終了すると、その接続中にセッションで作成された一時オブジェクトはすべて自動的にクリーン・アップされます。
一方のタイプの接続で作成したオブジェクトを他方のタイプに変更する前に保存する場合は、OML4Pyデータストアにオブジェクトを保存してから、
oml.connect
を再度呼び出します。再接続後にオブジェクトをリロードできます。 oml.connect
関数では、データベース接続にcx_Oracle
Pythonパッケージを使用します。場合によっては、そのパッケージのcx_Oracle.connect
関数を使用してデータベースに接続します。この関数には次のような利点があります。-
複数のデータベースへの複数の接続が可能になります。これは、実行中のEmbedded Python Execution関数で役立つ場合があります。
-
oml.connect
接続で使用できないSQLデータ操作言語(DML)の動作の一部が可能になります
cx_Oracle.connect
関数の詳細は、cx_Oracle
ドキュメントのOracle Databaseへの接続を参照してください。-
OML4Py接続関数
データベース接続に関連するOML4Py関数は次のとおりです。
表7-1 OML4Pyの接続関数
関数 | 説明 |
---|---|
oml.connect |
OracleデータベースへのOML4Py接続を確立します。 |
oml.disconnect |
Oracleデータベース接続を終了します。 |
oml.isconnected |
アクティブなOracleデータベース接続が存在するかどうかを示します。 |
oml.check_embed |
接続されたOracleデータベースでEmbedded Python Executionが有効になっているかどうかを示します。 |