Oracle Databaseの場合のOracle Machine Learning for Rのアーキテクチャ

Oracle Machine Learning for Rでは、Oracle DatabaseとOracle Clientに基づくクライアント/サーバー型アーキテクチャが採用されています。

Rエンジンは、サーバー・コンピュータおよび各クライアント・コンピュータ上で動作します。Oracle Machine Learning for Rでは、次の3つの主要機能がサポートされています:

  • Rの透過性

    クライアントにあるOracle Machine Learning for RパッケージではRの透過性がサポートされており、これにより、Oracle表を、ネイティブRオブジェクトであるかのように"透過的"に示すことができます。Oracle Machine Learning for Rパッケージでは、Oracle Database表およびビューへの透過的なアクセスが提供され、ユーザーが標準R関数(データベース内実行のためにユーザーに透過的にSQLに翻訳される)を呼び出せるようになります。

  • 予測分析と機械学習

    Oracle Machine Learning for Rでは、予測分析と機械学習をサポートしている広範囲な並列アルゴリズムと分散アルゴリズムがサポートされています。これにより、スケーラビリティおよびパフォーマンスの向上が可能になり、インデータベース・アルゴリズムおよびデータベース・サーバー側アルゴリズムに対するRインタフェースの使いやすさも向上します。

  • Embedded R Execution

    サーバーにあるOracle Machine Learning for Rのパッケージ、ライブラリ、およびRとSQLのAPIでは、SQL問合せおよびPL/SQL文内でのユーザー定義R関数の実行がサポートされています。埋込みRの実行により、データ・パラレル実行およびタスク・パラレル実行のためにパラレルで実行できるRエンジンが生成されます。埋込みRの実行では、ユーザー定義のR関数を実行できます(サードパーティのパッケージを利用する場合があります)。DBMS_SCHEDULERデータベース・パッケージなどの機能を使用すると、完全自動処理のための、ユーザー定義のR関数の実行をスケジュールできます。

図 - OML4Rのクライアント・サーバー・アーキテクチャ



クライアントとサーバーの通信は、OML4R SQL APIを介して実行できます。たとえば、SQL Developerなどです。これは、構成済のOML4R Rクライアントにすることもできます。

データベースから生成されるOML4Rエンジンは、Oracle Databaseによって管理される外部プロシージャに含まれているRです。この外部プロシージャは、そのデータベースによってコールされるCプログラムです。これは、Rエンジンをトリガーし結果をそのデータベースに返すためのブリッジとして機能します。