Date post: | 26-Jan-2015 |
Category: |
Technology |
Upload: | revolution-analytics |
View: | 107 times |
Download: | 1 times |
Revolution ConfidentialREvolution Confidential
Revolution Confidential
Andrie de VriesBusiness Services Director - Europe
DeployRRevolution R Enterprise with Business Intelligence Applications
Munich R user group7/6/2013
Revolution ConfidentialREvolution Confidential
2
Revolution Scales R to the Enterprise…
Scale
Performance
Scale Distributed high
performance analytics
Performance Build & deploy analytics
applications easily
Enterprise Readiness High speed connectors to
enterprise environments Full-service customer
support, consulting and training
Enterprise Readiness
Confidential to Revolution Analytics
Revolution ConfidentialREvolution Confidential
3
Integration Layer:DeployR makes R accessible
SeamlessBring the power of R to any web enabled application
SimpleLeverage common APIs including JS, Java, .NET
ScalableRobustly scale user and compute workloads
SecureManage enterprise security with LDAP & SSO
R / Statistical Modeling Expert
DeployR
Data Analysis
Business Intelligence
Mobile Web Apps
Cloud / SaaS
DeploymentExpert
Confidential to Revolution Analytics
Revolution ConfidentialREvolution Confidential
4
On-Demand Analytics with RevoDeployRMarket Basket Analysis using Java Script and R enabled by DeployR
•User selection drives Java Script…
•which drives R script… •which drives Java Script to return to user data and graphics needed…
•…enabled by DeployR API’s
Confidential to Revolution Analytics
Revolution ConfidentialREvolution Confidential
5
Revolution R Enterprise - Deployment
Hadoop Cluster
Individual Analysts
Database Appliance
Deployment Servers
Business Users
HDFS
S
S
S
HOST
High Workload Clusters
Revolution ConfidentialREvolution Confidential
6
RevoDeployR – Key Advantages
Unlocks the power of R to any 3rd party application
Easy to use API Rapid deployment
Scalability Add nodes as you need
them
Separation of expertise Statistician - writes R code Application programmer –
calls the API to execute an R script, and gets the output.
Designed to be Enterprise Ready Comprehensive collection
of Web Service APIs Enterprise Security Stateful and Stateless
execution of R Code/Scripts
Asynchronous Job Execution
Repository for managing R objects and files
Administration
Revolution ConfidentialREvolution Confidential
7
RevoDeployR - Architecture
RevoDeployR Web Services
Client libraries (JavaScript, Java, .NET)
Desktop Applications (i.e. Excel)
Business Intelligence
(i.e. QlikView)
Interactive Web or Mobile
Applications
HTTP/HTTPS – JSON/XML
Session Management
AuthenticationData/Script
ManagementAdministration
RR Programmer
ApplicationDeveloper
End User
RR
Admin
Revolution ConfidentialREvolution Confidential
8
RevoDeployR - Server
RevoDeployR Web Services API
Grid Management Framework
Spring3 Framework J2EE Framework
NoSQL Database
Management ConsoleGrid Node
RR
R
Grid Node
RR
R
Grid Node
RR
R
Applications Admin
R R Session
Revolution ConfidentialREvolution ConfidentialR Scripts and R Code
Stateless execution of pre-defined R Scripts Supports both Anonymous and Authenticated access Project is automatically created, inputs loaded, R script
executed, outputs returned, and session destroyed Stateful execution
Must be an authenticated user Project is explicitly created/destroyed R script or R code executed in the defined project
Jobs Code and Script can be executed as a background job Results are persisted and can be retrieved later
Revolution ConfidentialREvolution Confidential
10
Role of the application developer
Define RevoDeployR Server connection (URL) *Authenticate *Create/Open Project Execute Script or Execute Code
Create list of inputs R Objects
Create lists of named outputs (if any) R Objects
*Close R Project
* Required for Stateful execution
Revolution ConfidentialREvolution Confidential
11
RESTful API
format = jsonHTTP POST on API call:/r/session/create
{ "deployr": { "response": { "success": true, "project": { "lastmodified": "Thu, 20 Oct 2011 18:27:29 +0000", "live": true, "origin": "Project original.", "longdescr": null, "name": null, "projectcookie": null, "ispublic": false, "owner": "testuser", "descr": null, "project": "PROJECT-5ab61ec0-09b9-44ea-837d-9e6f40a7e8a3" }, "call": "/r/project/create" } }}
JSON Response
Example HTTP Call to Create a Project
Revolution ConfidentialREvolution Confidential
12
Stateless Example (JavaScript)
var exeScript = function () { … // set the call back configuration var callback = { success : plot, failure: fail, scope : this, verbose : true }; /* configuration input for repository script execution */ var scriptConfig = { filename : 'DeployR - Hello World', author: 'testuser', inputs : [R.RDataFactory.createNumeric('input_randomNum', parseInt(num, 10))] };
// execute RScript R.DeployR.repositoryScriptExecute(scriptConfig, callback); };
Revolution ConfidentialREvolution Confidential
13
Stateful Example
Use case - Simple Regression Upload a CSV file to the RevoDeployR Server Get a list of numeric variables Run a simple regression using 2 of the variables Return a plot
Implementation 2 R Scripts
Read the uploaded CSV and return the list of numeric variables Run the regression on the selected variables
Requires authentication (login) R Session is explicitly created after login Both scripts execute in the same R Session
Revolution ConfidentialREvolution Confidential
14
Scalability
Add compute nodes to handle changing workload requirements
Execute code and scripts as background jobs
Assign roles to nodes Anonymous Authenticated Jobs
Revolution ConfidentialREvolution Confidential
15
Resources
Revolution Analytics White Paper
http://info.revolutionanalytics.com/RevoDeployR-Whitepaper.html
Free Academic download http://info.revolutionanalytics.com/free-academic.html
Commercial License http://info.revolutionanalytics.com/Buy-Revolution-R-Enterprise.h
tml
Jaspersoft http://jasperforge.org/projects/rrevodeployrbyrevolutionanalytics