64
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Oracle Advanced Analytics Oracle R Enterpriseの使い方 データベースで大量データ分析をするために 日本オラクル株式会社

Oracle R Enterprise の使い方

  • View
    1.197

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle Advanced Analytics Oracle R Enterpriseの使い方 ~ データベースで大量データ分析をするために ~

日本オラクル株式会社

Page 2: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 2

Safe Harbor Statement

以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。 オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。 Oracleは、米国オラクル・コーポレーション及びその子会社、関連会社の米国及びその他の国における登録商標または商標です。 他社名又は製品名は、それぞれ各社の商標である場合があります。

Page 3: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Agenda

Oracle R Enterprise概要

Oracle R Enterpriseのアーキテクチャ

Oracle R Enterpriseの実行方式

Oracle R Enterpriseの使い方

まとめ

3

素材のプチッチ http://putiya.com/

イラストわんパグ http://www.wanpug.com/

Page 4: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Big Data Management System

4

SOU

RC

ES

DATA RESERVOIR DATA WAREHOUSE

Oracle Database

Oracle Industry Models

Oracle Advanced Analytics

Oracle Spatial & Graph

Big Data Appliance

Apache Flume

Oracle GoldenGate

Oracle Event Processing

Cloudera Hadoop

Oracle Big Data SQL

Oracle NoSQL

Oracle R Distribution

Oracle Big Data Spatial and Graph

Oracle Database

In-Memory, Multi-tenant

Oracle Industry Models

Oracle Advanced Analytics

Oracle Spatial and Graph

Exadata

Oracle GoldenGate

Oracle Event Processing

Oracle Data Integrator

Oracle Big Data Connectors

Oracle Data Integrator B

Page 5: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle Database Enterprise Edition Advanced Analytics

Oracle Data Mining

• データベース内部でマイニング処理 • 12個のマイニング・アルゴリズム • 予測分析のためのアプリケーションの開発 • Oracle Data Miner (SQL Developer) を 用いたGUIによる解析ワークフローの構築

• PL/SQL API と Java API の提供 • Exadataのパワーを利用したモデルの生成

Oracle Advanced Analytics オプション 高度な分析プラットフォームをデータベースに内包

Oracle R Enterprise

• オープンソースの統計言語 • 一部の処理をデータベースにオフロード することで大規模なデータを分析可能

• 広範で高度な統計解析のための関数を提供 • Rの機能をアプリケーションやOBIEEに統合 • 対話的なデータ分析と優れたグラフ描画機能 • オープンソースRパッケージ (CRAN) の利用

5

Page 6: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle Advanced Analytics 製品概要

6

ODM/ORE 共通のメリット

• In-Database Analyticsの実現

–データ移動コスト(時間)をカット

–パワフルなデータベースサーバ内で処理

•堅牢なDBセキュリティによるデータ保護

用途 –大量データ,全量データに対する分析

–生データでのリアルタイムな分析

他オプションや製品との連携で更に高度な分析が可能 ・Big Data Appliance ・Big Data SQL ・Big Data Connecters ・Spatial and Graph etc..

ビッグデータ時代の エンタープライズな 分析基盤を提供

Page 7: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle Advanced Analytics - Oracle R Enterprise Oracle R Enterprise 製品概要

7

特長

• Rでの分析処理をデータベースへオフロード

–データ移動コスト(時間)をカット

–パワフルなデータベースサーバ内で処理

•エンタープライズなRユーザのための機能

–R関数の並列実行のためのインターフェイスを用意

–Rオブジェクト、モデルをDBに保存、Rからデータベースの操作も可能

–Oracle Data Mining機能をRから呼び出して利用が可能

–大規模分析のため並列処理実装されたR関数(オリジナルパッケージ)

デスクトップ利用のRの限界を超え、大規模なデータセットでの利用を可能に

Page 8: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

補足: Oracle R Distribution Oracle R Distribution

8

• Oracle は Rのディストリビューターです

–Oracle は Rのディストリビューションを提供しています

• Oracle R Distribution(ORD)はRに対して性能面の改善や拡張を行ったものになります

• ORDは無償でご利用頂けます

※ディストリビューションとはOSSのソフトウェアなどをパッケージングし利用しやすい形態で提供/配布しているものになります。Linuxの場合、Red Hat Linux, Debian, Ubuntu, SUSEなどがあります。

Oracle R Distribution http://www.oracle.com/technetwork/database/database-technologies/r/r-distribution/downloads/index.html

Page 9: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Agenda

Oracle R Enterprise概要

Oracle R Enterpriseのアーキテクチャ

Oracle R Enterpriseの実行方式

Oracle R Enterpriseの使い方

まとめ

9

イラストわんパグ http://www.wanpug.com/

Page 10: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterprise アーキテクチャ R言語の処理を透過的にOracle Database内で実行します。

R言語の処理をOracle Database内の処理に変換することで、大規模な分析を実現します。 またDB内処理に変換できない部分もDBサーバ上でRプロセスを実行します。

R Engine R Engine R Engine

Rの処理をDB内の処理に変換・オフロードします

Oracle R Enterprise packages

R Engine

Oracle R Enterprise packages

SQL R

結果 結果

DBサーバ内で外部プロセスとしてRを実行することも可能です

Other R packages

Rクライアント

• RスクリプトをOracle Databaseで実行するようにスクリプトを発行します。

• グラフの描画や処理フローの制御は、通常のRの機能を利用し、クライアント側で実行します。

Oracle Database内部での実行

• Rの関数をSQLに変換して実行します。

• Oracle Databaseの並列実行の仕組みを活用し、大量のデータに対応します。

