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_applyoml.group_applyおよびoml.index_apply

  • Embedded Python ExecutionのSQL APIを使用したpyqRowEvalpyqGroupEvalおよび*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以上の正の整数
  • 並列度なしの場合はFalseNoneまたは0
  • デフォルトのデータ並列度の場合はTrue

引数parallel=Trueの設定は、ノートブック・インタプリタで定義されたサービス・レベルに対応します。引数parallel=xは、サービス・レベルによって制限されます。たとえば、MEDIUMサービス・レベルで許可されるパラレル・エンジンの最大数は4であるため、parallel=6を選択すると、実質的にparallel=4になります。

Embedded Python ExecutionのADB SQL APIの場合:

引数oml_parallel_flagoml_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"}'
詳細は、サービス・レベルの指定を参照してください。