Oracle R Enterprise透過層は、次の機能を持ちます。
実行前にすべてのRコマンドおよびスクリプトをトラップし、それらをデータベースでの実行用にOracle Databaseに送信する機会を探す。
マップされたデータ型を使用するR式の透過的な祖父母SQLの生成を可能にする。
RコマンドおよびスクリプトをSQL同等物に変換して、Oracle Databaseを高パフォーマンスの計算エンジンとして活用し、問合せの最適化、表索引、遅延評価およびパラレル実行を利用する。
Oracle R Enterprise透過層によって、Rユーザーは、Oracleからそのユーザーのデスクトップ上のRのメモリーにデータをプルすることなく、R構文を使用して、データベースに格納されているオブジェクトを直接操作できます。したがって、Rユーザーはデスクトップ・メモリーで許容される量よりも大きいデータを処理できます。
R言語構文は、Oracle Databaseオブジェクトにマップされているオブジェクトに対してサポートされています。
この章では、透過層で提供される機能について説明します。この章の内容は次のとおりです。
次のRデータ型が、オーバーロードされており、データベース・オブジェクトにマップされ、データベース内での実行が可能になっています。
文字、整数、数値および論理ベクトル
ファクタ
データ・フレーム
マトリクスは、次の2つの状況でオーバーロードされます。
線形代数クロス積
高度な分析のための入力マトリクスの作成
class(object)
は、そのようなマップされたオブジェクトのデータ型をレポートします。たとえば、表NARROWに列AGEがあり、AGEが数値の場合は、次のようになります。
R> class(NARROW$AGE) [1] "ore.numeric" attr(,"package") [1] "OREbase"
この項では、Oracle Databaseでの日時データ型のサポート状況、およびこれらのデータ型をOracle R Enterpriseで使用する方法について説明します。
Oracle Databaseでは、次の日時データ型がサポートされています。
DATE
データ型は、日付および時刻の情報を格納するために使用します。各DATE
値に対して、OracleはフィールドYEAR
、MONTH
、DAY
、HOUR
、MINUTE
およびSECOND
を格納します。
有効な日付範囲は紀元前4712年1月1日から紀元9999年12月31日です。
TIMESTAMP
データ型は、DATE
データ型の拡張機能です。DATE
データ型の年、月および日に加えて、時、分および秒の値を格納します。オプションのfractional_seconds_precision
(DATE
のSECOND
フィールドの小数部の桁数)がサポートされます。0から9の桁数を指定できます(デフォルトは6桁)。
TIMESTAMP
には2つの拡張があります。
TIMESTAMP WITH TIME ZONE
は、TIMESTAMP
と、タイムゾーンの置換え値TIMEZONE_HOUR
およびTIMEZONE_MINUTE
をあわせ持ちます。
TIMESTAMP WITH LOCAL TIME ZONE
は、データベースへの格納時にデータベースのタイムゾーンに対して正規化されるデータを持つTIMESTAMP WITH TIME ZONE
です。データは取得時、セッションのタイムゾーンで表示されます。
INTERVAL YEAR TO MONTH
では、YEAR
およびMONTH
フィールドを使用して期間が格納されます。このデータ型は、年および月の値のみが重要な場合に、2つの日時の値の違いを表す場合に有効です。
INTERVAL DAY TO SECOND
では、期間が日、時間、分および秒単位で格納されます。このデータ型は、2つの日時の値の正確な違いを表す場合に有効です。
INTERVAL YEAR TO MONTH
は年および月で期間を格納し、オプションのyear_precisionはYEAR
日時フィールドの桁数です。これはオプションです。
INTERVAL DAY TO SECOND
では、期間が日、時間、分および秒単位で格納されます。オプションのday_precision
(DAY
日時フィールドの最大桁数)がサポートされており、値は0から9で、デフォルトは2です。また、オプションのfractional_seconds_precision
(SECOND
フィールドの小数部の桁数)がサポートされており、値は0から9で、デフォルトは6です。
Oracleデータ型の詳細は、『Oracle Database SQL言語リファレンス』のデータ型に関する説明を参照してください。
日付に関して期待されるすべての操作を実行できます。
Oracle R Enterpriseでは、日付と時刻の計算をサポートするために次のクラスが用意されています。
ore.date
(Oracle DATE
)
ore.datetime
(TIMESTAMP
、TIMESTAMP WITH TIME ZONE
、TIMESTAMP WITH LOCAL TIME ZONE
)
ore.difftime
(INTERVAL DAY TO SECOND
)
ore.datetime
オブジェクトはタイム・ゾーン設定をサポートしていないため、かわりに、システム・タイム・ゾーンSys.timezone()
が使用可能な場合はそれを使用し、Sys.timezone()
を使用できない場合はGMTを使用します。
Oracle R Enterpriseでは、すべてのデータの準備および分析をデータベース内で直接実行できるように、データの事前処理機能を広範囲にわたってサポートしています。
このリストの関数のみを使用するように制限されているわけではありません。必要とする特定の関数がOracle R Enterpriseでサポートされていない場合は、最初にore.pull()
でデータベースからRエンジン・メモリーにデータをプルして、メモリー内Rオブジェクトを作成してから、R関数を使用することができます。
次の演算子および関数がサポートされています。これらの演算子および関数の構文およびセマンティクスは、Rのドキュメントを参照してください。これらのアイテムの構文およびセマンティクスは、対応するデータベースのマップされたデータ型(Oracle R Enterpriseデータ型とも呼ぶ)に使用する場合も変わりません。
数学的変換: 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
「Oracle R Enterpriseの例」で説明するOracle R Enterpriseのサンプル・プログラムには、Oracle R Enterpriseデータ型でこれらの関数の各カテゴリを使用した例がいくつか含まれています。