• Oracle Databaseの持つ統計関数、データマイニング機能を内部的に活用します。

Oracle DatabaseサーバでのR実行

• データベースが複数のRのプロセスをデータベースサーバ上に外部プロセスとして起動しますので、追加機器が不要です。

• SQLやPL/SQLからRのスクリプトを呼び出し可能です。

分析者 DB

Oracle DB サーバ

外部 プロセス

Other R packages

10

Page 11: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterprise アーキテクチャ 全体感:コンポーネント

11

Server Side Client Side

OS

Oracle R Distribution

Open R (/w shared

lib,lapack..)※

Oracle R Enterprise Client Oracle

DB Client

OS

Oracle R Enterprise supporting Packages

Oracle R Distribution

Open R (/w shared

lib,lapack..)※

Oracle R Enterprise Server

Oracle R Enterprise supporting Packages

Oracle DB /w AA

Page 12: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterprise アーキテクチャ 全体感:コンポーネント:OS

12

Server Side Client Side

OS

Oracle R Distribution

Open R (/w shared

lib,lapack..)※

Oracle R Enterprise Client Oracle

DB Client

OS

Oracle R Enterprise supporting Packages

Oracle R Distribution

Open R (/w shared

lib,lapack..)※

Oracle R Enterprise Server

Oracle R Enterprise supporting Packages

Oracle DB /w AA

OSについてはマニュアルのシステム要件に記載がございます。ORE 1.5の場合、どのOSに関しても 64 bit版であることが必須となります。詳しくは下記をご覧ください。Oracle Enterprise Linuxの場合にはyumのレポジトリがあり、セットアップが少し効率的です。 https://docs.oracle.com/cd/E67822_01/OREAD/intro.htm#OREAD120

Page 13: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterprise アーキテクチャ 全体感:コンポーネント:Rの動作環境

13

Server Side Client Side

OS

Oracle R Distribution

Open R (/w shared

lib,lapack..)※

Oracle R Enterprise Client Oracle

DB Client

OS

Oracle R Enterprise supporting Packages

Oracle R Distribution

Open R (/w shared

lib,lapack..)※

Oracle R Enterprise Server

Oracle R Enterprise supporting Packages

Oracle DB /w AA

Rの動作環境及び基本機能を提供する部分です。 Oracle R Distributionをご利用頂くとスムースですが、Open R を利用することも可能です。Open R を利用する際には ソースからのbuildが必要となるケースがあります。 ※マニュアルに記載がありますが、linpackの利用やshlibの利用などを有効にしてbuildする必要があります

Page 14: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterprise アーキテクチャ 全体感:コンポーネント:Oracle R Enterprise Client

14

Server Side Client Side

OS

Oracle R Distribution

Open R (/w shared

lib,lapack..)※

Oracle R Enterprise Client Oracle

DB Client

OS

Oracle R Enterprise supporting Packages

Oracle R Distribution

Open R (/w shared

lib,lapack..)※

Oracle R Enterprise Server

Oracle R Enterprise supporting Packages

Oracle DB /w AA

Oracle R Enterprise Clientには OREの基本パッケージやR関数のSQL変換wraperとなるパッケージ、一部RパッケージのOracle実装版、ORE独自機能、Oracle Data Mining機能の呼び出しなどのRパッケージが含まれます。 含まれるパッケージ(一部抜粋) - ORE (トップレベルパッケージ) - OREbase (Rのbase相当) - OREcommon(OREの共通低レベル機能/DB接続や操作など) - OREdm(Oracle Data Mining用のアルゴリズム利用) - OREeda(探索型データ解析用パッケージ) - OREgraphics(Rのgraphics相当) など

Page 15: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterprise アーキテクチャ 全体感:コンポーネント:Oracle R Enterprise Supporting Packages

15

Server Side Client Side

OS

Oracle R Distribution

Open R (/w shared

lib,lapack..)※

Oracle R Enterprise Client Oracle

DB Client

OS

Oracle R Enterprise supporting Packages

Oracle R Distribution

Open R (/w shared

lib,lapack..)※

Oracle R Enterprise Server

Oracle R Enterprise supporting Packages

Oracle DB /w AA Oracle R Enterprise Supporting Packageには、Oracle Database 通信用のインターフェ

イス定義やOCIインターフェイス、R関数のOracle実装などのパッケージが含まれます。これはServer, Clientともに共通になります。 含まれるパッケージ(一部抜粋) - DBI(データベース通信インターフェイス),ROracle(OCIインターフェイス),Cairo(グラフィックスのレンダリング),png(png画像の読み込み、書き込み用)など

Page 16: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterprise アーキテクチャ 全体感:コンポーネント:Oracle Database Client

16

Server Side Client Side

OS

Oracle R Distribution

Open R (/w shared

lib,lapack..)※

Oracle R Enterprise Client Oracle

DB Client

OS

Oracle R Enterprise supporting Packages

Oracle R Distribution

Open R (/w shared

lib,lapack..)※

Oracle R Enterprise Server

Oracle R Enterprise supporting Packages

Oracle DB /w AA

Oracle Database Client はOracle Databaseのクライアントライブラリを含み、Rからのデータベース接続(OCI)用のNativeライブラリを提供します。(実際にはDynamic Linkerでリンクされ利用されます)

Page 17: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterprise アーキテクチャ 全体感:コンポーネント:Oracle Database Client

17

Server Side Client Side

OS

Oracle R Distribution

Open R (/w shared

lib,lapack..)※

Oracle R Enterprise Client Oracle

DB Client

OS

Oracle R Enterprise supporting Packages

