この章では、ビッグ・データに対するRのサポートについて説明します。内容は次のとおりです。
|
注意: Oracle R Advanced Analytics for Hadoopの旧名称は、Oracle R Connector for Hadoopです。 |
Oracle R Advanced Analytics for Hadoopでは、汎用計算フレームワークを提供します。このフレームワークでは、R言語を使用してカスタム・ロジックをマッパーまたはレデューサとして作成できます。コードは、Hadoopクラスタで使用可能な計算リソースとストレージ・リソースを使用する分散並列方式で実行されます。
Oracle R Advanced Analytics for Hadoopには、Rパッケージのコレクションが組み込まれており、次の機能を提供します。
Apache Hive表、Apache Hadoop計算インフラストラクチャ、ローカルR環境およびOracleデータベース表を操作するインタフェース
線形回帰用の予測分析法、汎用線形モデル、ニューラル・ネットワーク、低ランクの行列因数分解を使用した行列補完、非負行列因子分解、k平均法クラスタリング、主成分分析および多変量解析。これらの手法にはRインタフェースがありますが、Oracle R Advanced Analytics for Hadoopでは、このインタフェースをJavaまたはRで分散並列MapReduceジョブとして実装しているため、クラスタのすべてのノードを活用できます。
このパッケージは、他のRパッケージと同様にインストールしてロードします。簡単なR関数を使用して、次のようなタスクを実行できます。
Hive対応透過層を使用したHDFSデータへのアクセスとデータの変換
マッパーとリデューサを記述するためのR言語の使用
Rメモリー、ローカル・ファイル・システム、HDFS、HiveおよびOracle Database間でのデータのコピー
Hadoop MapReduceジョブとして実行し、それらの場所に結果を返すRプログラムのスケジュール設定
Oracle R Advanced Analytics for Hadoopを使用するには、MapReduceプログラミング、Rプログラミングおよび統計手法をよく理解しておく必要があります。
Oracle R Advanced Analytics for Hadoop のAPI
Oracle R Advanced Analytics for Hadoopでは、次の接頭辞の関数を使用して、ローカルRクライアントからApache Hadoopへのアクセスを提供します。
hadoop: Hadoop MapReduceへのインタフェースを提供する関数を特定します。
hdfs: HDFSへのインタフェースを提供する関数を特定します。
orch: 様々な関数を特定します。orchはORCH関数の一般的な接頭辞です。
ore: Hiveデータストアへのインタフェースを提供する関数を特定します。
Oracle R Advanced Analytics for Hadoopは、主なオブジェクト・タイプとしてデータ・フレームを使用しますが、HDFSとのデータ交換を行うためにベクトルや行列でも機能できます。APIは、Rの数字、整数および文字のデータ型をサポートします。
APIのすべてがORCHライブラリに含まれます。関数については、「Oracle R Advanced Analytics for Hadoop関数」を参照してください。
HDFSに格納されるデータにOracle R Advanced Analytics for Hadoopがアクセスするには、入力ファイルが次の要件に従う必要があります。
MapReduceジョブの入力ファイルはすべて、1つの論理ファイルの一環として1つのディレクトリに格納される必要があります。有効なHDFSディレクトリ名とファイル名の拡張子が受け入れられます。
該当ディレクトリ内の、アンダースコア(_)で始まる名前のファイルは無視されます。
デリミタはすべてサポートされており、キーと値のデリミタは異なってもかまいません。
また、最適なパフォーマンスを実現するために、RのRdata表現を使用してデリミタ付きファイルをバイナリ形式に変換できます。
Apache Hiveは、HiveQLと呼ばれる問合せ言語(SQLとよく似ている)によって、代替のストレージおよび取得メカニズムをHDFSファイルに提供します。Hiveでは、分散処理にMapReduceが使用されます。ただし、データは構造化され、データ検出をサポートする追加のメタデータがあります。Oracle R Advanced Analytics for HadoopではHiveQLのデータ準備と分析機能が使用されますが、R言語構文も使用できます。
接頭辞がoreのR関数(ore.connectなど)を使用して、Hiveへの接続とオブジェクトの管理を行うことができます。Oracle R Enterpriseも使用する場合、これらの関数を認識します。Oracle R Enterpriseのore関数は、Oracle Databaseでオブジェクトを作成して管理し、Oracle R Advanced Analytics for Hadoopのore関数は、Hiveデータベースでオブジェクトを作成して管理します。一度に1つのデータベース(HiveまたはOracle Databaseのいずれか)に接続できますが、同時に両方のデータベースに接続することはできません。
OREのas.ore.*関数とis.ore.*関数のリストは、表8-7を参照してください。
Oracle R Advanced Analytics for Hadoopは、次のメソッドを含む標準汎用R関数もオーバーロードしてHiveオブジェクトを操作します。
casefold、chartr、gsub、nchar、substr、substring、tolower、toupper
このリリースでは、greplやsubはサポートされません。
attach、show
[, $, $<-, [[, [[<-
サブセット関数: head、tail
メタデータ関数: dim、length、NROW、nrow、NCOL、ncol、names、names<-、colnames、colnames<-
変換関数: as.data.frame、as.env、as.list
算術演算子: +、-、*、^、%%、%/%、/
Compare、Logic、xor、!
テスト関数: is.finite、is.infinite、is.na、is.nan
数学的変換: abs、acos、asin、atan、ceiling、cos、exp、expm1、floor、log、log10、log1p、log2、logb、round、sign、sin、sqrt、tan、trunc
基礎統計: colMeans、colSums、rowMeans、rowSums、Summary、summary、unique
by、merge
unlist、rbind、cbind、data.frame、eval
このリリースでは、dimnames、interaction、max.col、row.names、row.names<-、scale、split、subset、transform、withまたはwithinはサポートされません。
ifelse、Logic、xor、!
サポートされません。
算術演算子: +、-、*、^、%%、%/%、/
テスト関数: is.finite、is.infinite、is.nan
abs、acos、asin、atan、ceiling、cos、exp、expm1、floor、log、log1p、log2、log10、logb、mean、round、sign、sin、sqrt、Summary、summary、tan、trunc、zapsmall
このリリースでは、atan2、besselI、besselK、besselJ、besselY、diff、factorial、lfactorial、pmax、pminまたはtabulateはサポートされません。
show、length、c
テスト関数: is.vector、is.nan
変換関数: as.vector、as.character、as.numeric、as.integer、as.logical
[, [<-, |
by、Compare、head、%in%、paste、sort、table、tail、tapply、unique
このリリースでは、interaction、lengthb、rankまたはsplitはサポートされません。
例8-1に、簡単なデータ準備とデータ処理を示します。詳細は、「Hiveデータ型のサポート」を参照してください。
例8-1 Rを使用したHive表のデータの処理
# Connect to Hive ore.connect(type="HIVE") # Attach the current envt. into search path of R ore.attach() # create a Hive table by pushing the numeric columns of the iris data set IRIS_TABLE <- ore.push(iris[1:4]) # Create bins based on Petal Length IRIS_TABLE$PetalBins = ifelse(IRIS_TABLE$Petal.Length < 2.0, "SMALL PETALS", + ifelse(IRIS_TABLE$Petal.Length < 4.0, "MEDIUM PETALS", + ifelse(IRIS_TABLE$Petal.Length < 6.0, + "MEDIUM LARGE PETALS", "LARGE PETALS"))) #PetalBins is now a derived column of the HIVE object > names(IRIS_TABLE) [1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width" "PetalBins" # Based on the bins, generate summary statistics for each group aggregate(IRIS_TABLE$Petal.Length, by = list(PetalBins = IRIS_TABLE$PetalBins), + FUN = summary) 1 LARGE PETALS 6 6.025000 6.200000 6.354545 6.612500 6.9 0 2 MEDIUM LARGE PETALS 4 4.418750 4.820000 4.888462 5.275000 5.9 0 3 MEDIUM PETALS 3 3.262500 3.550000 3.581818 3.808333 3.9 0 4 SMALL PETALS 1 1.311538 1.407692 1.462000 1.507143 1.9 0 Warning message: ORE object has no unique key - using random order
Oracle R Advanced Analytics for Hadoopは、tinyint、smallint、bigint、int、floatおよびdoubleなどの文字列や数値のデータ型の列を含むHive表にアクセスできます。
次の複雑なデータ型はサポートされません。
array binary map struct timestamp union
サポートされないデータ型を含むHive表にアクセスしようとすると、エラー・メッセージが表示されます。表にアクセスするには、サポートされるデータ型に列を変換する必要があります。
サポートされるデータ型への列の変換するには、次の手順を実行します。
Hiveコマンド・インタフェースを開きます。
$ hive hive>
サポートされないデータ型の列を特定します。
hive> describe table_name;
列のデータを表示します。
hive> select column_name from table_name;
サポートされるデータ型のみを使用して、変換されたデータの表を作成します。
適切な変換ツールを使用して、データを新しい表にコピーします。
例8-2に配列の変換を示します。例8-3と例8-4に、タイムスタンプ・データの変換を示します。
例8-2 文字列の列への配列の変換
R> ore.sync(table="t1")
Warning message:
table t1 contains unsupported data types
.
.
.
hive> describe t1;
OK
col1 int
col2 array<string>
hive> select * from t1;
OK
1 ["a","b","c"]
2 ["d","e","f"]
3 ["g","h","i"]
hive> create table t2 (c1 string, c2 string, c2 string);
hive> insert into table t2 select col2[0], col2[1], col2[2] from t1;
.
.
.
R> ore.sync(table="t2")
R> ore.ls()
[1] "t2"
R> t2$c1
[1] "a" "d" "g"
例8-3では、timestampデータ型の文字列への自動変換が使用されます。データは、tstmpという列があるt5という表に格納されます。
例8-3 タイムスタンプ列の変換
hive> select * from t5; hive> create table t6 (timestmp string); hive> insert into table t6 SELECT tstmp from t5;
例8-4では、Hiveのget_json_object関数を使用して、JSON表からOracle R Advanced Analytics for Hadoopで使用する個別の表に、関連する2つの列を抽出します。
例8-4 JSONファイルのタイムスタンプ列の変換
hive> select * from t3;
OK
{"custId":1305981,"movieId":null,"genreId":null,"time":"2010-12-30:23:59:32","recommended":null,"activity":9}
hive> create table t4 (custid int, time string);
hive> insert into table t4 SELECT cast(get_json_object(c1, '$.custId') as int), cast(get_json_object(c1, '$.time') as string) from t3;
Hiveコマンド言語インタフェース(CLI)は問合せの実行に使用され、Linuxクライアントのサポートを提供します。JDBCやODBCはサポートされません。
ore.create関数は、Hive表をテキスト・ファイルのみで作成します。ただし、Oracle R Advanced Analytics for Hadoopは、テキスト・ファイルまたは順序ファイルのいずれかで格納されるHive表にアクセスできます。
ore.exec関数を使用して、RコンソールからHiveコマンドを実行できます。デモの場合、hive_sequencefileデモを実行します。
Oracle R Advanced Analytics for Hadoopは、デフォルトのHiveデータベースのみの表とビューにアクセスできます。他のデータベースのオブジェクトに対する読取りアクセス権を許可するには、デフォルトのデータベースでそのオブジェクトを公開する必要があります。たとえば、ビューを作成できます。
Oracle R Advanced Analytics for Hadoopには、Hiveでの順序付けの概念がありません。Hiveで存続するRフレームがHiveから抜け出してメモリーに入ると、そのフレームの順序は同じになりません。Oracle R Advanced Analytics for Hadoopは、順序付けが重要ではない大規模なHDFSデータセットのデータのクリーン・アップとフィルタ処理のサポートを主な目的として設計されています。順序付けられていないHiveフレームを操作する場合、次の警告メッセージが表示されます。
Warning messages: 1: ORE object has no unique key - using random order 2: ORE object has no unique key - using random order
これらの警告を抑制するには、次のようにRセッションでore.warn.orderオプションを設定します。
R> options(ore.warn.order = FALSE)
表8-0に、分析目的でRデータ・フレームにHive表をロードする例を示します。次のOracle R Advanced Analytics for Hadoop関数が使用されます。
hdfs.attach ore.attach ore.connect ore.create ore.hiveOptions ore.sync
例8-5 Hive表のロード
# Connect to HIVE metastore and sync the HIVE input table into the R session.
ore.connect(type="HIVE")
ore.sync(table="datatab")
ore.attach()
# The "datatab" object is a Hive table with columns named custid, movieid, activity, and rating.
# Perform filtering to remove missing (NA) values from custid and movieid columns
# Project out three columns: custid, movieid and rating
t1 <- datatab[!is.na(datatab$custid) &
!is.na(datatab$movieid) &
datatab$activity==1, c("custid","movieid", "rating")]
# Set HIVE field delimiters to ','. By default, it is Ctrl+a for text files but
# ORCH 2.0 supports only ',' as a file separator.
ore.hiveOptions(delim=',')
# Create another Hive table called "datatab1" after the transformations above.
ore.create (t1, table="datatab1")
# Use the HDFS directory, where the table data for datatab1 is stored, to attach
# it to ORCH framework. By default, this location is "/user/hive/warehouse"
dfs.id <- hdfs.attach("/user/hive/warehouse/datatab1")
# dfs.id can now be used with all hdfs.*, orch.* and hadoop.* APIs of ORCH for further processing and analytics.
Oracle R Advanced Analytics for Hadoopは、基本レベルのデータベース・アクセスを提供します。データベース表の内容をHDFSに移動したり、HDFS分析の結果をデータベースに戻したりすることができます。
その後、Oracle R Enterpriseという個別の製品を使用して、この小規模データセットに対してさらに分析を実行できます。この製品を使用すると、R言語を使用して、データベースの表、ビューおよびその他のデータ・オブジェクトに統計分析を実行できます。Business IntelligenceおよびIn-Database分析のサポートを含む、データベース・オブジェクトへの透過的なアクセス権があります。
Oracle Databaseに格納されるデータへのアクセスは、常にDBAから付与されるアクセス権に制限されます。
Oracle R Enterpriseは、Oracle Database Enterprise EditionへのOracle Database Advanced Analyticsオプションに含まれています。Oracle Big Data Connectorのいずれかではありません。
|
関連項目: Oracle R Enterpriseユーザーズ・ガイド |
Oracle R Advanced Analytics for Hadoopは、Sqoopを使用して、HDFSとOracle Database間でデータを移動します。Sqoopは、Oracle R Advanced Analytics for Hadoopに対して次のような複数の制限を設けます。
BINARY_FLOAT列またはBINARY_DOUBLE列を含むOracle表はインポートできません。回避策として、これらの列の型をNUMBERに変換するビューを作成できます。
列名はすべて大文字にする必要があります。
次のシナリオで、Oracle R Advanced Analytics for HadoopとOracle R Enterpriseを使用するケースを確認してください。
Oracle R Advanced Analytics for Hadoopを使用すると、アクセス権を持つファイルをHDFS上で検索して、そのうち1つのファイルのデータに対してR計算を実行できます。また、ローカル・ファイル・システムのテキスト・ファイルに格納されているデータを計算用にHDFSにアップロードし、DBMS_SCHEDULERを使用してRスクリプトをHadoopクラスタで実行するようスケジュールして、結果をPC上のローカル・ファイルにダウンロードできます。
Oracle R Enterpriseを使用すると、Rインタフェースを開いてOracle Databaseに接続し、データベースの権限に基づいて使用可能になる表とビューを操作できます。行の除外、導出された列の追加、新しい列の投影および視覚的で統計的な分析を行うことができます。
Oracle R Advanced Analytics for Hadoopを使用すると、Rで記述されたCPU負荷の高い計算の場合、MapReduceジョブをHadoopにデプロイできます。計算には、HDFS (Oracle R Enterpriseを含む)またはOracle Databaseに格納されているデータを使用できます。計算の結果をOracle DatabaseやRコンソールに返し、視覚化したり、追加処理を行うことができます。
Oracle R Advanced Analytics for Hadoop関数の説明は、Rヘルプ・トピックを参照してください。この項では、各関数を機能カテゴリに分類し、簡単に説明します。
表8-1に分析関数を示します。
表8-1 統計分析用の関数
| 関数 | 説明 |
|---|---|
|
|
|
|
|
|
|
|
|
|
HDFSに格納されているデータに対して、汎用線形モデルを適合させて使用します。 |
|
|
HDFSにファイルとして格納されているデータ行列に対してK平均法クラスタリングを実行します。 |
|
|
tall-and-skinny QR (TSQR)因数分解と並列分散を使用して線形モデルを調整します。この関数は、 Oracle R Enterpriseの |
|
|
jellyfishアルゴリズム、またはMahout alternating least squares with weighted regularization (ALS-WR)アルゴリズムを使用して、低ランクの行列因数分解モデルを調整します。 |
|
|
入力と出力の間の複雑な非線形の関係をモデル化したり、データのパターンを見つけたりするニューラル・ネットワークを提供します。 |
|
|
jellyfishアルゴリズムを使用して非負行列因子分解モデルを作成する主なエントリ・ポイントを提供します。この関数は、入力をメモリーに収める必要がないため、Rの |
|
|
Rの |
|
|
入力した |
表8-2で、R環境内からHDFSコマンドを実行する関数について説明します。
表8-2 HDFSを使用するための関数
| 関数 | 説明 |
|---|---|
|
デフォルトのHDFSパスを設定します。 |
|
|
HDFSファイルを別の場所にコピーします。 |
|
|
HDFS内のファイルに関連付けられたメタデータを返します。 |
|
|
ファイルがHDFSに存在することを確認します。 |
|
|
HDFS内のファイルの先頭から、指定した数の行をコピーします。 |
|
|
HDFSパス名をRの |
|
|
指定されたパス内のデータを含む全HDFSディレクトリの名前のリスト。 |
|
|
HDFSファイルを別の場所に移動します。 |
|
|
HDFS内のファイルを構成する部分の数を返します。 |
|
|
HDFS内の現在の作業ディレクトリを識別します。 |
|
|
HDFSからファイルまたはディレクトリを削除します。 |
|
|
HDFS内のディレクトリを削除します。 |
|
|
HDFSのrootディレクトリを返します。 |
|
|
HDFSのrootディレクトリを設定します。 |
|
|
HDFS内のファイルのサイズを返します。 |
|
|
HDFS内のファイルの末尾から、指定された数の行をコピーします。 |
表8-3で、Hiveとともに使用するためにOracle R Advanced Analytics for Hadoopで使用可能な関数について説明します。「HiveのORE関数」を参照してください。
表8-4で、Hiveとともに使用するためにOracle R Advanced Analytics for HadoopでサポートされるOREstatsパッケージの集計関数について説明します。
表8-4 Oracle R Enterprise集計関数
| 関数 | 説明 |
|---|---|
|
データをサブセットに分割し、サブセットごとに統計サマリを計算します。 |
|
|
入力データのTukeyの5数要約(最小値、下側ヒンジ、中央値、上側ヒンジ、最大値)を返します。 |
|
|
四分位範囲を計算します。 |
|
|
サンプル中央値を計算します。 |
|
|
指定された蓋然率に対応するサンプル変位値を生成します。 |
|
|
標準偏差を計算します。 |
|
|
|
差異を計算します。 |
脚注1 ベクトル専用
表8-5で、Oracle Databaseへの接続を確立するための関数について説明します。
表8-6で、OracleデータベースのRデータ・フレーム、HDFSファイル、ローカル・ファイルおよび表を含め、プラットフォーム間でデータをコピーするための関数について説明します。
表8-6 データをコピーするための関数
| 関数 | 説明 |
|---|---|
|
HDFSの非構造化データ・ファイルのデータを、Rフレームワークにコピーします。デフォルトでは、HDFSのデータ・ファイルはコネクタで表示されません。ただし、データ・ファイルの名前がわかっている場合、この関数を使用して名前をOracle R Advanced Analytics for Hadoopネームスペースにアタッチします。 |
|
|
HDFSからローカル・ファイル・システムにファイルをコピーします。 |
|
|
HDFSからローカルR環境のデータ・フレームにデータをコピーします。R環境でデータが生成されると、すべてのメタデータが抽出され、列名やデータ型などのすべての属性がリストアされます。R環境でデータが生成されない場合、val1やval2などの汎用属性が割り当てられます。 |
|
|
HDFSからOracle Databaseにデータをコピーします。この操作は、Oracle Databaseによる認証が必要です。 |
|
|
Oracle DatabaseからHDFSにデータをコピーします。この操作は、Oracle Databaseによる認証が必要です。 |
|
|
Rのメモリー内オブジェクト(data.frame)からHDFSにデータをコピーします。列名やデータ型などのすべてのデータ属性が、データとともにメタデータとして格納されます。 |
|
|
HadoopファイルからRメモリー内オブジェクトにデータのランダム・サンプルをコピーします。この関数を使用して、最終的にはHadoopクラスタ上のHDFSデータセット全体で実行するR計算の開発用に、元のHDFSデータの小規模なサンプルをコピーします。 |
|
|
ローカル・ファイル・システムからHDFSにファイルをコピーします。 |
|
|
Rオブジェクトに有効なHDFSファイル識別子が含まれるかどうかを示します。 |
表8-7で、データ型の変換およびテスト用の関数について説明します。Oracle R EnterpriseのOREbaseパッケージには、次の関数が用意されています。
表8-7 データ型の変換およびテスト用の関数
| 関数 | 説明 |
|---|---|
|
メモリー内RオブジェクトをOREオブジェクトにします。 |
|
|
|
メモリー内RオブジェクトをORE文字オブジェクトにします。 |
|
|
メモリー内RオブジェクトをORE日付オブジェクトにします。 |
|
|
メモリー内RオブジェクトをORE日時オブジェクトにします。 |
|
|
メモリー内RオブジェクトをORE時間差オブジェクトにします。 |
|
|
メモリー内RオブジェクトをORE因数オブジェクトにします。 |
|
|
メモリー内RオブジェクトをOREフレーム・オブジェクトにします。 |
|
|
メモリー内RオブジェクトをORE整数オブジェクトにします。 |
|
|
メモリー内RオブジェクトをOREリスト・オブジェクトにします。 |
|
|
メモリー内RオブジェクトをORE論理オブジェクトにします。 |
|
|
メモリー内RオブジェクトをORE行列オブジェクトにします。 |
|
|
メモリー内RオブジェクトをORE数値オブジェクトにします。 |
|
|
メモリー内RオブジェクトをOREオブジェクトにします。 |
|
|
メモリー内RオブジェクトをOREベクトル・オブジェクトにします。 |
|
指定された値が特定のOracle R Enterpriseクラスのオブジェクトかどうかをテストします。 |
|
|
|
指定された値が文字かどうかをテストします。 |
|
|
指定された値が日付かどうかをテストします。 |
|
|
指定された値が日時型かどうかをテストします。 |
|
|
指定された値が時間差型かどうかをテストします。 |
|
|
指定された値が因数かどうかをテストします。 |
|
|
指定された値がフレームかどうかをテストします。 |
|
|
指定された値が整数かどうかをテストします。 |
|
|
指定された値がリストかどうかをテストします。 |
|
|
指定された値が論理型かどうかをテストします。 |
|
|
指定された値が行列かどうかをテストします。 |
|
|
指定された値が数値かどうかをテストします。 |
|
|
指定された値がオブジェクトかどうかをテストします。 |
|
|
指定された値がベクトルかどうかをテストします。 |
表8-8で、MapReduceプログラムの作成時や実行時に使用する関数について説明します。
表8-8 MapReduceを使用するための関数
| 関数 | 説明 |
|---|---|
|
Hadoopエンジンを起動し、実行用にマッパー、リデューサおよびコンバイナR関数を送信します。まず、データをHDFSにロードする必要があります。 |
|
|
実行中のジョブをリストするため、Hadoopクラスタでの現在の負荷を評価できます。 |
|
|
Hadoopエンジンを起動し、実行用にマッパー、リデューサおよびコンバイナR関数を送信します。データがまだHDFSに格納されていない場合、 |
|
|
ローカル・ホストとHadoopクラスタ間で実行プラットフォームを切り替えます。ドライ・ランにRコードの変更は必要ありません。 |
|
|
ユーザーのローカルRセッションのRオブジェクトをHadoop実行環境で利用できるようにするため、これらのオブジェクトをMapReduceジョブで参照できます。 |
|
|
MapReduceジョブのキーと値のペアを出力します。 |
|
|
MapReduceジョブのキーと値の一連のペアを出力します。 |
|
|
マッパーまたはリデューサがキーと値のペアの値として記述する必要がある、1つ以上のメモリー内Rオブジェクトを圧縮します。 |
|
|
一時データが格納されるパスを設定します。 |
|
|
前述の |
表8-9に、Rプログラム・スクリプトのデバッグの支援に使用できる関数を示します。
Oracle R Advanced Analytics for Hadoopには、様々なデモが用意されており、他のRデモと同じ方法でアクセスできます。
demo関数により、ORCHで使用可能な関数がリストされます。
R> demo(package="ORCH")
Demos in package 'ORCH':
hdfs_cpmv ORCH's copy and move APIs
hdfs_datatrans ORCH's HDFS data transfer APIs
hdfs_dir ORCH's HDFS directory manipulation APIs
hdfs_putget ORCH's get and put API usage
hive_aggregate Aggregation in HIVE
hive_analysis Basic analysis & data processing operations
hive_basic Basic connectivity to HIVE storage
hive_binning Binning logic
hive_columnfns Column function
hive_nulls Handling of NULL in SQL vs. NA in R
.
.
.
このリストからデモを実行するには、次の構文を使用します。
demo("demo_name", package="ORCH")
たとえば、このパッケージは、Hive binningのデモを実行します。
R> demo("hive_binning", package = "ORCH")
demo('hive_binning', package = 'ORCH')
demo(hive_binning)
---- ~~~~~~~~~~~~
> #
> # ORACLE R CONNECTOR FOR HADOOP DEMOS
> #
> # Name: hive_binning.R
> # Description: Demonstrates binning logic in R
> #
> #
.
.
.
エラーが発生したら、作業領域イメージを保存せずにRを終了し、新しいセッションを開始してください。また、ローカル・ファイル・システムおよびHDFSファイル・システムに作成された一時ファイルを削除する必要もあります。
# rm -r /tmp/orch* # hdfs dfs -rm -r /tmp/orch*
Oracle R Advanced Analytics for Hadoopでは、Sqoopユーティリティを起動してOracle Databaseに接続し、データの抽出または結果の格納を実行します。
Sqoopは、HDFSまたはHiveと構造化データベースとの間でデータのインポートとエクスポートを行うHadoopのコマンドライン・ユーティリティです。Sqoopという名前は、"SQL to Hadoop"に由来します。Oracle R Advanced Analytics for Hadoopでのデータベース・ユーザー・パスワードの格納方法とSqoopへの送信方法について、次に説明します。
Oracle R Advanced Analytics for Hadoopでは、毎回パスワードを再入力する必要のないモードでユーザーがデータベース接続を確立した場合にのみユーザー・パスワードを格納します。パスワードは暗号化されてメモリーに格納されます。orch.connectについては、ヘルプ・トピックを参照してください。
Oracle R Advanced Analytics for Hadoopでは、Sqoop用の構成ファイルを生成し、Sqoopのローカルでの起動に使用します。ファイルには、ユーザーへの要求または暗号化されたメモリー内表現から取得されたユーザーのデータベース・パスワードが含まれます。ファイルは、ローカル・ユーザー・アクセス権限のみ持ちます。ファイルが作成され、権限が明示的に設定された後、ファイルが書込み用に開かれ、データが挿入されます。
Sqoopでは、構成ファイルを使用して特定のデータベース・ジョブ用にカスタムJARファイルを動的に生成し、JARファイルをHadoopクライアント・ソフトウェアに渡します。パスワードは、コンパイルされたJARファイル内に格納されます。プレーン・テキストには格納されません。
JARファイルは、ネットワーク接続を介してHadoopクラスタに転送されます。ネットワーク接続と転送プロトコルは、Hadoopに固有です(ポート5900など)。
構成ファイルは、SqoopでJARファイルのコンパイルが終了し、Hadoopジョブが起動されたら、削除されます。