0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RインストールとYellowfinと連携し関数として使用する

0
Last updated at Posted at 2018-06-06

Yellowfin7.4からはETL機能が使えるように

いろんなBIツールがRと連携して、その出力結果をレポートの一部として使えるのは知ってたんだけど、
Yellowfinもバージョンアップして、ETLの一部としてRからの戻り値を使うことができるようになったぽい。

なので、RのインストールからETLで使うための手順を残しておきます!
とはいえ、ここに載っているとおりです。
■Rモデル予測
https://wiki.yellowfin.co.jp/pages/viewpage.action?pageId=9732102#R%E3%83%A2%E3%83%87%E3%83%AB%E4%BA%88%E6%B8%AC-%E3%83%91%E3%83%BC%E3%83%881%EF%BC%9AR%E3%81%AE%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97

Rのインストール

で、どのバージョンを使うかというと、最新のR3.5.0ではなく、R3.4.4を使用します!
最新のR3.5.0のバージョンはRのバグ?らしく、数値型のときにエラーが返ってくるようです。。
https://github.com/s-u/Rserve/issues/102

MacOSの場合

該当バージョンはこちらから
https://cran.ism.ac.jp/bin/macosx/el-capitan/base/R-3.4.4.pkg
パッケージマネージャーで開いて普通にインストールできます。
そのままアプリケーションを開けばRはすぐに使えますが、Yellowfinで使うには外部アクセスに対応しなければならないので、Rserveパッケージをインストールします。

まずRコンソールを開いて、パッケージインストーラを開きます。
image.png

その後、検索窓に'Rserve'と入力して一覧を取得ボタンをクリック。するとダウンロードのミラーサイトを選択できるので近そうなところでOK。
image.png
依存パッケージも含めるにチェックを入れ選択をインストールボタン。
image.png
するとこんな感じの画面が出てきます。
image.png

後は手で打つのはこの2行です。

console.r
library("Rserve")
Rserve(args='--vanilla')

image.png

これでR側の設定は完了です。

windowsの場合

私は実際に環境が用意できませんでしたが、きっとこちらから
https://cran.ism.ac.jp/bin/windows/base/old/3.4.4/R-3.4.4-win.exe

AmazonLinux(AWSの場合)

まずサーバーにRをインストールします。

r_install.sh
# ここでR3.4系でなければ、--showduplicateで確認して3.4系を指定でインストールしてください。
yum list -y R
# yum --showduplicate list R.x86_64

sudo yum install -y R
# インストールが完了したらRを起動し、Rserveのパッケージをインストールする
R

Rを起動したら1行だけ打ち込み、Rコンソールから抜ける。

console.r
install.packages("Rserve")
q()

再びシェルに戻ってきて、外部からたたけるように下記のコマンドを実行する。

Rserve_daemon.sh
sudo R CMD Rserve --RS-enable-remote --RS-port 6311
# このコマンドで下記のようにRserveが動いていればOK
sudo lsof -i:6311

image.png

AWS側のセキュリティグループでポート(この場合は6311)にアクセスできるように設定を追加
会社からのアクセスだけとかしばってね!
image.png

Yellowfin側の設定

とりあえず7.4以降の本体と、Rのプラグインが必要なのですが、プラグインはYellowfin Japanのサポートチームに頼むともらえるようなので頼んでGETします。
プラグイン管理の画面からyfpファイルをアップロードします。
image.png

トランスフォーメーションフローを作成していきます。

image.png

インプットステップから、データのもとになるインプットをドラッグアンドドロップで追加します。

image.png

ちなみに元データは数値列のみ

image.png

次にトラスフォーメーションステップからRスクリプトをドラッグアンドドロップし、前のステップと矢印でつなぎます。

image.png

ローカルにあるRserveを使用する場合

Rserveへ接続をクリックし、正常につながると、下記画面のようになります。
image.png

Rスクリプトはファイルを用意し、濃いグレーの部分をクリックすることでアップロードできます。
中身ですが、outDataが出力変数名、yfDataが入力変数名です。これは画面上の表示と合わせてください。
入力変数名は、$カラム名で直接参照できるほか、yfData[1]などでインデックス指定できます。

yfrscript.r
# 地味にlogで返すだけの関数
outData<-data.frame(log(yfData$tid))

適用ボタンをクリックし、実行。先程のtidカラムの対数が返ってきました(ぱっと見あってるかわからないな・・)

image.png

これで複雑な機能もRスクリプトを使って処理した結果を使うことができそうですね!

サーバーへ繋ぐ場合

外部接続のスイッチをいれ、ホストにIPを入力します。この時http://などはいらないようです。

image.png

Rserveのサービスが上がっていない場合

アクセスできない旨のメッセージが表示されます。

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?