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 SQL APIを介して実行できます。たとえば、SQL Developerなどです。これは、構成済のOML4R Rクライアントにすることもできます。
データベースから生成されるOML4Rエンジンは、Oracle Databaseによって管理される外部プロシージャに含まれているRです。この外部プロシージャは、そのデータベースによってコールされるCプログラムです。これは、Rエンジンをトリガーし結果をそのデータベースに返すためのブリッジとして機能します。