1.1 透過層
透過層では、ユーザーはR環境内でオーバーロードされたR関数を実行します。これらの関数は、データベース内で直接実行されるSQL問合せを生成します。これは、R環境のdata.frameプロキシ表およびビューを使用して実現され、データベース内の表およびビューにマップされます。
これらのプロキシ・オブジェクトを活用することで、ユーザーはR環境から強力なデータベース内機械学習アルゴリズムを使用することもできます。このアプローチでは、R用の高パフォーマンス・コンピューティング環境としてデータベースを活用し、列索引、問合せの最適化、並列化、インメモリー・キャッシュおよび表レベルのパーティション化などのデータベース機能を効率的に使用できるようにすることで、データベース表に対する操作のパフォーマンスを大幅に向上させることができます。
合理化されたワークフローの透過層
OML4R透過層は、データベースの相互作用を簡略化し、いくつかの方法でワークフローを強化します:
- データの探索と準備: データベースの処理能力を活用して、データの探索と準備を迅速化します。OML4Rでは、データベース自体の中のデータに対してSQLに変換されたR関数を実行できるため、データ移動が不要になります。これにより、効率が大幅に向上する可能性があります。
- データベース内機械学習: R環境からデータベース内から幅広い強力な機械学習アルゴリズムに直接アクセスして使用します。これにより、データと分析の両方をデータベース内に保持することで、ワークフローが合理化されます。
詳細は、製品の技術アーキテクチャを参照してください。
Rのdata.frame iris
から表を作成するには、ore.create
関数を使用します。
ore.create(iris, table = 'IRIS')
表がすでに存在する場合は、ore.sync
を使用してプロキシ・オブジェクトを取得します。
ore.attach()
ore.sync(table = 'IRIS')
プロキシ・オブジェクトを使用して、dim、head、summary、min、mean
のような使い慣れたR関数を実行します。
dim(IRIS)
head(IRIS)
summary(IRIS)
min(IRIS$Sepal.Length)
mean(IRIS$Sepal.Length)
出力が次のように表示されます。
OREdplyrは、使い慣れたdplyr関数を使用してOracle Database表を操作するための合理化された方法を提供します。データベースで直接操作することで、Rのメモリーにデータを転送する必要がなくなり、非常に大きなデータを分析できます。OREdplyrは、データベースを高パフォーマンスの計算エンジンとして活用して、データ操作および分析を提供します。
OREdplyrは、データ操作および集計用の様々な一連の関数を提供しています。
OREdplyr操作の例:
library(OREdplyr)
result <- IRIS %>%
filter(Species == "setosa") %>%
summarise(mean_sepal_length = mean(Sepal.Length))
OML4R透過層でオーバーロードされた関数を表示するには、次のコードを実行します:
ls("package:OREbase")
ls("package:OREstats")
ls("package:OREdplyr")
データ操作
OREdplyrでは、データの変換および再構築のための次の関数がサポートされています:
- 選択およびフィルタリング: select、filter、select_、filter_
- 順序付け: arrange、arrange_、desc
- 名前変更および変更: rename、mutate、transmute、rename_、mutate_、transmute_
- 重複除外およびサンプリング: distinct、slice、distinct_、slice_、sample_n、sample_frac
- 結合: inner_join、left_join、right_join、full_join
データ要約
OREdplyrには、データを集計および集約するための次の関数が用意されています:
- グループ: group_by、groups、ungroup、group_size、n_groups、group_by_
- 集計: summarise、summarise_、tally、count、count_
データ・ランキング
- ランキング関数: row_number、min_rank、dense_rank、percent_rank、cume_dist、ntile、nth、first、last、n_distinct、top_n
例: ore.pushを使用したOracleデータベースへのRデータのプッシュおよびOREdplyrを使用した操作
%r
library(ORE)
library(OREdplyr)
options(ore.warn.order=FALSE)
IRIS <- ore.push(iris)
IRIS_projected1 <- IRIS[, c("Sepal.Length", "Petal.Length")]
z.show(head(IRIS_projected1))
出力が次のように表示されます。