12.2 OML4Py Embedded Python Executionを使用したパラレル処理
OML4Py Embedded Python Executionにより、ユーザーは、Oracle Autonomous Database環境によって生成および制御されるPythonエンジンを使用して、Python、SQLおよびRESTインタフェースからユーザー定義関数を呼び出すことができます。
ユーザー定義関数は、構造化データ、XML、JSON、PNGイメージなどの出力形式を使用して、複数のPythonエンジンを使用してデータ・パラレルおよびタスク・パラレルで起動できます。
Oracle Autonomous Databaseは、ジョブが使用できる並列度を制御することで、システムの負荷を管理する様々なサービス・レベルを提供します。
-
LOW - デフォルト(最大2度の並列度)
-
MEDIUM - 最大4度の並列度で、ジョブ処理の同時実行性が向上する
-
HIGH - 最大8度の並列度であるが、同時ジョブの数が大幅に制限される
パラレル処理は次のものに適用されます。
-
Embedded Python ExecutionのPython APIを使用した
oml.row_apply
、oml.group_apply
およびoml.index_apply
-
Embedded Python ExecutionのSQL APIを使用した
pyqRowEval
、pyqGroupEval
および*pyqIndexEval
-
Embedded Python ExecutionのREST APIを使用した
row-apply
,group-apply
,index-apply
ノート:
pyqIndexEval
は、Oracle Autonomous Databaseでのみ使用できます。
Embedded Python Executionを使用したパラレル処理の設定
Embedded Python ExecutionのADB Python APIの場合:
parallelパラメータは、Embedded Python Executionジョブで使用する推奨並列度を指定します。次の値のいずれかを指定できます。
- 特定の並列度では、1以上の正の整数
- 並列度なしの場合は
False
、None
または0
- デフォルトのデータ並列度の場合は
True
引数parallel=True
の設定は、ノートブック・インタプリタで定義されたサービス・レベルに対応します。引数parallel=x
は、サービス・レベルによって制限されます。たとえば、MEDIUMサービス・レベルで許可されるパラレル・エンジンの最大数は4であるため、parallel=6
を選択すると、実質的にparallel=4
になります。
Embedded Python ExecutionのADB SQL APIの場合:
引数oml_parallel_flag
とoml_service_level
を一緒に使用すると、データのパラレル処理とタスクのパラレル処理を有効にできます。詳細は、特殊制御引数(Autonomous Database)を参照してください。
Embedded Python ExecutionのADB REST APIの場合:
REST API Embedded Python Execution関数を実行する場合、service
引数を使用して、使用するAutonomous Databaseサービス・レベルを選択できます。たとえば、parallelFlag
は、データベースのパラレル処理をMEDIUMサービスとともに使用するためにtrue
に設定されます。
-d '{"parallelFlag":true,"service":"MEDIUM"}'
詳細は、サービス・レベルの指定を参照してください。
親トピック: Embedded Python Execution