10.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