Oracle R Distribution

Open R (/w shared

lib,lapack..)※

Oracle R Enterprise Server

Oracle R Enterprise supporting Packages

Oracle DB /w

ORE Server

Oracle R Enterprise Server は Oracle R Enterprise用のRパッケージとOracleデータベース内のスキーマ(RQSYS)やプロシージャ、操作権限などのメタデータ群で構成されます。 これらを用いてRオブジェクトをデータベースに格納したり、埋め込みRによる実行などを実現しています。 Rパッケージとしては、ORE Clientに OREserverパッケージが加わっています。

Page 18: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

ご参考:ORE 1.5 matrix Oracle R Enterprise Server Support Matrix Oracle R Enterprise

Open source R or Oracle R Distribution

Oracle Database (see Note)

1.5 3.2.x 11.2.0.4, 12.1.0.1, 12.1.0.2

1.4.1 3.0.1, 3.1.1 11.2.0.3, 11.2.0.4, 12.1.0.1

1.4 3.0.1, 3.1.1 11.2.0.3, 11.2.0.4, 12.1.0.1

1.3.1 2.15.1, 2.15.2, 2.15.3 11.2.0.3, 11.2.0.4, 12.1.0.1

1.3 2.15.1 11.2.0.3, 11.2.0.4, 12.1.0.1

1.2 2.15.1 11.2.0.3, 11.2.0.4, 12.1.0.1

1.1 2.13.2 11.2.0.3, 11.2.0.4, 12.1.0.1

1.0 2.13.2 11.2.0.3, 11.2.0.4, 12.1.0.1

18

R Enterprise Installation and Administration Guide - Oracle R Enterprise System Requirements https://docs.oracle.com/cd/E67822_01/OREAD/intro.htm#OREAD335

Page 19: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Agenda

Oracle R Enterprise概要

Oracle R Enterpriseのアーキテクチャ

Oracle R Enterpriseの実行方式

Oracle R Enterpriseの使い方

まとめ

19

: 素材のプチッチ http://putiya.com/

イラストわんパグ http://www.wanpug.com/

Page 20: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterpriseの実行方式 概要

うまく組み合わせ活用することで分析処理を高速にできます

主たる機能は以下になります –大量データ処理の分割による並列化

–DB内でのデータアクセス、演算

スクリプト実装時に以下を意識していると少しスムースです

•どこにデータがあるのか

•どこで実行するのか

•データは分割利用可能か

•処理順の依存性や冪等性

20

Page 21: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterpriseの実行方式 全体感

• OREでの主要な実行方式は3種類あります

• OREでの関数の実装形態によって選択肢の有無が変わります

• 実行方式

– 透過型実行

– 埋め込み型(Embeded)実行

– クライアント実行(ore.pullの利用)

• 実装形態

– 透過型の実装( cor, mean,IQR,table,head...)

– オリジナル実装 (ore.neural, ore.m,ore.glmなどのore.xx)

– ORE実装無し

21

※DB内のデータにアクセスする前提で記述しています。DBのデータをクライアントにコピー(代入)して実行する場合には、通常のRと同じです

Page 22: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterpriseの実行方式 実行方式概略

•透過型実行

–データベースのデータをRプログラムから透過的に利用する実行方式です • data.frameの指定にOracleの表やDB上のオブジェクトを指定できます

•埋め込み型(Embeded)実行

–データベース側にスクリプトを送り込んでデータベースで実行する方式です • データベースサーバ内で外部プロシージャ形式でRが起動します

•クライアント実行(ore.pullの利用)

–データベースのデータをクライアントに持ってきて実行する方式です • OREのメリットはあまりないですが、使用感に差がでにくいです

22

Page 23: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterpriseの実行方式 実装形態概略

•透過型の実装( cor, mean,IQR,table,head...) – Rの関数と同名の関数で透過的にデータベースのデータを利用し、処理をデータベースへオフロードできます

– 関数名の書き換えはほぼ発生しません (一部オプションの非対応などがあります)

•オリジナル実装 (ore.neural, ore.lm,ore.glmなど) – Oracleが独自に実装した機能群になります

– データベースのデータを利用し、処理をデータベースへオフロードすることができますが、R関数と書式などに違いがある場合があります

• ORE実装無し

–Oracleが実装を提供していない関数になります

23

Page 24: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

ご参考:サポートされるR演算子およびR関数(ORE 1.4.1) • 数学的変換: abs、sign、sqrt、ceiling、floor、trunc、cummax、cummin、

cumprod、cumsum、log、 loglo、log10、log2、log1p、acos、acosh、asin、asinh、atan、atanh、exp、expm1、cos、 cosh、sin、sinh、tan、atan2、tanh、gamma、lgamma、digamma、trigamma、factorial、 lfactorial、round、signif、pmin、pmax、zapsmall、rank、diff、besselI、besselJ、 besselK、besselY

• 基本統計: mean、summary、min、max、sum、any、all、median、range、IQR、fivenum、mad、quantile、 sd、var、table、tabulate、rowSums、colSums、rowMeans、colMeans、cor、cov

• 算術演算子: +、-、*、/、^、%%、%/%

• 比較演算子: ==、>、<、!=、<=、>=

• 論理演算子: &、|、xor

• 集合演算子: unique、%in%、subset

• 文字列演算: tolower、toupper、casefold、toString、chartr、sub、gsub、substr、substring、paste、nchar、grepl

• データ・フレームの結合: cbind、rbind、merge

• ベクトルの結合: append

• ベクトルの作成: ifelse

• サブセットの選択: [、[[、$、head、tail、window、subset、Filter、na.omit、na.exclude、complete.cases

• サブセットの置換: [<-、[[<-、$<-

• データの再編成: split、unlist

• データ処理: eval、with、within、transform

• applyのバリアント: tapply、aggregate、by

• 特別な値のチェック: is.na、is.finite、is.infinite、is.nan

• メタデータ関数: nrow、NROW、ncol、NCOL、nlevels、names、names<-、row、col、dimnames、 dimnames<-、dim、length、row.names、row.names<-、rownames、 rownames<-、colnames、levels、reorder

• グラフィック: arrows、boxplot、cdplot、co.intervals、coplot、hist、identify、lines、matlines、 matplot、matpoints、pairs、plot、points、polygon、polypath、rug、segments、 smoothScatter、sunflowerplot、symbols、text、xspline、xy.coords

• 変換関数: as.logical、as.integer、as.numeric、as.character、as.vector、as.factor、as.data.frame

• 型チェック関数: is.logical、is.integer、is.numeric、is.character、is.vector、is.factor、is.data.frame

• 文字の操作: nchar、tolower、toupper、casefold、chartr、sub、gsub、substr

• その他のore.frame関数: data.frame、max.col、scale

• 仮説検定: binom.test、chisq.test、ks.test、prop.test、t.test、var.test、wilcox.test

• 各種分布: 密度、累積分布、および標準分布のクォンタイル関数

• ore.matrix関数: show、is.matrix、as.matrix、%*% (マトリクスの乗算)、t、crossprod (マトリクスのクロス積)、tcrossprod (BをA回転置したマトリクスのクロス積)、solve (反転)、backsolve、forwardsolve、すべての適切な算術関数(abs、signなど)、summary (max、min、allなど)、mean

24

これらに加えてオリジナル実装系の関数があります ex: ore.lm, ore.glm,ore.neural,ore.predictなど...

Page 25: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterpriseの実行形式 実装形態と実行形式

•データベース内のデータに対する実行方式と実装形態の対応 – 書き方などで対応させることができるものもありますが、概ね以下の通りです。

25

関数の種類(実装形態) 実行方式

透過型実行 埋め込み型実行 クライアント実行

透過型の実装 ◎ ◎ ×△

オリジナル実装 ◎ ◎ 〇

ORE実装なし × 〇 △

凡例:◎ =OREのメリット(DB内データ処理、並列処理)を生かせる 〇 =OREのメリットを部分的に生かせる △ = OREのメリットがあまり生かせないが実行はできる × = 実行ができない

Page 26: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

補足:ore.frame 大量データをDB内で処理させるための仕組み

• 実行方式が分類される理由はデータのクラスの違いにあります

– データベース内のデータをクライアントに持ってくることなく処理させるための実装です

• ore.frameというdata.frameの subclassを定義しています

– ore.frameを利用できる関数に関してはマニュアルの以下に記載があります

26

ORE 1.4.1 ユーザーズガイド A Oracle R EnterpriseでサポートされるR演算子およびR関数 http://docs.oracle.com/cd/E59151_01/doc.141/e57720/appaopf.htm#CIHFJAAF ORE 1.5 User's Guide R Operators and Functions Supported by Oracle R Enterprise https://docs.oracle.com/cd/E67822_01/OREUG/GUID-C3F098F0-EE9F-45CB-B9F5-C8D4AF963D90.htm#OREUG566

Client R 環境 ore.frame DB 表

SQL

> class(TITANIC01) [1] "ore.frame" attr(,"package") [1] "OREbase" > colnames(TITANIC01) [1] "Class" "Sex" "Age" "Survived" "Freq" > mean(TITANIC01$Freq) [1] 68.78125

ORE実装の関数は適宜データアクセス部などをSQLに変換し結果だけを貰うプロキシのような役割を果たします

Page 27: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

•関数のデータ指定部に表などのDBオブジェクトを指定できます

• 表以外にもDBやDBセッションに保存されたRオブジェクトなども対象にできます

–ユーザからの見え方では ore.frameが data部にそのまま使える形になります

• DB内でデータを取り扱い、処理もDBにオフロードされます

Client

Oracle R Enterpriseの実行形式 透過型実行

27

R Client ( RStudioなど)

Server

Oracle DB

SQL

結果セット

長所: ・データ移動コスト無(結果セット除く) ・データアクセスの並列化 ・分析並列化の実装(一部関数) ・DBサーバリソースの活用 弱点: ・対応関数のみ ・書き換えが必要なケースあり ・データが小さいとメリットが見えない

Page 28: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

•スクリプトや関数をDBに送り込み、DBサーバ上でRを実行します

–外部プロシージャコールでDB上のRが動作するイメージです • 透過型実行可能な関数をこの形式で動かすこともできます

–DBサーバにRパッケージを追加することで色々なパッケージに対応できます。

–また保存済みスクリプトをSQL/トリガーなどから実行することもできます

Client

Oracle R Enterpriseの実行形式 埋め込み型実行

28

R Client ( RStudioなど)

Server

Oracle DB Rプロセス

結果セット

外部プロシージャ SQL Client

スクリプト

exec

長所: ・データ移動コスト小 ・データアクセスの並列化 ・分析並列化の実装(一部関数) ・DBサーバリソースの活用 弱点: ・DBサーバリソース活用以外にメリットが無いケースがある

Page 29: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

•データを分割し複数のRプロセスを起動し並列処理させることができます

–オラクル提供外のパッケージの処理も高速化できる可能性があります • 特に行単位の処理(例:モデルを利用したデータの分類など)では特に威力を発揮します

Client

Oracle R Enterpriseの実行形式 埋め込み型実行(応用): Apply Interface

29

R Client ( RStudioなど)

Server

Oracle DB

結果セット

SQL Client

スクリプト

exec

Rプロセス 外部プロシージャ

外部プロシージャ

外部プロシージャ

長所: ・分析結果の適用を高速化 ・DBサーバリソースをフル活用 弱点: ・データ分割が不可なものでは利用できない

Rプロセス Rプロセス

Page 30: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

•データをDBからクライアントに持ってきて、処理を実行します

–ore.pull関数でDB上のデータを取得しRのdata.frameに強制Castします

–DBへの処理オフロードもされず、データの移動も発生しクライアントにも負荷がかかりますが、通常のRの使い方(doGetQuery)に似ています

Client

Oracle R Enterpriseの実行形式 クライアント型実行

30

R Client ( RStudioなど)

Server

Oracle DB 処理

データ

※埋め込み型実行の場合にもore.pullの利用が必要な場合があります

長所: ・既存スクリプトがそのまま使える ・わかりやすい 弱点: ・OREのメリットは皆無

Page 31: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterpriseの実行方式 実行方式選択の指針

OREのメリットを享受するために以下の優先度で考えます

•大規模データ処理を優先的にDB側の実行に置き換えます

• Oracleが実装を提供している関数の利用をご検討ください

–透過型の実装のある関数 (cor, meanなど)

–Oracle実装パッケージ ore.xx (ore.neuralなど)

–いずれもない場合 • 埋め込み型での実行 ( 非サポート関数のデータベースでの実行 )

• ore.pull()を利用した実行

クライアント側メモリで利用可能な範囲のデータに対して分析をする際にはORE利用によるメリットは度外視し、クライアント型実行を選択して頂く方がよいケースもあります

31

Page 32: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterpriseの実行方式 まとめ

• OREの実装形態によって可能な実行方式に差があります

–全てがOracle提供のものでできない場合にもなるべくOracle実装のものを利用する(特に大規模なデータ処理部分など)ことでより高速に処理することが可能となります

–スクリプトをそのまま利用したい場合には埋め込み型実行もご検討ください

32

関数の種類(実装形態) 実行方式

透過型実行 埋め込み型実行 クライアント実行

透過型の実装 ◎ ◎ ×△

オリジナル実装 ◎ ◎ 〇

ORE実装なし × 〇 △

Page 33: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Agenda

Oracle R Enterprise概要

Oracle R Enterpriseのアーキテクチャ

Oracle R Enterpriseの実行方式

Oracle R Enterpriseの使い方

まとめ

33

: 素材のプチッチ http://putiya.com/

イラストわんパグ http://www.wanpug.com/

Page 34: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterprise の使い方 全体感

•基本操作

–OREの機能を使う基本的な操作方法をご紹介します

•透過型実行

•埋め込み型実行

•クライアント型実行

34

Page 35: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterprise の使い方 基本操作:接続と確認

• Oracleデータベースへの接続

–OREライブラリのロード

–データベースへの接続 (ore.connect)

• ore.frame(DB上のデータへのプロキシ)の確認

–上記で all=TRUEとした場合、スキーマの表名などがそのまま見えます

35

library(ORE)

ore.connect(

user="scott",sid="orcl",host="dbserv",password="tiger",port=1521,all=TRUE)

ore.ls()

※all=TRUEとすると接続時に当該スキーマのオブジェクト(表,Viewなど)がore.frameクラスで生成されます

Page 36: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterprise の使い方 基本操作:SQLクエリの実行など

• ore.execを利用してOracleにSQLを投げられます。 – クエリの結果セットを持ってこない(※)ので一旦表に入れるなどの工夫が必要です

• selectの結果をhoge01に入れたい時

– こんな感じの使い方でデータの切り出し操作や変換もDB内で完結できます • select句にSQLの変換関数を利用することで様々な変換が可能です

• ore.syncを利用してore.frameの作成や再定義ができます

–引数なしで実行した場合には全てのオブジェクトがrefreshされます – 実体の表のデータの変更への追従にはsyncの必要はありませんが、表構造の変更にはore.syncによる明示的な同期が必要になります(列追加など)

36

× hoge01 <- ore.exec(" select sysdate ts from dual ")

〇 ore.exec("create table hoge01 as select sysdate ts from dual ")

※不用意にDBのデータをローカルに持ってこないためです

Page 37: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

• ore.pushでローカルにあるRオブジェクトをDB側に置きます

– このオブジェクトはセッション内のみ有効です

– data.frameオブジェクトをDBに置き、ore.frameにCASTしています

– これを利用することでore.frameを引数とする関数が使えます

• ore.pullでDB上のオブジェクトをローカルに持ってこれます

– クライアントのメモリが十分にない場合、失敗します

– これを利用することでore.frameに対応してない関数を動作させることができます

Oracle R Enterprise の使い方 基本操作:データの移動

37

test01db <- ore.push(test01)

> class(test01) [1] "data.frame" > test01db <- ore.push(test01) > class(test01db) [1] "ore.frame" attr(,"package") [1] "OREbase"

yabou_local <- ore.pull(YABOU03)

test01というローカルデータをtest01dbとしてDBに保持します

YABOU03表の中身をyabou_localに持ってきます

Page 38: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterprise の使い方 基本操作:表/Viewの作成と削除

• ore.createでローカルのデータをDBに表/Viewで作成できます

• ore.dropで表/Viewの削除ができます

38

ore.create(yabou01,table="YABOU02") ローカルのデータ(data.frame)のyabou01をYABOU02表としてDB上に作成します

ore.create(YABOU02,view="YABOU03") DB上の表(ore.frame)YABOU02をYABOU03 View としてDB上に作成します

ore.drop(table="YABOU02") DB上の表(ore.frame)YABOU02表を削除します

ore.drop(view="YABOU03") DB上のView(ore.frame)YABOU03 Viewを削除します

Page 39: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterprise の使い方 基本操作:データストアの操作:全貌

• DB上にデータストアを作成しオブジェクトを格納できます

–保存したデータを読み込んだり操作することができます

–1つのデータストアに複数のデータを入れることができます • 通常のRワークスペースで保存できないore.frameオブジェクトも保存することができます

•データストアの操作用関数

39

関数 説明

ore.save Rオブジェクトを新規または既存のデータストアに保存します。

ore.load データストアからオブジェクトをR環境にリストアします。

ore.lazyLoad データストアからオブジェクトをR環境に遅延リストアします。

ore.delete 現行のOracle Databaseスキーマからデータストアを削除します。

ore.datastore 現行のOracle Databaseスキーマのデータストアに関する情報をリストします。

ore.datastoreSummary 現行のOracle Databaseスキーマの指定したデータストアに関する詳細な情報を提供します。

Page 40: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterprise の使い方 基本操作:データストアの操作

• ore.saveでデータストアの作成と同時にデータの保存ができます

–ore.datastoreでデータストアを確認できます

– ore.datastoreSummaryでデータストアの中身が確認できます

40

ore.save(yabou01,YABOU03,name="yabou_20160126",description="2016/01/26 using")

yabou01(クライアント上のRオブジェクト(data.frame) と YABOU03(DB上の表(ore.frame) をyabou_20160126というデータストア名で保存しています。

ore.datastore()

datastore.name object.count size creation.date description

1 mydata01 2 1512 2016-01-08 13:06:50 test data for save

2 solmatch 1 812081 2016-01-13 17:34:18 Confidential data

3 yabou_20160126 1 153720 2016-01-27 21:22:27 2016/01/26 using

ore.datastoreSummary("yabou_20160126")

object.name class size length row.count col.count

1 yabou01 data.frame 153720 22 1192 22

2 YABOU03 ore.frame 2130 24 NA 24

Page 41: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterprise の使い方 基本操作:データストアの操作

• ore.loadでデータストアの読み込みができます

–ore.deleteでデータストアを削除できます

41

ore.load(name="yabou_20160126")

yabou_20160126というデータストアを読み込みます。

ore.delete(name="yabou_20160126")

yabou_20160126というデータストアを削除します

Page 42: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterprise の使い方 全体感

•基本操作

–OREの機能を使う基本的な操作方法をご紹介します

•透過型実行

•埋め込み型実行

•クライアント型実行

42

Page 43: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

•大抵、利用時にdata.frameの代わりにore.frameを指定するだけなので、特別何かすることはあまりありません。

–Oracleで実装済みの関数で構成されているかが問題になるケースがあります • CRANから入れるパッケージはほぼこのモードで動作しません

• パッケージによりエラーは異なりますが、「型が違うよ」的なものが多いです

この場合、要件に応じた対応が必要となります

Oracle R Enterprise の使い方 透過型実行

43

> glm(TOTAL~.,data=YABOU_PARAM)

Error in terms.formula(formula, data = data) :

'data' argument is of the wrong type

Page 44: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

以下のいずれかの対応が必要になります

• Oracle提供のパッケージへの書き換え(工数:小~大) – lm の場合 ore.lm

– glm の場合 ore.glm / ore.odmGLM など、、

•他の実行形式の利用

–埋め込み型実行の利用(工数:小) • 後述の方式で実行します

–クライアント型実行の利用 (工数:小~中) • 後述しますが、ore.pullを利用してローカル変数化するか、入れ込むかになります

Oracle R Enterprise の使い方 透過型実行:非対応関数への対処

44

Page 45: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterprise の使い方 全体感

•基本操作

–OREの機能を使う基本的な操作方法をご紹介します

•透過型実行

•埋め込み型実行

•クライアント型実行

45

Page 46: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

• DBサーバ上にインストールされたRが実行されます

–そのためDBサーバへのRパッケージの追加が必要となるケースがあります • Oracle実装関数も利用可能です

–Rスクリプトをレポジトリに保存することでOracle ClientやトリガーなどのSQLインターフェイスからRのスクリプトの実行が可能になります

•データを分割(パーティショニング)して複数のRプロセスで並列同時実行するインターフェイスをご用意しています

• OREが提供するインターフェイスは基本的なものになります

–うまく組み合わせることで高速化や大量データ分析に威力を発揮します

Oracle R Enterprise の使い方 埋め込み型実行

46

Page 47: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

•埋め込み型実行の際に起動される外部プロシージャの設定情報は以下のsys.rq_config 表から確認できます

•埋め込み型実行の際に利用されるメモリー量などの制御ができます

– sys.rqconfigsetを使います

補足:埋め込み型実行 埋め込み型実行の設定

47

SQL> SELECT * FROM sys.rq_config;

キーワード デフォルト値 説明

MIN_VSIZE 32M 最小のRベクター・ヒープ・メモリー

MAX_VSIZE 4G 最大のRベクター・ヒープ・メモリー

MIN_NSIZE 1M Rコンス・セルの最小値

MAX_NSIZE 20M Rコンス・セルの最大値

SQL> EXEC sys.rqconfigset('MIN_VSIZE', '20M');

Page 48: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

•埋め込み型実行には以下の関数を利用します

Oracle R Enterprise の使い方 埋め込み型実行:関連する関数

48

RのAPI SQLのAPI 説明

ore.scriptCreate sys.rqScriptCreate 指定されたR関数をRスクリプト・リポジトリに指定された名前でロードします。

ore.scriptDrop sys.rqScriptDrop 指定されたR関数をRスクリプト・リポジトリから削除します。

ore.doEval rqEval データを自動転送せずにfを実行します。

ore.indexApply 該当するものはありません。 データの自動転送なしでfを実行しますが、1からnまで(nは関数を呼び出す回数)の呼出しの索引を提供します。データベース・サーバーで稼働するRエンジンのプールでの各f呼出しのパラレル実行をサポートします。

ore.tableApply rqTableEval fの最初の引数として指定された入力ore.frameのすべての行を渡すことでfを実行します。fの最初の引数をdata.frameとして指定します。

ore.rowApply rqRowEval 指定された入力ore.frameの指定された行数(チャンク)を渡すことでfを実行します。各チャンクをfの最初の引数にdata.frameとして指定します。データベースのサーバー側Rエンジンで各f呼出しのパラレル実行をサポートします。

ore.groupApply rqGroupEval この関数は、ユーザーが明示的に定義する必要があります。

グループ化列の値に応じてデータをパーティショニングすることでfを実行します。各データ・パーティションをfの最初の引数にdata.frameとして指定します。データベースのサーバー側Rエンジンで各f呼出しのパラレル実行をサポートします。

管理

実行

Page 49: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

• ore.scriptCreateで関数を作成できます – いきなり差し込み型でもいいですし、当て込んでから入れてもいいです

• ore.scriptDropで関数を削除できます

Oracle R Enterprise の使い方 埋め込み型実行:関連する関数

49

ore.scriptCreate( "testScript_01",

function(){

library(psych)

x <- 1:20

describe(x)

}

)

ore.scriptDrop("testScript_01")

func01 <- function(){

library(psych)

x <- 1:20

describe(x)}

ore.scriptCreate( "testScript_01",

func01

)

Page 50: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

•スクリプトの管理(保存/削除)が必要な場合、権限付与が必要です

•その権利をまとめた RQADMINロールが用意されています (OREのサーバインストール時にロールは作成されています)

–スクリプトを管理するユーザにgrantするだけです

補足:埋め込み型実行 RQADMIN

50

SQL> grant RQADMIM to [対象DBユーザ] ;

Page 51: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

•埋め込み型実行での利用関数は大きく2つに分けられます

•非自動転送タイプ

–データベースから自動的にデータを受け取りません(必要な場合は手書きで対応)

•自動転送タイプ

–データベースから自動的にデータを受け取ります

–引数にそのままDBのオブジェクト(ore.frameなど)の指定ができます

•更に並列化の有無や方式をごとに関数が用意されています

Oracle R Enterprise の使い方 埋め込み型実行:関連する関数

51

Page 52: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

•まとめると以下のようになります

対象データ件数の大きな操作でデータ分割が可能なものはなるべくrowApplyやgroupApplyを利用することで劇的な効果が得られる可能性があります

Oracle R Enterprise の使い方 埋め込み型実行:関連する関数

52

埋め込み実行関数 DBデータ 自動転送 並列実行 データ分割 データ分割方法

ore.doEval × × × N/A

ore.indexApply × 〇 × N/A

ore.tableApply 〇 × × N/A

ore.rowApply 〇 〇 〇 指定行数

ore.groupApply 〇 〇 〇 指定列の値

Page 53: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

•単独単発実行(ore.doEval) – あちらの世界(DBサーバ)で version関数が実行されます

– FUN.NAMEで保存した関数(testScript_01)を指定して実行します

– 普通にRが起動するのでライブラリのロードも入れ込めます

Oracle R Enterprise の使い方 埋め込み型実行:ore.doEval

53

ore.doEval(function(){ version })

res <- ore.doEval( function(){

library(psych)

x <- c(1:10)

describe(x)}

)

ore.doEval(FUN.NAME="testScript_01")

※戻り値resは ore.frameになります

ore.doEval(実行関数)

Page 54: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

•並列繰り返し実行(ore.indexApply) – 日付け取得を3回ほぼ同時並列に実行します

• indexApplyは自動的に並列化され実行されます

• doEvalと同様にFUN.NAMEで保存したスクリプトを指定できます

注意点 • ore.indexApplyの第一引数で関数の実行回数を指定します

• indexApplyに利用する関数は最低1つの引数を必要とします

• 暗黙的に第一引数に自動採番のindex番号が引き渡されます

Oracle R Enterprise の使い方 埋め込み型実行:ore.indexApply

54

ore.indexApply(実行回数, 実行関数)

> ore.indexApply( 3,

function(index){ date()})

$`1`

[1] "Thu Jan 28 19:52:26 2016"

$`2`

[1] "Thu Jan 28 19:52:26 2016"

$`3`

[1] "Thu Jan 28 19:52:26 2016"

ore.indexApply( 3, function(index){ date()})

ore.indexApply( 3, FUN.NAME="testScript_02")

Page 55: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

•単独単発のDB読込実行(ore.tableApply) – YABOU_PARAM表に対してcor(x) を実行する関数を埋め込み型で実行します

• doEvalと同様に保存したスクリプトはFUN.NAMEで指定できます

注意点 – tableApplyに利用する関数は最低1つの引数を必要とします

–関数の第一引数に指定したOREオブジェクト(上記例のYABOU_PARAM)が引き渡されます

–ore.tableApplyではデータは分割されず、並列実行もされません

Oracle R Enterprise の使い方 埋め込み型実行:ore.tableApply

55

ore.tableApply(YABOU_PARAM, function(x){cor(x)})

ore.tableApply(YABOU_PARAM, FUN.NAME="yabouScript01")

ore.tableApply(対象OBJ, 実行関数)

Page 56: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

•指定行数分割によるDB読込並列実行(ore.rowApply) – 以下の例ではYABOU_PARAM表を300件づつ分割し個々の集計結果を戻します

• 結果は分割ごとにリストに入ります(勝手にマージしてくれたりはしないです)

• doEvalと同様に保存したスクリプトはFUN.NAMEで指定できます

注意点 – rowApplyに利用する関数は最低1つの引数を必要とします

–関数の第一引数に指定したOREオブジェクト(上記例のYABOU_PARAM)が引き渡されます

–データは指定行数で分割され並列で実行され、リスト形式で返ります

Oracle R Enterprise の使い方 埋め込み型実行:ore.rowApply

56

ore.rowApply(YABOU_PARAM, function(x){c(sum(x$TOTAL),nrow(x))},rows=300)

ore.rowApply(YABOU_PARAM, FUN.NAME="yabouScript04",rows=300)

ore.rowApply(対象OBJ, 実行関数,rows=行数)

Page 57: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

•列指定分割によるDB読込並列実行(ore.groupApply) – ore.rowApplyの発展版と思うと少し理解しやすいです

• rowApplyでは指定した行数で分割しますが、こちらは指定した列の値によってデータを分割して並列実行します

• doEvalと同様に保存したスクリプトはFUN.NAMEで指定できます

注意点 –groupApplyに利用する関数は最低1つの引数を必要とします

–関数の第一引数に指定したOREオブジェクト(上記例のTEST02)が引き渡されます

–データは指定列の値で分割され並列で関数が実行され、リスト形式で返ります

Oracle R Enterprise の使い方 埋め込み型実行:ore.groupApply

57

ore.groupApply(TEST02,INDEX=TEST02$GENDER,

function(x){c(nrow(x),mean(x$"年齢"))})

ore.groupApply(対象OBJ,対象列, 実行関数)

NO NAME 年齢 性別

10 織田信長 25 男性

22 真田幸隆 22 男性

30 淀君 19 女性

42 木下藤吉郎 24 男性

55 立花誾千代 22 女性

Page 58: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

• 並列実行(rowApply,groupApply,indexApply)の結果はore.listクラスで戻されます

– ore.listクラスはOracle DBにストアされたリストになります

–個々のリストの索引は以下のものになります • indexApply は指定した索引の数字(=試行回数ごと採番)

• rowApply は指定した件数1つづつ採番した数値

• groupApplyは指定した列の値

– ore.listの操作は基本的にRのリストに倣います • ore.pullを利用して普通のRのlistにすることもできます

埋め込み型実行補足:ore.list ore.listについて

58

> test02.ga <- ore.groupApply(TEST02,INDEX=TEST02$性別,function(x){c(nrow(x),mean(x$"年齢"))})

> class(test02.ga)

[1] "ore.list"

attr(,"package")

[1] "OREembed"

> test02.ga

$女性

[1] 14.00000 19.42857

$男性

[1] 6.00000 19.16667

> test02.ga[["女性"]]

[1] 14.00000 19.42857

> test02.ga2 <- ore.pull(test02.ga)

> class(test02.ga2)

[1] "list"

Page 59: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

•埋め込み型実行での利用関数は大きく2つに分けられます

Oracle R Enterprise の使い方 埋め込み型実行

59

埋め込み実行関数 DBデータ 自動転送 並列実行 データ分割 データ分割方法

ore.doEval × × × N/A

ore.indexApply × 〇 × N/A

ore.tableApply 〇 × × N/A

ore.rowApply 〇 〇 〇 指定行数

ore.groupApply 〇 〇 〇 指定列の値

Page 60: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Oracle R Enterprise の使い方 全体感

•基本操作

–OREの機能を使う基本的な操作方法をご紹介します

•透過型実行

•埋め込み型実行

•クライアント型実行

60

Page 61: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

•クライアント型実行は簡単です

–クライアントにデータを持ってきてクライアント上で普通のRのオブジェクトする方法です

– データベース内のデータは通常ストレージ上に格納されていてサイズの大きなものが多く、クライアントのメモリに展開しきれないことがあります。その場合、サンプリングを行うか、埋め込み型などの他の実行形式をご検討ください

•ore.pullするだけです – ore.pullは DB上のオブジェクトのデータをクライアントに持ってきて、標準Rのクラスに強制キャストします

– BRANDIMAGE01表のデータをore.pullして心理統計パッケージのdescribeで見てみます

Oracle R Enterprise の使い方 クライアント型実行

61

x <- ore.pull(BRANDIMAGE01)

describe( x )

describe(ore.pull(BRANDIMAGE01)) =

Page 62: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

Agenda

Oracle R Enterprise概要

Oracle R Enterpriseのアーキテクチャ

Oracle R Enterpriseの実行方式

Oracle R Enterpriseの使い方

まとめ

62

: 素材のプチッチ http://putiya.com/

イラストわんパグ http://www.wanpug.com/

Page 63: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |

•基本的なアーキテクチャと使い方について記載しました

• OREはRに大量データ処理を実現する為の機能を追加しています

–OREはRにオラクルがパッケージを追加し、データベース上で様々な処理を実行させるための機能を盛り込んだものになります

•サーバ側に処理をオフロードする方法を複数用意しています。

•是非、使いこなしていただければ幸いです

まとめ

63

Page 64: Oracle R Enterprise の使い方

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 64